362 lines
16 KiB
Python
362 lines
16 KiB
Python
# pylint: disable=C0111
|
|
from qutebrowser.config.configfiles import ConfigAPI # noqa: F401
|
|
from qutebrowser.config.config import ConfigContainer # noqa: F401
|
|
config: ConfigAPI = config # noqa: F821 pylint: disable=E0602,C0103
|
|
c: ConfigContainer = c # noqa: F821 pylint: disable=E0602,C0103
|
|
|
|
# config.bind(',v', 'spawn mpv {url}')
|
|
# config.bind(',d', 'spawn ytdl {url}')
|
|
|
|
# bookmarks
|
|
config.bind(',ba', 'bookmark-add')
|
|
config.bind(',bb', 'set-cmd-text -s :bookmark-load')
|
|
config.bind(',bl', 'bookmark-list')
|
|
config.bind(',bj', 'bookmark-list --jump')
|
|
config.bind(',bt', 'set-cmd-text -s :bookmark-load -t')
|
|
config.bind(',bw', 'set-cmd-text -s :bookmark-load -w')
|
|
config.bind(',bql', 'set-cmd-text -s :quickmark-load')
|
|
config.bind(',bqL', 'set-cmd-text -s :quickmark-load -t')
|
|
config.bind(',bqs', 'quickmark-save')
|
|
config.bind(',bqw', 'set-cmd-text -s :quickmark-load -w')
|
|
|
|
# config cycle
|
|
config.bind(',cCH', 'config-cycle -p -u *://*.{url:host}/* content.cookies.accept all no-3rdparty never ;; reload')
|
|
config.bind(',cCh', 'config-cycle -p -u *://{url:host}/* content.cookies.accept all no-3rdparty never ;; reload')
|
|
config.bind(',cCu', 'config-cycle -p -u {url} content.cookies.accept all no-3rdparty never ;; reload')
|
|
config.bind(',cIH', 'config-cycle -p -u *://*.{url:host}/* content.images ;; reload')
|
|
config.bind(',cIh', 'config-cycle -p -u *://{url:host}/* content.images ;; reload')
|
|
config.bind(',cIu', 'config-cycle -p -u {url} content.images ;; reload')
|
|
config.bind(',cPH', 'config-cycle -p -u *://*.{url:host}/* content.plugins ;; reload')
|
|
config.bind(',cPh', 'config-cycle -p -u *://{url:host}/* content.plugins ;; reload')
|
|
config.bind(',cPu', 'config-cycle -p -u {url} content.plugins ;; reload')
|
|
config.bind(',cSH', 'config-cycle -p -u *://*.{url:host}/* content.javascript.enabled ;; reload')
|
|
config.bind(',cSh', 'config-cycle -p -u *://{url:host}/* content.javascript.enabled ;; reload')
|
|
config.bind(',cSu', 'config-cycle -p -u {url} content.javascript.enabled ;; reload')
|
|
config.bind(',ccH', 'config-cycle -p -t -u *://*.{url:host}/* content.cookies.accept all no-3rdparty never ;; reload')
|
|
config.bind(',cch', 'config-cycle -p -t -u *://{url:host}/* content.cookies.accept all no-3rdparty never ;; reload')
|
|
config.bind(',ccu', 'config-cycle -p -t -u {url} content.cookies.accept all no-3rdparty never ;; reload')
|
|
config.bind(',ch', 'back -t')
|
|
config.bind(',ciH', 'config-cycle -p -t -u *://*.{url:host}/* content.images ;; reload')
|
|
config.bind(',cih', 'config-cycle -p -t -u *://{url:host}/* content.images ;; reload')
|
|
config.bind(',ciu', 'config-cycle -p -t -u {url} content.images ;; reload')
|
|
config.bind(',cl', 'forward -t')
|
|
config.bind(',cpH', 'config-cycle -p -t -u *://*.{url:host}/* content.plugins ;; reload')
|
|
config.bind(',cph', 'config-cycle -p -t -u *://{url:host}/* content.plugins ;; reload')
|
|
config.bind(',cpu', 'config-cycle -p -t -u {url} content.plugins ;; reload')
|
|
config.bind(',csH', 'config-cycle -p -t -u *://*.{url:host}/* content.javascript.enabled ;; reload')
|
|
config.bind(',csh', 'config-cycle -p -t -u *://{url:host}/* content.javascript.enabled ;; reload')
|
|
config.bind(',csu', 'config-cycle -p -t -u {url} content.javascript.enabled ;; reload')
|
|
|
|
# downloads
|
|
config.bind(',da', 'download-cancel')
|
|
config.bind(',dd', 'download')
|
|
config.bind(',dc', 'download-clear')
|
|
config.bind(',dy', 'spawn ytdl {url}')
|
|
|
|
# dev tools
|
|
config.bind(',Dd', 'devtools')
|
|
config.bind(',Df', 'devtools-focus')
|
|
config.bind(',Dc', 'devtools left')
|
|
config.bind(',Dt', 'devtools bottom')
|
|
config.bind(',Ds', 'devtools top')
|
|
config.bind(',Dr', 'devtools right')
|
|
config.bind(',Dw', 'devtools window')
|
|
|
|
# save
|
|
config.bind('fs', 'save')
|
|
|
|
# hints
|
|
config.bind(',hd', 'hint links download')
|
|
config.bind(',hh', 'hint')
|
|
config.bind(',hH', 'hint all hover')
|
|
config.bind(',hii', 'hint images')
|
|
config.bind(',hiI', 'hint images tab')
|
|
config.bind(',hIi', 'hint inputs')
|
|
config.bind(',hIf', 'hint inputs --first')
|
|
config.bind(',hO', 'hint links fill :open -t -r {hint-url}')
|
|
config.bind(',ho', 'hint links fill :open {hint-url}')
|
|
config.bind(',hR', 'hint --rapid links window')
|
|
config.bind(',hr', 'hint --rapid links tab-bg')
|
|
config.bind(',htb', 'hint all tab-bg')
|
|
config.bind(',htf', 'hint all tab-fg')
|
|
config.bind(',htt', 'hint all tab')
|
|
config.bind(',hw', 'hint all window')
|
|
config.bind(',hy', 'hint links yank')
|
|
config.bind(',hY', 'hint links yank-primary')
|
|
# Bindings for hint mode
|
|
config.bind('<Ctrl-B>', 'hint all tab-bg', mode='hint')
|
|
config.bind('<Ctrl-F>', 'hint links', mode='hint')
|
|
config.bind('<Ctrl-R>', 'hint --rapid links tab-bg', mode='hint')
|
|
config.bind('<Escape>', 'mode-leave', mode='hint')
|
|
config.bind('<Return>', 'hint-follow', mode='hint')
|
|
|
|
# Move
|
|
config.bind('<Ctrl-PgDown>', 'tab-next')
|
|
config.bind('<Ctrl-C>', 'back -w')
|
|
config.bind('<Ctrl-R>', 'forward -w')
|
|
config.bind('<Ctrl-h>', 'home')
|
|
config.bind('T', 'tab-next')
|
|
config.bind('S', 'tab-prev')
|
|
config.bind('C', 'back')
|
|
config.bind('R', 'forward')
|
|
|
|
# cmd
|
|
config.bind(',sb', 'set-cmd-text -s :bind')
|
|
config.bind(',st', 'set-cmd-text -s :set -t')
|
|
config.bind(',ss', 'set')
|
|
config.bind(',sS', 'set-cmd-text -s :set')
|
|
|
|
# open
|
|
config.bind('<Ctrl-N>', 'open -w')
|
|
config.bind('<Ctrl-Shift-N>', 'open -p')
|
|
config.bind('<Ctrl-T>', 'open -t')
|
|
config.bind(',ob', 'set-cmd-text -s :open -b')
|
|
config.bind(',oB', 'set-cmd-text :open -b -r {url:pretty}')
|
|
config.bind(',oP', 'set-cmd-text :open -t -r {url:pretty}')
|
|
config.bind(',ott', 'open -t')
|
|
config.bind(',otT', 'set-cmd-text -s :open -t')
|
|
config.bind(',ow', 'set-cmd-text -s :open -w')
|
|
config.bind(',oW', 'set-cmd-text :open -w {url:pretty}')
|
|
config.bind(',occ', 'open -- {clipboard}')
|
|
config.bind(',ocC', 'open -t -- {clipboard}')
|
|
config.bind(',ocp', 'open -- {primary}')
|
|
config.bind(',ocP', 'open -t -- {primary}')
|
|
config.bind(',ocw', 'open -w -- {clipboard}')
|
|
config.bind(',ocW', 'open -w -- {primary}')
|
|
config.bind('o', 'set-cmd-text -s :open')
|
|
config.bind('O', 'set-cmd-text :open {url:pretty}')
|
|
|
|
# tabs
|
|
config.bind('<Alt-1>', 'tab-focus 1')
|
|
config.bind('<Alt-2>', 'tab-focus 2')
|
|
config.bind('<Alt-3>', 'tab-focus 3')
|
|
config.bind('<Alt-4>', 'tab-focus 4')
|
|
config.bind('<Alt-5>', 'tab-focus 5')
|
|
config.bind('<Alt-6>', 'tab-focus 6')
|
|
config.bind('<Alt-7>', 'tab-focus 7')
|
|
config.bind('<Alt-8>', 'tab-focus 8')
|
|
config.bind('<Alt-9>', 'tab-focus -1')
|
|
config.bind('<Alt-m>', 'tab-mute')
|
|
config.bind('<Ctrl-Tab>', 'tab-focus last')
|
|
config.bind('<Ctrl-W>', 'tab-close')
|
|
config.bind(',tT', 'tab-move +')
|
|
config.bind(',tS', 'tab-move -')
|
|
config.bind(',tn', 'tab-next')
|
|
config.bind(',tp', 'tab-prev')
|
|
config.bind(',t«', 'tab-focus -1')
|
|
config.bind(',t»', 'tab-focus 1')
|
|
config.bind(',tC', 'tab-clone')
|
|
config.bind(',tD', 'tab-only')
|
|
config.bind(',td', 'tab-close')
|
|
config.bind(',tf', 'set-cmd-text -sr :tab-focus')
|
|
config.bind(',tg', 'tab-give')
|
|
config.bind(',tl', 'tab-focus last')
|
|
config.bind(',tm', 'tab-move')
|
|
config.bind(',tP', 'tab-pin')
|
|
config.bind(',ts', 'set-cmd-text -s :tab-select')
|
|
|
|
# scoll
|
|
config.bind('G', 'scroll-to-perc')
|
|
config.bind('gg', 'scroll-to-perc 0')
|
|
config.bind('c', 'scroll left')
|
|
config.bind('t', 'scroll down')
|
|
config.bind('s', 'scroll up')
|
|
config.bind('r', 'scroll right')
|
|
config.bind('<Ctrl-F>', 'scroll-page 0 1')
|
|
config.bind('<Ctrl-B>', 'scroll-page 0 -1')
|
|
config.bind('<Ctrl-D>', 'scroll-page 0 0.5')
|
|
config.bind('<Ctrl-U>', 'scroll-page 0 -0.5')
|
|
|
|
# navigate
|
|
config.bind(',nd', 'navigate decrement')
|
|
config.bind(',ni', 'navigate increment')
|
|
config.bind(',nn', 'navigate prev')
|
|
config.bind(',nN', 'navigate next -t')
|
|
config.bind(',np', 'navigate next')
|
|
config.bind(',nP', 'navigate prev -t')
|
|
config.bind(',nu', 'navigate up')
|
|
config.bind(',nU', 'navigate up -t')
|
|
|
|
# search
|
|
config.bind('n', 'search-next')
|
|
config.bind('N', 'search-prev')
|
|
|
|
# print
|
|
config.bind('<Ctrl-Alt-p>', 'print')
|
|
|
|
config.bind(',qq', 'quit')
|
|
config.bind(',qs', 'quit --save')
|
|
config.bind(',qw', 'close')
|
|
config.bind('<Ctrl-Q>', 'quit')
|
|
|
|
# reload
|
|
config.bind(',rr', 'reload')
|
|
config.bind(',rR', 'reload -f')
|
|
config.bind('<F5>', 'reload')
|
|
config.bind('<Ctrl-F5>', 'reload -f')
|
|
|
|
# view
|
|
config.bind('vh', 'history')
|
|
config.bind('vs', 'view-source')
|
|
|
|
# yank
|
|
config.bind('yd', 'yank domain')
|
|
config.bind('yD', 'yank domain -s')
|
|
config.bind('yi', 'yank inline [{title}]({url})')
|
|
config.bind('yI', 'yank inline [{title}]({url}) -s')
|
|
config.bind('yp', 'yank pretty-url')
|
|
config.bind('yP', 'yank pretty-url -s')
|
|
config.bind('yt', 'yank title')
|
|
config.bind('yT', 'yank title -s')
|
|
config.bind('yy', 'yank')
|
|
config.bind('yY', 'yank -s')
|
|
|
|
config.bind('<Escape>', 'clear-keychain ;; search ;; fullscreen --leave')
|
|
|
|
config.bind('+', 'zoom-in')
|
|
config.bind('-', 'zoom-out')
|
|
config.bind('=', 'zoom')
|
|
|
|
config.bind('?', 'set-cmd-text ?')
|
|
config.bind('/', 'set-cmd-text /')
|
|
config.bind(':', 'set-cmd-text :')
|
|
config.bind('.', 'repeat-command')
|
|
|
|
config.bind('<Ctrl-Shift-Tab>', 'nop')
|
|
config.bind('<Ctrl-s>', 'stop')
|
|
config.bind('<F11>', 'fullscreen')
|
|
|
|
config.bind('<Return>', 'selection-follow')
|
|
config.bind('<Ctrl-Return>', 'selection-follow -t')
|
|
|
|
config.bind('<back>', 'back')
|
|
config.bind('<forward>', 'forward')
|
|
|
|
|
|
config.bind('<Ctrl-V>', 'mode-enter passthrough')
|
|
config.bind("'", 'mode-enter jump_mark')
|
|
config.bind('v', 'mode-enter caret')
|
|
config.bind('V', 'mode-enter caret ;; selection-toggle --line')
|
|
config.bind('`', 'mode-enter set_mark')
|
|
config.bind('i', 'mode-enter insert')
|
|
|
|
config.bind('q', 'macro-record')
|
|
config.bind('@', 'macro-run')
|
|
|
|
config.bind('U', 'undo -w')
|
|
config.bind('<Ctrl-Shift-T>', 'undo')
|
|
config.bind('u', 'undo')
|
|
|
|
# Bindings for caret mode
|
|
config.bind('C', 'scroll left', mode='caret')
|
|
config.bind('T', 'scroll down', mode='caret')
|
|
config.bind('S', 'scroll up', mode='caret')
|
|
config.bind('R', 'scroll right', mode='caret')
|
|
config.bind('c', 'move-to-prev-char', mode='caret')
|
|
config.bind('t', 'move-to-next-line', mode='caret')
|
|
config.bind('s', 'move-to-prev-line', mode='caret')
|
|
config.bind('r', 'move-to-next-char', mode='caret')
|
|
|
|
config.bind('$', 'move-to-end-of-line', mode='caret')
|
|
config.bind('0', 'move-to-start-of-line', mode='caret')
|
|
config.bind('<Ctrl-Space>', 'selection-drop', mode='caret')
|
|
config.bind('<Escape>', 'mode-leave', mode='caret')
|
|
config.bind('<Return>', 'yank selection', mode='caret')
|
|
config.bind('<Space>', 'selection-toggle', mode='caret')
|
|
config.bind('v', 'selection-toggle', mode='caret')
|
|
config.bind('V', 'selection-toggle --line', mode='caret')
|
|
config.bind('y', 'yank selection', mode='caret')
|
|
config.bind('Y', 'yank selection -s', mode='caret')
|
|
config.bind('[', 'move-to-start-of-prev-block', mode='caret')
|
|
config.bind(']', 'move-to-start-of-next-block', mode='caret')
|
|
config.bind('{', 'move-to-end-of-prev-block', mode='caret')
|
|
config.bind('}', 'move-to-end-of-next-block', mode='caret')
|
|
config.bind('b', 'move-to-prev-word', mode='caret')
|
|
config.bind('e', 'move-to-end-of-word', mode='caret')
|
|
config.bind('gg', 'move-to-start-of-document', mode='caret')
|
|
config.bind('G', 'move-to-end-of-document', mode='caret')
|
|
config.bind('n', 'mode-enter normal', mode='caret')
|
|
config.bind('o', 'selection-reverse', mode='caret')
|
|
config.bind('w', 'move-to-next-word', mode='caret')
|
|
|
|
# Bindings for command mode
|
|
config.bind('<Alt-B>', 'rl-backward-word', mode='command')
|
|
config.bind('<Alt-Backspace>', 'rl-backward-kill-word', mode='command')
|
|
config.bind('<Alt-D>', 'rl-kill-word', mode='command')
|
|
config.bind('<Alt-F>', 'rl-forward-word', mode='command')
|
|
config.bind('<Ctrl-?>', 'rl-delete-char', mode='command')
|
|
config.bind('<Ctrl-A>', 'rl-beginning-of-line', mode='command')
|
|
config.bind('<Ctrl-B>', 'rl-backward-char', mode='command')
|
|
config.bind('<Ctrl-C>', 'completion-item-yank', mode='command')
|
|
config.bind('<Ctrl-D>', 'completion-item-del', mode='command')
|
|
config.bind('<Ctrl-E>', 'rl-end-of-line', mode='command')
|
|
config.bind('<Ctrl-F>', 'rl-forward-char', mode='command')
|
|
config.bind('<Ctrl-H>', 'rl-backward-delete-char', mode='command')
|
|
config.bind('<Ctrl-K>', 'rl-kill-line', mode='command')
|
|
config.bind('<Ctrl-N>', 'command-history-next', mode='command')
|
|
config.bind('<Ctrl-P>', 'command-history-prev', mode='command')
|
|
config.bind('<Ctrl-Return>', 'command-accept --rapid', mode='command')
|
|
config.bind('<Ctrl-Shift-C>', 'completion-item-yank --sel', mode='command')
|
|
config.bind('<Ctrl-Shift-Tab>', 'completion-item-focus prev-category', mode='command')
|
|
config.bind('<Ctrl-Tab>', 'completion-item-focus next-category', mode='command')
|
|
config.bind('<Ctrl-U>', 'rl-unix-line-discard', mode='command')
|
|
config.bind('<Ctrl-W>', 'rl-unix-word-rubout', mode='command')
|
|
config.bind('<Ctrl-Y>', 'rl-yank', mode='command')
|
|
config.bind('<Down>', 'completion-item-focus --history next', mode='command')
|
|
config.bind('<Escape>', 'mode-leave', mode='command')
|
|
config.bind('<PgDown>', 'completion-item-focus next-page', mode='command')
|
|
config.bind('<PgUp>', 'completion-item-focus prev-page', mode='command')
|
|
config.bind('<Return>', 'command-accept', mode='command')
|
|
config.bind('<Shift-Delete>', 'completion-item-del', mode='command')
|
|
config.bind('<Shift-Tab>', 'completion-item-focus prev', mode='command')
|
|
config.bind('<Tab>', 'completion-item-focus next', mode='command')
|
|
config.bind('<Up>', 'completion-item-focus --history prev', mode='command')
|
|
|
|
# Bindings for insert mode
|
|
config.bind('<Ctrl-E>', 'edit-text', mode='insert')
|
|
config.bind('<Escape>', 'mode-leave', mode='insert')
|
|
config.bind('<Shift-Escape>', 'fake-key <Escape>', mode='insert')
|
|
config.bind('<Shift-Ins>', 'insert-text -- {primary}', mode='insert')
|
|
|
|
# Bindings for passthrough mode
|
|
config.bind('<Shift-Escape>', 'mode-leave', mode='passthrough')
|
|
|
|
# Bindings for prompt mode
|
|
config.bind('<Alt-B>', 'rl-backward-word', mode='prompt')
|
|
config.bind('<Alt-Backspace>', 'rl-backward-kill-word', mode='prompt')
|
|
config.bind('<Alt-D>', 'rl-kill-word', mode='prompt')
|
|
config.bind('<Alt-F>', 'rl-forward-word', mode='prompt')
|
|
config.bind('<Alt-Shift-Y>', 'prompt-yank --sel', mode='prompt')
|
|
config.bind('<Alt-Y>', 'prompt-yank', mode='prompt')
|
|
config.bind('<Ctrl-?>', 'rl-delete-char', mode='prompt')
|
|
config.bind('<Ctrl-A>', 'rl-beginning-of-line', mode='prompt')
|
|
config.bind('<Ctrl-B>', 'rl-backward-char', mode='prompt')
|
|
config.bind('<Ctrl-E>', 'rl-end-of-line', mode='prompt')
|
|
config.bind('<Ctrl-F>', 'rl-forward-char', mode='prompt')
|
|
config.bind('<Ctrl-H>', 'rl-backward-delete-char', mode='prompt')
|
|
config.bind('<Ctrl-K>', 'rl-kill-line', mode='prompt')
|
|
config.bind('<Ctrl-P>', 'prompt-open-download --pdfjs', mode='prompt')
|
|
config.bind('<Ctrl-U>', 'rl-unix-line-discard', mode='prompt')
|
|
config.bind('<Ctrl-W>', 'rl-unix-word-rubout', mode='prompt')
|
|
config.bind('<Ctrl-X>', 'prompt-open-download', mode='prompt')
|
|
config.bind('<Ctrl-Y>', 'rl-yank', mode='prompt')
|
|
config.bind('<Down>', 'prompt-item-focus next', mode='prompt')
|
|
config.bind('<Escape>', 'mode-leave', mode='prompt')
|
|
config.bind('<Return>', 'prompt-accept', mode='prompt')
|
|
config.bind('<Shift-Tab>', 'prompt-item-focus prev', mode='prompt')
|
|
config.bind('<Tab>', 'prompt-item-focus next', mode='prompt')
|
|
config.bind('<Up>', 'prompt-item-focus prev', mode='prompt')
|
|
|
|
# Bindings for register mode
|
|
config.bind('<Escape>', 'mode-leave', mode='register')
|
|
|
|
# Bindings for yesno mode
|
|
config.bind('<Alt-Shift-Y>', 'prompt-yank --sel', mode='yesno')
|
|
config.bind('<Alt-Y>', 'prompt-yank', mode='yesno')
|
|
config.bind('<Escape>', 'mode-leave', mode='yesno')
|
|
config.bind('<Return>', 'prompt-accept', mode='yesno')
|
|
config.bind('N', 'prompt-accept --save no', mode='yesno')
|
|
config.bind('Y', 'prompt-accept --save yes', mode='yesno')
|
|
config.bind('n', 'prompt-accept no', mode='yesno')
|
|
config.bind('y', 'prompt-accept yes', mode='yesno')
|