set viewmode miller set column_ratios 2,2,4 set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$ set show_hidden false # only confirm when deleting multiple files set confirm_on_delete multiple set preview_script ~/.config/ranger/scope.sh set use_preview_script true set automatically_count_files true set open_all_images true # Be aware of version control systems and display information. set vcs_aware true set vcs_backend_git enabled set vcs_backend_hg disabled set vcs_backend_bzr disabled # Use one of the supported image preview protocols set preview_images true set preview_images_method ueberzug # Use a unicode "..." character to mark cut-off filenames? set unicode_ellipsis true # Show dotfiles in the bookmark preview box? set show_hidden_bookmarks true #set colorscheme material-ocean # Preview files on the rightmost column? # And collapse (shrink) the last column if there is nothing to preview? set preview_files true set preview_directories true set collapse_preview false # Save the console history on exit? set save_console_history true # Draw the status bar on top of the browser window (default: bottom) set status_bar_on_top false # Draw a progress bar in the status bar which displays the average state of all # currently running tasks which support progress bars? set draw_progress_bar_in_status_bar true # Draw borders around columns? set draw_borders true # Display the directory name in tabs? set dirname_in_tabs true # Enable the mouse support? set mouse_enabled true # Display the file size in the main column or status bar? set display_size_in_main_column true set display_size_in_status_bar true # Display files tags in all columns or only in main column? set display_tags_in_all_columns true # Set a title for the window? set update_title true # Set the title to "ranger" in the tmux program? set update_tmux_title true # Shorten the title if it gets long? The number defines how many # directories are displayed at once, 0 turns off this feature. set shorten_title 3 # Abbreviate $HOME with ~ in the titlebar (first line) of ranger? set tilde_in_titlebar false # How many directory-changes or console-commands should be kept in history? set max_history_size 20 set max_console_history_size 50 # Try to keep so much space between the top/bottom border when scrolling: set scroll_offset 8 # Flush the input after each key hit? (Noticeable when ranger lags) set flushinput true # Padding on the right when there's no preview? # This allows you to click into the space to run the file. set padding_right true # Save bookmarks (used with mX and `X) instantly? # This helps to synchronize bookmarks between multiple ranger # instances but leads to *slight* performance loss. # When false, bookmarks are saved when ranger is exited. set autosave_bookmarks false default_linemode devicons2 # You can display the "real" cumulative size of directories by using the # command :get_cumulative_size or typing "dc". The size is expensive to # calculate and will not be updated automatically. You can choose # to update it automatically though by turning on this option: set autoupdate_cumulative_size false # Turning this on makes sense for screen readers: set show_cursor true # One of: size, natural, basename, atime, ctime, mtime, type, random set sort natural # Additional sorting options set sort_reverse false set sort_case_insensitive true set sort_directories_first true set sort_unicode false # Enable this if key combinations with the Alt Key don't work for you. # (Especially on xterm) set xterm_alt_key false # Whether to include bookmarks in cd command set cd_bookmarks true # Avoid previewing files larger than this size, in bytes. Use a value of 0 to # disable this feature. set preview_max_size 0 # Add the highlighted file to the path in the titlebar set show_selection_in_titlebar true # The delay that ranger idly waits for user input, in milliseconds, with a # resolution of 100ms. Lower delay reduces lag between directory updates but # increases CPU load. set idle_delay 2000 # When the metadata manager module looks for metadata, should it only look for # a ".metadata.json" file in the current directory, or do a deep search and # check all directories above the current one as well? set metadata_deep_search false # Clear all existing filters when leaving a directory set clear_filters_on_dir_change false # Disable displaying line numbers in main column set line_numbers false # =================================================================== # == Local Options # =================================================================== # You can set local options that only affect a single directory. # Examples: # setlocal path=~/downloads sort mtime # =================================================================== # == Command Aliases in the Console # =================================================================== alias e edit alias q quit alias q! quitall alias qa quitall alias qall quitall alias setl setlocal alias filter scout -prt alias find scout -aeit alias mark scout -mr alias unmark scout -Mr alias search scout -rs alias search_inc scout -rts alias travel scout -aefiklst # =================================================================== # == Define keys for the browser # =================================================================== # Basic map Q quit! map q quit copymap q ZZ ZQ map R reload_cwd map reset map redraw_window map abort map change_mode normal map ~ set viewmode! map i display_file map ? help map W display_log map w taskview_open map S shell $SHELL map : console map ; console map ! console shell%space map @ console -p6 shell %%s map # console shell -p%space map s console shell%space map r chain draw_possible_programs; console open_with%%space map f console find%space map cd console cd%space # Change the line mode map Mf linemode filename map Mi linemode fileinfo map Mm linemode mtime map Md linemode devicons2 map Mp linemode permissions map Ms linemode sizemtime map Mt linemode metatitle # Tagging / Marking map t tag_toggle map ut tag_remove map " tag_toggle tag=%any map mark_files toggle=True map v mark_files all=True toggle=True map uv mark_files all=True val=False map V toggle_visual_mode map uV toggle_visual_mode reverse=True # For the nostalgics: Midnight Commander bindings map help map display_file map edit map copy map cut map console mkdir%space map console delete map exit # In case you work on a keyboard with dvorak layout map move up=1 map move down=1 map move left=1 map move right=1 map move to=0 map move to=-1 map move down=1 pages=True map move up=1 pages=True map move right=1 #map console delete map console touch%space # VIM-like copymap k copymap j copymap h copymap l copymap gg copymap G copymap copymap map J move down=0.5 pages=True map K move up=0.5 pages=True copymap J copymap K # Jumping around map H history_go -1 map L history_go 1 map ] move_parent 1 map [ move_parent -1 map } traverse map gh cd ~ map ge cd /etc map gu cd /usr map gd cd /dev map gl cd -r . map gL cd -r %f map go cd /opt map gv cd /var map gm cd /media map gM cd /mnt map gs cd /srv map gr cd / map gR eval fm.cd(ranger.RANGERDIR) map g/ cd / map g? cd /usr/share/doc/ranger # Encryption and Compression map eE encrypt map eD decrypt map X extract map C compress # External Programs map e edit map du shell -p du --max-depth=1 -h --apparent-size map dU shell -p du --max-depth=1 -h --apparent-size | sort -rh map yp shell -f echo -n %d/%f | xsel -i; xsel -o | xsel -i -b map yd shell -f echo -n %d | xsel -i; xsel -o | xsel -i -b map yn shell -f echo -n %f | xsel -i; xsel -o | xsel -i -b # Filesystem Operations map = chmod map cw console rename%space map a rename_append map A eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%")) map I eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"), position=7) map pp paste map po paste overwrite=True map pP paste append=True map pO paste overwrite=True append=True map pl paste_symlink relative=False map pL paste_symlink relative=True map phl paste_hardlink map pht paste_hardlinked_subtree map D delete map dd cut map ud uncut map da cut mode=add map dr cut mode=remove map dt cut mode=toggle map yy copy map Y YankContent map uy uncut map ya copy mode=add map yr copy mode=remove map yt copy mode=toggle # Temporary workarounds map dgg eval fm.cut(dirarg=dict(to=0), narg=quantifier) map dG eval fm.cut(dirarg=dict(to=-1), narg=quantifier) map dj eval fm.cut(dirarg=dict(down=1), narg=quantifier) map dk eval fm.cut(dirarg=dict(up=1), narg=quantifier) map ygg eval fm.copy(dirarg=dict(to=0), narg=quantifier) map yG eval fm.copy(dirarg=dict(to=-1), narg=quantifier) map yj eval fm.copy(dirarg=dict(down=1), narg=quantifier) map yk eval fm.copy(dirarg=dict(up=1), narg=quantifier) # Searching map / console search%space map n search_next map N search_next forward=False map ct search_next order=tag map cz console z%space map cs search_next order=size map ci search_next order=mimetype map cc search_next order=ctime map cm search_next order=mtime map ca search_next order=atime map cf fzf_select # Tabs map tab_new ~ map tab_close map tab_move 1 map tab_move -1 map tab_move 1 map tab_move -1 map gt tab_move 1 map gT tab_move -1 map gn tab_new ~ map gc tab_close map uq tab_restore map tab_open 1 map tab_open 2 map tab_open 3 map tab_open 4 map tab_open 5 map tab_open 6 map tab_open 7 map tab_open 8 map tab_open 9 # Sorting map or set sort_reverse! map oz set sort=random map os chain set sort=size; set sort_reverse=False map ob chain set sort=basename; set sort_reverse=False map on chain set sort=natural; set sort_reverse=False map om chain set sort=mtime; set sort_reverse=False map oc chain set sort=ctime; set sort_reverse=False map oa chain set sort=atime; set sort_reverse=False map ot chain set sort=type; set sort_reverse=False map oe chain set sort=extension; set sort_reverse=False map oS chain set sort=size; set sort_reverse=True map oB chain set sort=basename; set sort_reverse=True map oN chain set sort=natural; set sort_reverse=True map oM chain set sort=mtime; set sort_reverse=True map oC chain set sort=ctime; set sort_reverse=True map oA chain set sort=atime; set sort_reverse=True map oT chain set sort=type; set sort_reverse=True map oE chain set sort=extension; set sort_reverse=True map dc get_cumulative_size map dh chrome_choose . map dn console chrome_choose # Settings map zc set collapse_preview! map zd set sort_directories_first! map zh set show_hidden! map set show_hidden! map toggle_flat map zI set flushinput! map zi set preview_images! map zm set mouse_enabled! map zp set preview_files! map zP set preview_directories! map zs set sort_case_insensitive! map zu set autoupdate_cumulative_size! map zv set use_preview_script! map zf console filter%space # Bookmarks map ` enter_bookmark %any map ' enter_bookmark %any map m set_bookmark %any map um unset_bookmark %any map m draw_bookmarks copymap m um ` ' # Generate all the chmod bindings with some python help: eval for arg in "rwxXst": cmd("map +u{0} shell -f chmod u+{0} %s".format(arg)) eval for arg in "rwxXst": cmd("map +g{0} shell -f chmod g+{0} %s".format(arg)) eval for arg in "rwxXst": cmd("map +o{0} shell -f chmod o+{0} %s".format(arg)) eval for arg in "rwxXst": cmd("map +a{0} shell -f chmod a+{0} %s".format(arg)) eval for arg in "rwxXst": cmd("map +{0} shell -f chmod u+{0} %s".format(arg)) eval for arg in "rwxXst": cmd("map -u{0} shell -f chmod u-{0} %s".format(arg)) eval for arg in "rwxXst": cmd("map -g{0} shell -f chmod g-{0} %s".format(arg)) eval for arg in "rwxXst": cmd("map -o{0} shell -f chmod o-{0} %s".format(arg)) eval for arg in "rwxXst": cmd("map -a{0} shell -f chmod a-{0} %s".format(arg)) eval for arg in "rwxXst": cmd("map -{0} shell -f chmod u-{0} %s".format(arg)) # =================================================================== # == Define keys for the console # =================================================================== # Note: Unmapped keys are passed directly to the console. # Basic cmap eval fm.ui.console.tab() cmap eval fm.ui.console.tab(-1) cmap eval fm.ui.console.close() cmap eval fm.ui.console.execute() cmap redraw_window copycmap copycmap # Move around cmap eval fm.ui.console.history_move(-1) cmap eval fm.ui.console.history_move(1) cmap eval fm.ui.console.move(left=1) cmap eval fm.ui.console.move(right=1) cmap eval fm.ui.console.move(right=0, absolute=True) cmap eval fm.ui.console.move(right=-1, absolute=True) cmap eval fm.ui.console.move_word(left=1) cmap eval fm.ui.console.move_word(right=1) # Line Editing cmap eval fm.ui.console.delete(-1) cmap eval fm.ui.console.delete(0) cmap eval fm.ui.console.delete_word() cmap eval fm.ui.console.delete_word(backward=False) cmap eval fm.ui.console.delete_rest(1) cmap eval fm.ui.console.delete_rest(-1) cmap eval fm.ui.console.paste() # And of course the emacs way copycmap copycmap copycmap copycmap copycmap copycmap copycmap copycmap # Note: There are multiple ways to express backspaces. (code 263) # and (code 127). To be sure, use both. copycmap # This special expression allows typing in numerals: cmap false # =================================================================== # == Pager Keybindings # =================================================================== # Movement pmap pager_move down=1 pmap pager_move up=1 pmap pager_move left=4 pmap pager_move right=4 pmap pager_move to=0 pmap pager_move to=-1 pmap pager_move down=1.0 pages=True pmap pager_move up=1.0 pages=True pmap pager_move down=0.5 pages=True pmap pager_move up=0.5 pages=True copypmap k copypmap j copypmap h copypmap l copypmap g copypmap G copypmap d copypmap u copypmap n f copypmap p b # Basic pmap redraw_window pmap pager_close copypmap q Q i pmap E edit_file # =================================================================== # == Taskview Keybindings # =================================================================== # Movement tmap taskview_move up=1 tmap taskview_move down=1 tmap taskview_move to=0 tmap taskview_move to=-1 tmap taskview_move down=1.0 pages=True tmap taskview_move up=1.0 pages=True tmap taskview_move down=0.5 pages=True tmap taskview_move up=0.5 pages=True copytmap k copytmap j copytmap g copytmap G copytmap u copytmap n f copytmap p b # Changing priority and deleting tasks tmap J eval -q fm.ui.taskview.task_move(-1) tmap K eval -q fm.ui.taskview.task_move(0) tmap dd eval -q fm.ui.taskview.task_remove() tmap eval -q fm.ui.taskview.task_move(-1) tmap eval -q fm.ui.taskview.task_move(0) tmap eval -q fm.ui.taskview.task_remove() # Basic tmap redraw_window tmap taskview_close copytmap q Q w