Text · 11339 bytes Raw Blame History
1 # Clean, fast ranger configuration
2 # Focused on speed and stability
3 # ===== Options =====
4 set viewmode miller
5 set column_ratios 1,3,4
6 set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^(py)?cache$
7 set show_hidden false
8 set confirm_on_delete multiple
9 set use_preview_script true
10 set automatically_count_files true
11 set open_all_images true
12 set vcs_aware false
13 set vcs_backend_git disabled
14 set preview_images true
15 set preview_images_method w3m
16 set unicode_ellipsis false
17 set show_hidden_bookmarks false
18 set colorscheme default
19 set preview_files true
20 set preview_directories true
21 set collapse_preview true
22 set save_console_history true
23 set status_bar_on_top false
24 set draw_progress_bar_in_status_bar true
25 set draw_borders both
26 set mouse_enabled true
27 set display_size_in_main_column true
28 set display_size_in_status_bar true
29 set display_free_space_in_status_bar true
30 set display_tags_in_all_columns true
31 set update_title false
32 set update_tmux_title false
33 set shorten_title 3
34 set hostname_in_titlebar false
35 set tilde_in_titlebar true
36 set max_history_size 20
37 set max_console_history_size 50
38 set scroll_offset 8
39 set flushinput true
40 set padding_right true
41 set autosave_bookmarks false
42 set autoupdate_cumulative_size false
43 set show_cursor false
44 set sort natural
45 set sort_reverse false
46 set sort_case_insensitive true
47 set sort_directories_first true
48 set sort_unicode false
49 set xterm_alt_key false
50 set cd_bookmarks true
51 set cd_tab_case sensitive
52 set cd_tab_fuzzy false
53 set preview_max_size 0
54 set show_selection_in_titlebar true
55 set idle_delay 2000
56 set metadata_deep_search false
57 set clear_filters_on_dir_change false
58 set line_numbers false
59 set one_indexed false
60 set save_tabs_on_exit false
61 set wrap_scroll false
62 set global_inode_type_filter
63 set freeze_files false
64 # ===== Local Options =====
65 setlocal path=~/Downloads sort mtime
66 # ===== Command Aliases =====
67 alias e edit
68 alias q quit
69 alias qa quit!
70 alias q! quit!
71 alias qall quit!
72 alias setl setlocal
73 alias filter scout -prts
74 alias find scout -aets
75 alias travel scout -aefklst
76 # ===== Quit Mappings (Essential) =====
77 map q quit
78 map Q quit!
79 map ZZ quit!
80 map ZQ quit!
81 # ===== Key Mappings =====
82 # ----- Basic Movement -----
83 map <UP> move up=1
84 map <DOWN> move down=1
85 map <LEFT> move left=1
86 map <RIGHT> move right=1
87 map <HOME> move to=0
88 map <END> move to=-1
89 map <PAGEDOWN> move down=1 pages=True
90 map <PAGEUP> move up=1 pages=True
91 map <CR> move right=1
92 map <DELETE> console delete
93 map <INSERT> console touch%space
94 # ----- VIM-like -----
95 copymap <UP> k
96 copymap <DOWN> j
97 copymap <LEFT> h
98 copymap <RIGHT> l
99 copymap <HOME> gg
100 copymap <END> G
101 copymap <PAGEDOWN> <C-F>
102 copymap <PAGEUP> <C-B>
103 map J move down=0.5 pages=True
104 map K move up=0.5 pages=True
105 copymap J <C-D>
106 copymap K <C-U>
107 map H history_go -1
108 map L history_go 1
109 # ----- Jumping around -----
110 map ] move_parent 1
111 map [ move_parent -1
112 map } traverse
113 map { traverse_backwards
114 map ) jump_non
115 map gh cd ~
116 map ge cd /etc
117 map gu cd /usr
118 map gd cd ~/Documents
119 map gD cd ~/Downloads
120 map gp cd ~/Pictures
121 map gc cd ~/.config
122 map gm cd /mnt
123 map gs cd ~/.local/share
124 map gr cd /
125 map gR eval fm.cd(ranger.RANGERDIR)
126 map g/ cd /
127 map g? cd /usr/share/doc/ranger
128 # ----- Tabs -----
129 map <C-n> tab_new
130 map <C-w> tab_close
131 map <TAB> tab_move 1
132 map <S-TAB> tab_move -1
133 map <A-Right> tab_move 1
134 map <A-Left> tab_move -1
135 map gt tab_move 1
136 map gT tab_move -1
137 map gn tab_new
138 map gc tab_close
139 map tt tab_close
140 map <a-1> tab_open 1
141 map <a-2> tab_open 2
142 map <a-3> tab_open 3
143 map <a-4> tab_open 4
144 map <a-5> tab_open 5
145 map <a-6> tab_open 6
146 map <a-7> tab_open 7
147 map <a-8> tab_open 8
148 map <a-9> tab_open 9
149 map <a-r> tab_shift 1
150 map <a-l> tab_shift -1
151 # ----- File Operations -----
152 map yy copy
153 map ya copy mode=add
154 map yr copy mode=remove
155 map yt copy mode=toggle
156 map dd cut
157 map da cut mode=add
158 map dr cut mode=remove
159 map dt cut mode=toggle
160 map pp paste
161 map po paste overwrite=True
162 map pP paste append=True
163 map pO paste overwrite=True append=True
164 map pl paste_symlink relative=False
165 map pL paste_symlink relative=True
166 map phl paste_hardlink
167 map pht paste_hardlinked_subtree
168 map pd console paste dest=
169 map p<any> paste dest=%any_path
170 map p'<any> paste dest=%any_path
171 map dD console delete
172 map dT console trash
173 map <SPACE> mark_files toggle=True
174 map v mark_files all=True toggle=True
175 map uv mark_files all=True val=False
176 map V toggle_visual_mode
177 map uV toggle_visual_mode reverse=True
178 # ----- Searching -----
179 map / console search%space
180 map n search_next
181 map N search_next forward=False
182 map ct search_next order=tag
183 map cs search_next order=size
184 map ci search_next order=mimetype
185 map cc search_next order=ctime
186 map cm search_next order=mtime
187 map ca search_next order=atime
188 # ----- Sorting -----
189 map or set sort_reverse!
190 map oz set sort=random
191 map os chain set sort=size; set sort_reverse=False
192 map ob chain set sort=basename; set sort_reverse=False
193 map on chain set sort=natural; set sort_reverse=False
194 map om chain set sort=mtime; set sort_reverse=False
195 map oc chain set sort=ctime; set sort_reverse=False
196 map oa chain set sort=atime; set sort_reverse=False
197 map ot chain set sort=type; set sort_reverse=False
198 map oe chain set sort=extension; set sort_reverse=False
199 map oS chain set sort=size; set sort_reverse=True
200 map oB chain set sort=basename; set sort_reverse=True
201 map oN chain set sort=natural; set sort_reverse=True
202 map oM chain set sort=mtime; set sort_reverse=True
203 map oC chain set sort=ctime; set sort_reverse=True
204 map oA chain set sort=atime; set sort_reverse=True
205 map oT chain set sort=type; set sort_reverse=True
206 map oE chain set sort=extension; set sort_reverse=True
207 map dc get_cumulative_size
208 # ----- Settings -----
209 map zc set collapse_preview!
210 map zd set sort_directories_first!
211 map zh set show_hidden!
212 map <C-h> set show_hidden!
213 copymap <C-h> <backspace>
214 copymap <backspace> <backspace2>
215 map zI set flushinput!
216 map zi set preview_images!
217 map zm set mouse_enabled!
218 map zp set preview_files!
219 map zP set preview_directories!
220 map zs set sort_case_insensitive!
221 map zu set autoupdate_cumulative_size!
222 map zv set use_preview_script!
223 map zf console filter%space
224 copymap zf zz
225 # ----- Bookmarks -----
226 map <any> enter_bookmark %any
227 map '<any> enter_bookmark %any
228 map m<any> set_bookmark %any
229 map um<any> unset_bookmark %any
230 map m<bg> draw_bookmarks
231 copymap m<bg> um<bg> `<bg> '<bg>
232 # ----- External Programs -----
233 map E edit
234 map du shell -p du --max-depth=1 -h --apparent-size
235 map dU shell -p du --max-depth=1 -h --apparent-size | sort -rh
236 map yp yank path
237 map yd yank dir
238 map yn yank name
239 map y. yank name_without_extension
240 # ----- Filesystem Operations -----
241 map = chmod
242 map cw console rename%space
243 map a rename_append
244 map A eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"))
245 map I eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"), position=7)
246 map pp paste
247 map po paste overwrite=True
248 map pP paste append=True
249 map pO paste overwrite=True append=True
250 map pl paste_symlink relative=False
251 map pL paste_symlink relative=True
252 map phl paste_hardlink
253 map pht paste_hardlinked_subtree
254 map pd console paste dest=
255 # ----- Temporary workarounds -----
256 map dgg eval fm.cut(dirarg=dict(to=0), narg=quantifier)
257 map dG eval fm.cut(dirarg=dict(to=-1), narg=quantifier)
258 map dj eval fm.cut(dirarg=dict(down=1), narg=quantifier)
259 map dk eval fm.cut(dirarg=dict(up=1), narg=quantifier)
260 map ygg eval fm.copy(dirarg=dict(to=0), narg=quantifier)
261 map yG eval fm.copy(dirarg=dict(to=-1), narg=quantifier)
262 map yj eval fm.copy(dirarg=dict(down=1), narg=quantifier)
263 map yk eval fm.copy(dirarg=dict(up=1), narg=quantifier)
264 # ----- Searching -----
265 map / console search%space
266 map n search_next
267 map N search_next forward=False
268 map ct search_next order=tag
269 map cs search_next order=size
270 map ci search_next order=mimetype
271 map cc search_next order=ctime
272 map cm search_next order=mtime
273 map ca search_next order=atime
274 # ----- Console -----
275 cmap <tab> eval fm.ui.console.tab()
276 cmap <s-tab> eval fm.ui.console.tab(-1)
277 cmap <ESC> eval fm.ui.console.close()
278 cmap <CR> eval fm.ui.console.execute()
279 cmap <C-l> redraw_window
280 copycmap <ESC> <C-c>
281 copycmap <CR> <C-j>
282 # ===== Main Quit Key (add this) =====
283 map <ESC> quit
284 # ----- Movement in console -----
285 cmap <up> eval fm.ui.console.history_move(-1)
286 cmap <down> eval fm.ui.console.history_move(1)
287 cmap <left> eval fm.ui.console.move(left=1)
288 cmap <right> eval fm.ui.console.move(right=1)
289 cmap <home> eval fm.ui.console.move(right=0, absolute=True)
290 cmap <end> eval fm.ui.console.move(right=-1, absolute=True)
291 cmap <a-b> eval fm.ui.console.move_word(left=1)
292 cmap <a-f> eval fm.ui.console.move_word(right=1)
293 copycmap <a-b> <a-left>
294 copycmap <a-f> <a-right>
295 # ----- Line Editing in console -----
296 cmap <backspace> eval fm.ui.console.delete(-1)
297 cmap <delete> eval fm.ui.console.delete(0)
298 cmap <C-w> eval fm.ui.console.delete_word()
299 cmap <A-d> eval fm.ui.console.delete_word(backward=False)
300 cmap <C-k> eval fm.ui.console.delete_rest(1)
301 cmap <C-u> eval fm.ui.console.delete_rest(-1)
302 cmap <C-y> eval fm.ui.console.paste()
303 copycmap <backspace> <backspace2>
304 cmap <allow_quantifiers> false
305 # ----- Pager (less-like) -----
306 pmap <down> pager_move down=1
307 pmap <up> pager_move up=1
308 pmap <left> pager_move left=4
309 pmap <right> pager_move right=4
310 pmap <home> pager_move to=0
311 pmap <end> pager_move to=-1
312 pmap <pagedown> pager_move down=1.0 pages=True
313 pmap <pageup> pager_move up=1.0 pages=True
314 pmap <C-d> pager_move down=0.5 pages=True
315 pmap <C-u> pager_move up=0.5 pages=True
316 copypmap <UP> k <C-p>
317 copypmap <DOWN> j <C-n> <CR>
318 copypmap <LEFT> h
319 copypmap <RIGHT> l
320 copypmap <HOME> g
321 copypmap <END> G
322 copypmap <C-d> d
323 copypmap <C-u> u
324 copypmap <PAGEDOWN> n f <C-F> <Space>
325 copypmap <PAGEUP> p b <C-B>
326 pmap <C-l> redraw_window
327 pmap <ESC> pager_close
328 copypmap <ESC> q Q i <F3>
329 pmap E edit_file
330 # ----- Taskview -----
331 tmap <up> taskview_move up=1
332 tmap <down> taskview_move down=1
333 tmap <home> taskview_move to=0
334 tmap <end> taskview_move to=-1
335 tmap <pagedown> taskview_move down=1.0 pages=True
336 tmap <pageup> taskview_move up=1.0 pages=True
337 tmap <C-d> taskview_move down=0.5 pages=True
338 tmap <C-u> taskview_move up=0.5 pages=True
339 copytmap <UP> k <C-p>
340 copytmap <DOWN> j <C-n> <CR>
341 copytmap <HOME> g
342 copytmap <END> G
343 copytmap <C-u> u
344 copytmap <PAGEDOWN> n f <C-F> <Space>
345 copytmap <PAGEUP> p b <C-B>
346 tmap J eval -q fm.ui.taskview.task_move(-1)
347 tmap K eval -q fm.ui.taskview.task_move(0)
348 tmap dd eval -q fm.ui.taskview.task_remove()
349 tmap <pagedown> eval -q fm.ui.taskview.task_move(-1)
350 tmap <pageup> eval -q fm.ui.taskview.task_move(0)
351 tmap <delete> eval -q fm.ui.taskview.task_remove()
352 tmap <C-l> redraw_window
353 tmap <ESC> taskview_close
354 copytmap <ESC> q Q w <C-c>
355 # ===== Fix Console Access =====
356 map : console
357 map ; console
358
359 # ===== FZF Commands Only =====
360 map <C-p> fzf_select
361 map <A-f> console fzf_grep%space