1
0
chezmoi/home/dot_config/ranger/rc.conf

601 lines
18 KiB
Plaintext

# ===================================================================
# This file contains the default startup commands for ranger.
# To change them, it is recommended to create the file
# ~/.config/ranger/rc.conf and add your custom commands there.
#
# If you copy this whole file there, you may want to set the environment
# variable RANGER_LOAD_DEFAULT_RC to FALSE to avoid loading it twice.
#
# The purpose of this file is mainly to define keybindings and settings.
# For running more complex python code, please create a plugin in "plugins/" or
# a command in "commands.py".
#
# Each line is a command that will be run before the user interface
# is initialized. As a result, you can not use commands which rely
# on the UI such as :delete or :mark.
# ===================================================================
# ===================================================================
# == Options
# ===================================================================
# a plugin that adds file glyphs / icon support to Ranger:
# https://github.com/alexanderjeurissen/ranger_devicons
default_linemode devicons2
# Which viewmode should be used? Possible values are:
# miller: Use miller columns which show multiple levels of the hierarchy
# multipane: Midnight-commander like multipane view showing all tabs next
# to each other
set viewmode miller
#set viewmode multipane
# How many columns are there, and what are their relative widths?
set column_ratios 1,3,4
# Which files should be hidden? (regular expression)
set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$
# Show hidden files? You can toggle this by typing 'zh'
set show_hidden false
# Ask for a confirmation when running the "delete" command?
# Valid values are "always", "never", "multiple" (default)
# With "multiple", ranger will ask only if you delete multiple files at once.
set confirm_on_delete multiple
# Which script is used to generate file previews?
# ranger ships with scope.sh, a script that calls external programs (see
# README.md for dependencies) to preview images, archives, etc.
set preview_script ~/.config/ranger/scope.sh
# Use the external preview script or display simple plain text or image previews?
set use_preview_script true
# Automatically count files in the directory, even before entering them?
set automatically_count_files true
# Open all images in this directory when running certain image viewers
# like feh or sxiv? You can still open selected files by marking them.
set open_all_images true
# Be aware of version control systems and display information.
set vcs_aware true
# State of the three backends git, hg, bzr. The possible states are
# disabled, local (only show local info), enabled (show local and remote
# information).
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 the preview image method. Supported methods:
#
# * w3m (default):
# Preview images in full color with the external command "w3mimgpreview"?
# This requires the console web browser "w3m" and a supported terminal.
# It has been successfully tested with "xterm" and "urxvt" without tmux.
#
# * iterm2:
# Preview images in full color using iTerm2 image previews
# (http://iterm2.com/images.html). This requires using iTerm2 compiled
# with image preview support.
#
# * urxvt:
# Preview images in full color using urxvt image backgrounds. This
# requires using urxvt compiled with pixbuf support.
#
# * urxvt-full:
# The same as urxvt but utilizing not only the preview pane but the
# whole terminal window.
set preview_images_method ueberzug
# Use a unicode "..." character to mark cut-off filenames?
set unicode_ellipsis false
# Show dotfiles in the bookmark preview box?
set show_hidden_bookmarks true
# Which colorscheme to use? These colorschemes are available by default:
# default, jungle, snow, solarized
# set colorscheme default
set colorscheme euphrasia
# 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 true
# 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 false
# Set the title to "ranger" in the tmux program?
set update_tmux_title false
# 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 true
# 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 false
# 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
# ===================================================================
# Unmap anything
#
unmap <a-1> <a-2> <a-3> <a-4> <a-5> <a-6> <a-7> <a-8> <a-9>
unmap <C-r> <C-l> <C-d> <C-h> <C-m> <C-n> <C-q>
unmap <C-a>
unmap <C-v> <C-x> <C-c>
unmap <C-t> <C-w>
unmap <Tab> <S-Tab>
unmap .. /
unmap A a c d G m N n o p S s T t V y z
unmap ct cs ci cc cm ca
unmap gi gl gr ge gh gn go gR gs gT gt gu
unmap ud um uq ut uV uv uy
# Return to normal mode
#
map <ESC> change_mode normal
# <Fx> commands
#
map <F1> help
map <F2> eval fm.execute_console("bulkrename") if fm.thisdir.marked_items else fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"))
map <F3> console scout -ftsea%space
map <F4> shell $SHELL -c "cd %d; $SHELL"
map <F5> reload_cwd
# Moves
#
map <UP> move up=1
map <DOWN> move down=1
map <LEFT> move left=1
map <RIGHT> move right=1
map <HOME> move to=0
map <END> move to=-1
map <PAGEDOWN> move down=1 pages=True
map <PAGEUP> move up=1 pages=True
map <CR> move right=1
map <DELETE> shell trash-put %s
map <INSERT> console touch%space
map <A-LEFT> history_go -1
map <A-RIGHT> history_go 1
map <A-DOWN> move_parent 1
map <A-UP> move_parent -1
# Goto moves
#
# to anywhere
map cd console zi%space
# to home dirs
map g~ cd ~/
map g. cd ~/dotfiles/
map gc cd ~/Cours/
map gd cd ~/Documents/
map gm cd ~/Musique/
map gp cd ~/Projets/
map gt cd ~/tmp/
map gu eval fm.cd('/run/media/' + os.getenv('USER'))
map gv cd ~/Vidéos/
# to global dirs
map g/ cd /
map gD cd /dev
map gE cd /etc
map gL cd -r %f
map gM cd /mnt
map gO cd /opt
map gS cd /srv
map gT cd /tmp
map gU cd /usr
map gV cd /var
# Control moves
#
map <C-c> copy
map <C-h> set show_hidden!
map <C-l> redraw_window
map <C-q> abort
map <C-r> reset
map <C-v> paste append=True
map <C-x> cut
# Tabs
#
map <C-t> tab_new ~
map <C-w> tab_close
map <TAB> tab_move 1
map <S-TAB> tab_move -1
# Specs commands
#
map i display_file
map q quit
map r chain draw_possible_programs; console -p10 open_with f
map : console
map ! console shell%space
map ~ set viewmode!
map = console chmod%space
map ? help
map . shell ${HOME}/.config/ranger/scripts/dotify.sh %s
map Q quit!
map W display_log
map w taskview_open
# Change the line mode
#
map mf linemode filename
map mi linemode fileinfo
map mm linemode mtime
map mp linemode permissions
map ms linemode sizemtime
map mt linemode metatitle
# New objects
#
map nf console touch%space
map nd console mkdir%space
map nl console shell ln -s%space
# Tagging / Marking
#
# map t tag_toggle
# map T<any> tag_toggle tag=%any
# map <Space> mark_files toggle=True
# map <C-a> mark_files all=True toggle=True
# map V toggle_visual_mode
map t+ console tmsu_tag%space
map t- console tmsu_untag%space
map tl console tmsu_ls
# Bookmarks
#
map gb<any> enter_bookmark %any
map B<any> set_bookmark %any
map Bu<any> unset_bookmark %any
map b<bg> draw_bookmarks
# External Programs
#
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 y. yank name_without_extension
# Filesystem Operations
#
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)
# Searching
# map / console search%space
# map n search_next
# map N search_next forward=False
#map ct search_next order=tag
#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 <TAB> tab_move 1
#map <S-TAB> 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 <a-1> tab_open 1
#map <a-2> tab_open 2
#map <a-3> tab_open 3
#map <a-4> tab_open 4
#map <a-5> tab_open 5
#map <a-6> tab_open 6
#map <a-7> tab_open 7
#map <a-8> tab_open 8
#map <a-9> tab_open 9
# Sorting
#
map sr set sort_reverse!
map sz set sort=random
map ss chain set sort=size; set sort_reverse=False
map sb chain set sort=basename; set sort_reverse=False
map sn chain set sort=natural; set sort_reverse=False
map sm chain set sort=mtime; set sort_reverse=False
map sc chain set sort=ctime; set sort_reverse=False
map sa chain set sort=atime; set sort_reverse=False
map st chain set sort=type; set sort_reverse=False
map se chain set sort=extension; set sort_reverse=False
map sS chain set sort=size; set sort_reverse=True
map sB chain set sort=basename; set sort_reverse=True
map sN chain set sort=natural; set sort_reverse=True
map sM chain set sort=mtime; set sort_reverse=True
map sC chain set sort=ctime; set sort_reverse=True
map sA chain set sort=atime; set sort_reverse=True
map sT chain set sort=type; set sort_reverse=True
map sE chain set sort=extension; set sort_reverse=True
map dc get_cumulative_size
# Settings
#
map Sc set collapse_preview!
map Sd set sort_directories_first!
map Sh set show_hidden!
map SI set flushinput!
map Si set preview_images!
map Sm set mouse_enabled!
map Sp set preview_files!
map SP set preview_directories!
map Ss set sort_case_insensitive!
map Su set autoupdate_cumulative_size!
map Sv set use_preview_script!
map Sf console filter%space
# 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 <S-TAB> eval fm.ui.console.tab(1)
cmap <TAB> eval fm.ui.console.tab(-1)
cmap <ESC> eval fm.ui.console.close()
cmap <CR> eval fm.ui.console.execute()
cmap <C-l> redraw_window
copycmap <ESC> <C-d>
#copycmap <CR> <C-j>
# Move around
#cmap <up> eval fm.ui.console.history_move(-1)
#cmap <down> eval fm.ui.console.history_move(1)
#cmap <left> eval fm.ui.console.move(left=1)
#cmap <right> eval fm.ui.console.move(right=1)
#cmap <home> eval fm.ui.console.move(right=0, absolute=True)
#cmap <end> eval fm.ui.console.move(right=-1, absolute=True)
#cmap <a-left> eval fm.ui.console.move_word(left=1)
#cmap <a-right> eval fm.ui.console.move_word(right=1)
# Line Editing
cmap <backspace> eval fm.ui.console.delete(-1)
cmap <delete> eval fm.ui.console.delete(0)
cmap <C-x> eval fm.ui.console.delete_word()
#cmap <A-d> eval fm.ui.console.delete_word(backward=False)
#cmap <C-k> eval fm.ui.console.delete_rest(1)
#cmap <C-u> eval fm.ui.console.delete_rest(-1)
cmap <C-v> eval fm.ui.console.paste()
# And of course the emacs way
#copycmap <up> <C-p>
#copycmap <down> <C-n>
#copycmap <left> <C-b>
#copycmap <right> <C-f>
#copycmap <home> <C-a>
#copycmap <end> <C-e>
#copycmap <delete> <C-d>
#copycmap <backspace> <C-h>
# Note: There are multiple ways to express backspaces. <backspace> (code 263)
# and <backspace2> (code 127). To be sure, use both.
copycmap <backspace> <backspace2>
# This special expression allows typing in numerals:
cmap <allow_quantifiers> false
# ===================================================================
# == Pager Keybindings
# ===================================================================
# Movement
pmap <down> pager_move down=1
pmap <up> pager_move up=1
pmap <left> pager_move left=4
pmap <right> pager_move right=4
pmap <home> pager_move to=0
pmap <end> pager_move to=-1
pmap <pagedown> pager_move down=1.0 pages=True
pmap <pageup> pager_move up=1.0 pages=True
#pmap <C-d> pager_move down=0.5 pages=True
#pmap <C-u> pager_move up=0.5 pages=True
#copypmap <UP> k <C-p>
#copypmap <DOWN> j <C-n> <CR>
#copypmap <LEFT> h
#copypmap <RIGHT> l
#copypmap <HOME> g
#copypmap <END> G
#copypmap <C-d> d
#copypmap <C-u> u
#copypmap <PAGEDOWN> n f <C-F> <Space>
#copypmap <PAGEUP> p b <C-B>
# Basic
pmap <C-l> redraw_window
pmap <ESC> pager_close
copypmap <ESC> q Q i
pmap E edit_file
# ===================================================================
# == Taskview Keybindings
# ===================================================================
# Movement
tmap <up> taskview_move up=1
tmap <down> taskview_move down=1
tmap <home> taskview_move to=0
tmap <end> taskview_move to=-1
tmap <pagedown> taskview_move down=1.0 pages=True
tmap <pageup> taskview_move up=1.0 pages=True
#tmap <C-d> taskview_move down=0.5 pages=True
#tmap <C-u> taskview_move up=0.5 pages=True
#copytmap <UP> k <C-p>
#copytmap <DOWN> j <C-n> <CR>
#copytmap <HOME> g
#copytmap <END> G
#copytmap <C-u> u
#copytmap <PAGEDOWN> n f <C-F> <Space>
#copytmap <PAGEUP> p b <C-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 <pagedown> eval -q fm.ui.taskview.task_move(-1)
tmap <pageup> eval -q fm.ui.taskview.task_move(0)
tmap <delete> eval -q fm.ui.taskview.task_remove()
# Basic
tmap <C-l> redraw_window
tmap <ESC> taskview_close
copytmap <ESC> q Q w <C-c>
# vim: set filetype=config : #