If you can read this on Debian, you're living in the future
[ranger.git] / CHANGELOG.md
blobe8eb913cc7e6d6d3b5d902e2b45040f452b64489
1 This log documents changes between stable versions.
3 # 2018-09-09: version 1.9.2
4 * Added a `hint_collapse_threshold` setting
5 * Added a `traverse_backwards` command analogous to `traverse`
6 * Added a command to shift tabs
7 * Added a normal mode mapping to quickly enter the console and scroll through
8   the history `C-p`
9 * Added a section to `scope.sh` for image previews of archives
10 * Added an avfs plugin
11 * Added an option to the move command to enable launching the selected file
12   instead of the marked files
13 * Added filtering functionality inspired by dired's filter stack, `.n, .| ...`
14 * Added image preview method for Kitty
15 * Added option to disable the display of free space for high latency situations
16 * Added section to `scope.sh` for pdf previews with mutool
17 * Added several emacs/readline-inspired keybindings, `C-g` for `ESC`, `alt-f/b`
18 * Added systemwide `rc.conf` and `commands.py` in `/etc/ranger`
19 * Added the `%any_path` macro to allow bookmarks to be used with commands that
20   need a path and are unaware of bookmarks
21 * Added versioning logic to include extra info in unreleased versions
22 * Change tab saving to save all tabs, not just the active tab
23 * Changed `draw_borders` setting to enable drawing only borders or seperators
24 * Changed behavior of positional arguments to the ranger command, if you
25   specify a path to a file ranger will open with that file selected
26 * Changed the `tilde_in_titlebar` setting to influence the window titlebar too
27 * Changed the default colorscheme to work properly in terminals that don't
28   equate bold and bright
29 * Fixed StopIteration errors
30 * Fixed embedded null errors
31 * Fixed issues reported by coverity scan
32 * Fixed running ranger as root on Mac OS
33 * Fixed unicode issue for python2
34 * Fixed w3m preview issues with black stripes
35 * Improved PEP8 adherence
36 * Improved VCS symbols
37 * Improved `--cmd` functionality
38 * Improved file encoding detection by using chardet if it's available
39 * Rifle's flag t should now work with more terminals than xterm and urxvt
40 * Update colorscheme documentation
42 # 2018-02-22: version 1.9.1
43 * Fixed the rifle config backwards compatibility (regression in 1.9.0)
44 * Fixed the POSIX compatibility of `Makefile`
45 * Fixed `--choosefile`, `--choosefiles` and `--choosedir` so they work
46   with the process substitution (`>(...)` in Bash)
47 * Changed the default `gt` binding to `gp` due to a conflict
48 * Changed the help message for `--choosefile`, `--choosefiles` and
49   `--choosedir` to avoid confusion
50 * Changed the behavior of `:reset` to reload the tags too
51 * Added `geeqie` to the default `rifle.conf`
53 # 2018-01-25: version 1.9.0
54 * Fixed memory leak in w3m image preview
55 * Fixed `Q` binding, map it to `quitall` instead of `quit!`
56 * Fixed `gR` binding
57 * Fixed custom linemode not being applied to files
58 * Fixed w3m image display invocation on OpenBSD
59 * Fixed broken pager after changing view mode with `~`
60 * Added reset of rifle.conf when pressing `<C-R>`
61 * Added image-based PDF previews to `scope.sh` (disabled by default)
62 * Added terminology-based image previews
63 * Added check for `$VISUAL` environment variable
64 * Added setting `iterm2_font_height` and `iterm2_font_width`
65 * Renamed setting `cd_tab_smart` to `cd_tab_fuzzy`
66 * Changed command for mercurial integration from `hg` to `chg`
68 # 2017-11-19: version 1.9.0b6
69 * Fixed crash when parsing corrupted history file
70 * Fixed tab completion with `cd -r ...`
71 * Fixed crash when previewing files encoded in little-endian UTF-16
72 * Fixed flicker in previewing symlinked images
73 * Fixed detection of location of scope.sh
74 * Fixed crash when running ranger from the directory containing its package
75 * Fixed cursor position after moving half a page down and back up
76 * Fixed handling of lines that are too long for the console
77 * Added `<F2>` binding to `:rename_append`
78 * Avoid dereferencing symlinked directory when starting ranger in one
79 * Added support for `file://` URIs as path arguments
80 * Added setting `save_tabs_on_exit`
81 * Added setting `cd_tab_case`, sets case sensitivity of `:cd` tab completion
82 * Added setting `cd_tab_smart`, allows fuzzy tab completion with `:cd`,
83   for example, `:cd /u/lo/b<TAB>` expands to `:cd /usr/local/bin`
84 * Added setting `global_inode_type_filter` to show only directories when
85   running ranger with the new option `--show-only-dirs`
86 * Added setting `save_backtick_bookmark`, e.g. for easier syncing of bookmarks
87 * Added setting `one_indexed` to start counting line numbers from 1
88 * Added rifle.conf entries to list/extract archives without atool
89 * Added `:yank` command for simplified definitions of `yn`, `yd` & `yp`
90 * Added `:narrow` command, which filters selected files
91 * Added setting `freeze_files`, bound to `F` key, to avoid reloading files
92 * Changed `:shell -p ...` to display stderr in pager
94 # 2017-02-19: version 1.9.0b5
95 * Fixed width calculation of multibyte characters in preview
96 * Fixed crash in iTerm2 preview with python 3.5
98 # 2017-02-10: version 1.9.0b1
99 * Fixed crash when using `Mi` on files without reading permissions
100 * Fixed natural sorting (`11.jpg` < `100.jpg`)
101 * Fixed loss of precision in timestamps when copying
102 * Fixed smart case matching in `:travel`
103 * Fixed automatically disabling `preview_script` when running as root
104 * Fixed crash on sshfs disconnect
105 * Fixed crash on missing `~/.config/ranger/history`
106 * Fixed crash when path not accessible during start-up
107 * Fixed automatic tmux title
108 * Fixed urxvt image previewing when running tmux
109 * Fixed macro expansion in aliased commands
110 * Fixed `hidden_filter` option when combined with `:flat`
111 * Fixed various other crashes
112 * Fixed error message that occasionally pops up when changing settings
113 * Introduced extensive linting to ensure code quality
114 * Added continuous integration.  Patches now require `make test` to pass.
115 * Added handling of arguments in "$PAGER" environment variable
116 * Added quote parsing for `:setlocal path=...`
117 * Added `ys` to copy the selection to clipboard
118 * Added setting `hostname_in_titlebar`
119 * Added setting `wrap_scroll` to wrap cursor around when scrolling
120 * Added example plugin `plugin_fasd_add.py`
121 * Added command `jump_non` to jump to the first non-directory file
122 * Added additional arguments to the command `:rename_append`
123 * Added key binding 'zz' as an alternative to 'zf'
124 * Added option `-c` to the `rifle` file opener command
125 * Added support for `$XDG_DATA_HOME`
126 * Avoid exiting ranger while copying.  Use `:quit!` to quit while copying.
127 * Improved scope.sh (better performance & readability)
128 * Improved logs handling by migrating to the python standard logging library (PR #725)
129 * Changed `ranger --choosefiles` to return all selected files in all paths
130 * Changed interpretation of commands: treat tabs as argument separators
131 * Changed `<C-n>` to open new tab in current directory rather than `$HOME`
132 * Changed `:quit!` to only close 1 tab.  Use `:quitall` to close all tabs.
133 * Removed backward compatibility for `options.py`, predecessor of `rc.conf`
134 * Automatically update bookmarks+tags when renaming them via ranger
136 # 2017-01-08: version 1.8.1
137 * Fixed `:scout` break due to incompatible change in python 3.6
139 # 2016-12-24: version 1.8.0
140 * scope.sh is now needed for the now fully scriptable image previews
141 * Overhaul of version control system integration, now with threads
142 * Fixed ranger not finding the location of w3mimgdisplay in most cases
143 * Fixed many minor bugs
144 * Added midnight-commander like multipane view, toggleable with `~` key.
145   It displays the current directory of all the open tabs next to each other.
146 * Added autodetect for 256 color support in scope.sh source code preview
147 * Added macro `%confdir` that expands to `~/.config/ranger` by default
148 * Added possibility to toggle/cycle through options with `set <option_name>!`
149 * Added `Mm`/`Ms` key to enable the linemode showing modification time
150 * Added `yt`/`dt` keys to toggle whether file is in copy/cut buffer
151 * Added `line_numbers` setting showing absolute/relative line numbers
152 * Added `Alt-Left` and `Alt-Right` key bindings to move by words in console
153 * Added previews for libreoffice files with `odt2txt`
154 * Added `preview_images_method=urxvt` option for previewing images by changing
155   the urxvt background (requires urxvt compiled with pixbuf support)
156 * Added `clear_filters_on_dir_change` option
157 * Added Travis-CI integration
158 * Changed `zi` key to toggle `preview_images` option
159 * Improved PEP8 compliance
160 * Improved documentation
161 * Improved UI by separating file path in titlebar with a space from the
162   username/hostname for quick copy&pasting by shift+double-clicking on it.
164 # 2015-10-04: version 1.7.2
165 * Fixed file name arguments passed to `sxiv` and `feh` when using `:flat`
166 * Fixed removal of empty directories when using `:rename`
167 * Fixed free disk space display on Mac OS X
168 * Fixed `examples/vim_file_chooser` to work with gvim too
169 * Fixed some other rare crashes and bugs
170 * Fixed downward mouse wheel scrolling
171 * Fixed warning about regex splits being drawn in titlebar since python3.5
172 * Really fixed `S` key binding not working when SHELL=fish
173 * Improved `doc/cheatsheet.svg`
174 * Added some entries to rifle.conf
175 * Added key bindings `pO` and `pP` which work like `po` and `pp` but queue the
176   operation in a first-in-first-out order.
178 # 2015-05-04: version 1.7.1
179 * Added `doc/cheatsheet.svg`
180 * Added `examples/rc_emacs.conf`, a config file adding emacs-like key bindings
181 * Added `env` keyword in rifle.conf
182 * Fixed `:bulkrename` command in python3
183 * Fixed `S` key binding not working when SHELL=fish
185 # 2015-04-13: version 1.7.0
186 * The default editor is now `vim` instead of `nano`
187 * Added automatic updates of tags when a file is renamed from within ranger
188 * Added `preview_images_method` which can be set to `iterm2` to use native
189   iTerm2 image previews
190 * Added `:rename_append` command to rename files without the file extension
191 * Added `:linemode` command to change the way the files are displayed
192   Try this out by pressing M followed by one of the suggested keys.
193   New linemodes can be added with `ranger.api.register_linemode()`.
194 * Added `:filter_inode_type` command to only show directories, files or links
195 * Added `:meta` command for managing custom file metadata
196 * Added `:flat` command for displaying subdirectories
197 * Added `solarized` colorscheme
198 * Added generic ability to use scope.sh for image previews
199 * Added video previews in scope.sh
200 * Added option `sort_unicode` to sort according to unicode, not ASCII
201 * `:mkdir` can now create multiple directory levels (like `mkdir -p`)
202 * `:help` (key binding `?`) is now interactive
203 * `:find` (key binding `/`) is now case insensitive by default
204 * `ranger --copy-config=all` now copies a short sample commands.py rather than
205   the full one, so that you can update ranger without having broken commands.
206   The full commands.py is still copied to `~/.config/ranger/commands_full.py`.
207 * Fixed broken copying of symlinks
209 # 2013-05-24: Version 1.6.1
210 * Added support for version control systems, see:
211   http://lists.nongnu.org/archive/html/ranger-users/2013-03/msg00007.html
212 * Added :scout command as a unified backend to :find, :search, etc
213 * Added `open_all_images` setting to remove the need for external scripts
214   to handle opening of all images in a directory at once.
215 * Now previewing with `i` uses the whole available width.
217 # 2013-02-22: Version 1.6.0
218 * Overhauled all config files.  Please update them or use the --clean switch
219 * Added `examples/` directory to source code which contains sample programs or
220   plugins that can be used together with ranger
221 * Added progress bars to copying, moving and directory loading processes
222 * Added feature to draw images inside the console using w3mimgdisplay (you need
223   to add `set preview_images true` in rc.conf)
224 * Added a plugin system like in the program `anki`, i.e. place any python file
225   into ~/.config/ranger/plugins/ and it will be imported by ranger
226 * Added a separate file launcher named `rifle` that is configured through
227   rifle.conf and is installed as a standalone program.
228   Using `ranger [filename]` from the shell for opening files is deprecated now,
229   please use `rifle [filename]` instead.
230 * Added `uq` keybinding to undo closed tabs
231 * Added :setlocal command to change settings for specific directories only
232 * Added :travel command to move more quickly to your destination
233 * Added 256 color support for scope.sh
234 * Added a real yes/no prompt for :delete command
235 * Added settings: `confirm_on_delete`, `draw_progress_bar_in_status_bar`,
236   `preview_images`, `status_bar_on_top`, `update_tmux_title`
237 * Added commands: `:mark_tag`, `:unmark_tag`
238 * Added BSD-friendly setsid implementation
239 * Added as-you-type filtering for `:filter` command
240 * Replaced `options.py` file by :set commands in rc.conf
241 * Replaced `apps.py` file with rifle.conf
242 * Improved `r` key to interface with rifle
243 * Rewritten `scope.sh` in POSIX shell
244 * Changed copying/moving code to work without GNU coreutils
245 * Changed key to untag files from `T` to `ut`
246 * Changed the flag `d` (for detached) to `f` (for fork) in program launcher
247 * Changed appearance of keybinding-hints and bookmarks
248 * Changed tabs with 4 spaces in the source code (see PEP 8)
249 * Removed ranger.core.environment class
250 * Removed settings: `colorscheme_overlay`, `draw_bookmark_borders`,
251   `init_function`, `load_default_rc`
252 * Fixed zombie process apocalypse
253 * Fixed `draw_borders=true` in combination with `padding_right=false`
255 # 2012-08-10: Version 1.5.5
256 * Ensure that detached programs continue to run when ranger is killed
258 # 2012-05-03: Version 1.5.4
259 * Added exiftool to scope.sh by default
260 * Fixed a crash when entering a directory with a unicode name
261 * Speedup in `ranger.ext.get_executables`
263 # 2012-03-05: Version 1.5.3
264 * Added --selectfile option that selects a certain file on startup
265 * Added --list-tagged-files option
266 * Added --cmd option to run commands on startup
267 * Added --profile option for additional debug information on exit
268 * Added a visual mode (activate with `V`, deactivate with Esc)
269 * Added a reversed visual mode (activate with `uV`)
270 * Added `$RANGER_LEVEL` environment variable which ranger sets to `1` or higher
271   so programs can know that they were spawned from ranger
272 * Added run flag `r` for running with root privileges (needs sudo)
273 * Added run flag `t` for running in a new terminal (as specified in $TERMCMD)
274 * Added :relink command to change destinations of symlinks
275 * Added `dc` binding for getting the cumulative size of a directory
276 * Added `autoupdate_cumulative_size` option
277 * Added `pht` binding to Paste Hardlinked subTrees (like cp -l)
278 * Improved sorting speed of signals (noticeable when caching many directories)
279 * Improved drawing speed
280 * Fixed unexpected behavior when displaying nonprintable characters
281 * Fixed :bulkrename to work with files starting with a minus sign
282 * Fixed RangerChooser example in man page
283 * Fixed crash when opening images with sxiv/feh by running `ranger <image>`
285 # 2011-10-23: Version 1.5.2
286 * Fixed graphical bug that appears in certain cases when drawing
287   characters at the right edge.
289 # 2011-10-23: Version 1.5.1
290 * Added `fm.select_file(path)`
291 * Added --choosefiles option (like --choosefile, but chooses multiple files)
292 * Fixed --list-unused-keys
293 * Fixed Zombie processes
294 * Fixed handling of filenames with undecodable bytes (unicode surrogates)
295 * Fixed crashes due to incomplete loading of directories
296 * Fixed tab completion of the command `shell`
297 * Fixed `ot` and `oT` keys in rc.conf
298 * Fixed parsing of chained commands (like in the binding `om`)
300 # 2011-10-11: Version 1.5.0
301 * Full python3.2 compatibility
302 * Added new configuration file `rc.conf` which contains a list
303   of commands that are executed on startup - mainly used for keybindings
304 * Added --list-unused-keys
305 * Added new program handlers to apps.py
306 * Added pop-up window for keychains and bookmarks
307 * Added `load_default_rc` option
308 * Fixed all known unicode issues
309 * Fixed crash when $TERM is unknown to the system
310 * Fixed scrolling in colored preview
311 * Changed the default `column_ratios` to 1/3/4 and sorting method to `natural`
312 * Changed :rename so it doesn't overwrite existing files
313 * Internal actions are now accessible as commands
314 * Replaced unittests by doctests
315 * Replaced integrated help with an extended man page and dynamic lists
316   of keybindings, commands and settings.
317 * Removed `keys.py` configuration file in favor of `rc.conf`
318 * Removed `texas` colorscheme
319 * apps.py: Now able to define programs that only run with Xorg
320 * commands.py: Using parse(self.line) to parse the line is unnecessary now.
321   parse(self.line).rest(n) is now written as self.rest(n).
322   However, parse(self.line).chunk(n) has been renamed to self.arg(n).
323 * commands.py: parse(self.line) + X is now self.firstpart + X
324 * commands.py: New special attribute `resolve_macros` which decides whether
325   strings like %f should be expanded to the name of the current file, etc.
326 * commands.py: New special attribute `escape_macros_for_shell` to toggle
327   whether or not macros should be escaped, so you can use them in other
328   commands than :shell, for example :edit %f
329 * Countless small fixes and improvements
331 # 2011-10-02: Version 1.4.4
332 * Added keys for chmod (like +ow for `chmod o+w`, etc)
333 * Added `c` flag for running files
334 * Added various key bindings
335 * Added wavpack and webm types to mime.types
336 * Added option `display_tags_in_all_columns`
337 * Added command.cancel method which is called when pressing ESC in console
338 * Added sorting and cycling by ctime and atime
339 * Added custom tags (press "x)
340 * Added bittorrent preview
341 * Fixed blocking when using interactive scripts in scope.sh
342 * Fixed issues with ALT key
343 * Fixed pager crash when trying to read non-readable file
344 * Forbid piping things into ranger
345 * Improved hints
347 # 2011-04-05: Version 1.4.3
348 * Fixed mimetype checking when invoking ranger with a filename
349 * Fixed loss of bookmarks when disk is full
350 * Minor improvements
352 # 2011-03-05: Version 1.4.2
353 * Added --choosefile and --choosedir flag
354 * Added use of bookmarks in tab completion of the :cd command
355 * Fixed bug with detached programs and python 3.2
357 # 2011-01-04: Version 1.4.1
358 * Fixed crash when preview failed under some circumstances
359 * Fixed graphical bug when pressing i
361 # 2010-12-22: Version 1.4.0
362 * Added option to use any external scripts for previews (see scope.sh)
363 * Added key: zv to toggle the use of the external script
364 * Added indicator for the used filter (type `zf`)
365 * Added option `padding_right` to remove whitespace if theres no preview
366 * Added command `:search_inc` for incremental search
367 * Added commands `:save_copy_buffer` and `:load_copy_buffer` to share
368   the copied files between ranger instances
369 * Added mimeopen as a fallback if no useful application can be found
370 * Added natural sort, sorts 1foo before 10foo. (type `on`)
371 * Added keys: yp, yd and yb to copy path, dirname or basename to seleciton
372 * Let `open_with` use the selection, not just one file
373 * Run files with right mouse click
374 * Implemented copying via coreutils rather than internal python code
375 * Improved handling of unicode
376 * Some restructuration of the source code
378 # 2010-12-13: Version 1.2.3
379 * Enable binding to alt-keys
380 * Fixed memory leak in garbage collecting of old, unused directory objects
381 * Fixed python3 incompatibilities
382 * Fixed problems with identifying changes of files
383 * Fixed lazy lookup of some FSObject attributes
385 # 2010-10-10: Version 1.2.2
386 * Prevent currently used directories from being garbage collected
387 * Disable mouse buttons when console is open
388 * Fixed :cd command: Without arguments, cd's into $HOME
389 * Fixed bug which prevented pydoc to work on some config files
390 * Fixed some bugs in `snow` and `jungle` colorschemes
391 * Several other clean-ups and fixes
393 # 2010-09-16: Version 1.2.1
394 * Fixed yy/pp bug when yanking multiple directories
396 # 2010-09-13: Version 1.2.0
397 * !!! Changed the default configuration directory to ~/.config/ranger !!!
398 * Removed `Console Modes`, each old mode is now a simple command
399 * Disabled file previews by default if ranger is used by root
400 * Allow to jump to specific help sections by typing two numbers, e.g. 13?
401 * Added keys: da, dr, ya, yr for adding and removing files from copy buffer
402 * Added keys: gl and gL to resolve links, see 11?
403 * Added key: pL to create a relative symlink
404 * Added %<LETTER> and %<N><LETTER> macros for the console, see 33?
405 * Fixed ansi codes for colors in the pager
406 * Use the file ~/.mime.types for mime type detection
407 * Several clean-ups and fixes
409 # 2010-07-17: Version 1.1.2
410 * Fix crash when using scrollwheel to scroll down in some cases
411 * The command `ranger dir1 dir2 ...` opens multiple directories in tabs
412 * Removed pydoc html documentation by default, re-create it with `make doc`
413 * Minor fixes
415 # 2010-06-18: Version 1.1.1
416 * New install script, `setup.py`
417 * New flag for running programs: `w` (waits for enter press)
418 * Minor fixes
420 # 2010-06-09: Version 1.1.0
421 * Added a man page
422 * Tab support
423 * Improved directory loading performance
424 * Commands are definable in ~/.ranger/commands.py
425 * Case insensitive sorting (type zs)
426 * Better UTF support
427 * Possibility to turn off previews (zp and zP)
428 * Changing options with :set (e.g. `:set column_ratios=1,2,3,4`)
429 * Ask for confirmation when using :delete
430 * New invocation flag: --fail-unless-cd
431 * New hotkeys, commands, options.
432 * New syntax for ~/.ranger/keys.py
433 * Several user contributions
434 * And tons of general improvements