diff options
author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2025-06-06 21:06:07 +0200 |
---|---|---|
committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2025-06-06 21:06:07 +0200 |
commit | 0ec2002665ce7bbf3238dc225d348e1c74a00cef (patch) | |
tree | 5e943763e77494ca764d87cd769b617ef761aff0 /modules/by-name/qu/qutebrowser/settings/keybindings.nix | |
parent | pkgs/fupdate: Move cli test into a `tests` module (diff) | |
download | nixos-config-0ec2002665ce7bbf3238dc225d348e1c74a00cef.zip |
{modules,pkgs}/qutebrowser: Enable qutebrowser support
Diffstat (limited to 'modules/by-name/qu/qutebrowser/settings/keybindings.nix')
-rw-r--r-- | modules/by-name/qu/qutebrowser/settings/keybindings.nix | 289 |
1 files changed, 289 insertions, 0 deletions
diff --git a/modules/by-name/qu/qutebrowser/settings/keybindings.nix b/modules/by-name/qu/qutebrowser/settings/keybindings.nix new file mode 100644 index 00000000..fde78457 --- /dev/null +++ b/modules/by-name/qu/qutebrowser/settings/keybindings.nix @@ -0,0 +1,289 @@ +{ + cfg, + lib, +}: { + caret = { + "<Escape>" = "mode-leave"; + + H = "scroll left"; + T = "scroll down"; + N = "scroll up"; + S = "scroll right"; + h = "move-to-prev-char"; + t = "move-to-next-line"; + n = "move-to-prev-line"; + s = "move-to-next-char"; + + "$" = "move-to-end-of-line"; + "0" = "move-to-start-of-line"; + G = "move-to-end-of-document"; + gg = "move-to-start-of-document"; + + b = "move-to-prev-word"; + c = "mode-enter normal"; + e = "move-to-end-of-word"; + w = "move-to-next-word"; + + "{" = "move-to-end-of-prev-block"; + "}" = "move-to-end-of-next-block"; + "[" = "move-to-start-of-prev-block"; + "]" = "move-to-start-of-next-block"; + + y = "yank selection"; + Y = "yank selection -s"; + V = "selection-toggle --line"; + v = "selection-toggle"; + "<Ctrl-Space>" = "selection-drop"; + "<Return>" = "yank selection"; + "<Space>" = "selection-toggle"; + o = "selection-reverse"; + }; + + command = { + "<Alt-B>" = "rl-backward-word"; + "<Alt-Backspace>" = "rl-backward-kill-word"; + "<Alt-D>" = "rl-kill-word"; + "<Alt-F>" = "rl-forward-word"; + "<Ctrl-?>" = "rl-delete-char"; + "<Ctrl-A>" = "rl-beginning-of-line"; + "<Ctrl-B>" = "rl-backward-char"; + "<Ctrl-C>" = "completion-item-yank"; + "<Ctrl-D>" = "completion-item-del"; + "<Ctrl-E>" = "rl-end-of-line"; + "<Ctrl-F>" = "rl-forward-char"; + "<Ctrl-H>" = "rl-backward-delete-char"; + "<Ctrl-K>" = "rl-kill-line"; + "<Ctrl-N>" = "command-history-next"; + "<Ctrl-P>" = "command-history-prev"; + "<Ctrl-Return>" = "command-accept --rapid"; + "<Ctrl-Shift-C>" = "completion-item-yank --sel"; + "<Ctrl-Shift-Tab>" = "completion-item-focus prev-category"; + "<Ctrl-Shift-W>" = "rl-filename-rubout"; + "<Ctrl-Tab>" = "completion-item-focus next-category"; + "<Ctrl-U>" = "rl-unix-line-discard"; + "<Ctrl-W>" = "rl-rubout \" \""; + "<Ctrl-Y>" = "rl-yank"; + "<Down>" = "completion-item-focus --history next"; + "<Escape>" = "mode-leave"; + "<PgDown>" = "completion-item-focus next-page"; + "<PgUp>" = "completion-item-focus prev-page"; + "<Return>" = "command-accept"; + "<Shift-Delete>" = "completion-item-del"; + "<Shift-Tab>" = "completion-item-focus prev"; + "<Tab>" = "completion-item-focus next"; + "<Up>" = "completion-item-focus --history prev"; + }; + + hint = { + "<Ctrl-B>" = "hint all tab-bg"; + "<Ctrl-F>" = "hint links"; + "<Ctrl-R>" = "hint --rapid links tab-bg"; + "<Escape>" = "mode-leave"; + "<Return>" = "hint-follow"; + }; + + insert = { + "<Ctrl-E>" = "edit-text"; + "<Escape>" = "mode-leave"; + "<Shift-Escape>" = "fake-key <Escape>"; + "<Shift-Ins>" = "insert-text -- {primary}"; + "<Ctrl-k>" = "spawn --userscript qute-keepassxc --key ${lib.escapeShellArg cfg.key}"; + }; + + normal = { + # a + # b + # c + # d -> download management + # e -> [e]merge tab + # f -> `hint all` + # g -> tabs [g]oing + # h -> `back` + # i -> `mode-enter insert` + # j -> inputs + # k + # l -> `search-next` + # m -> in page movement + # n -> `scroll up` + # o + # p + # q -> `macro-record` + # r + # s -> `forward` + # t -> `scroll down` + # u -> `undo` + # v -> `mode-enter caret` + # w -> theme switching + # x -> hinting + # y -> yanking + # z + + # Theme switching + wd = "set --temp colors.webpage.darkmode.enabled true"; + wl = "set --temp colors.webpage.darkmode.enabled false"; + + # Tab [g]oing + "g$" = "tab-focus -1"; + g0 = "tab-focus 1"; + gh = "home"; + gH = "history"; + gs = "cmd-set-text --space :open"; + gP = "open -- {primary}"; + gp = "open -- {clipboard}"; + go = "cmd-set-text :open {url:pretty}"; + gt = "cmd-set-text --space :tab-select"; + # TODO(@bpeetz): Make this to a lf tab listing. <2025-05-31> + "\\f" = "cmd-set-text --space --relative :tab-focus"; + + eP = "open --tab -- {primary}"; + ep = "open --tab -- {clipboard}"; + ea = "open --tab"; + es = "cmd-set-text --space :open --tab"; + eo = "cmd-set-text :open --tab --related {url:pretty}"; + eh = "back --tab"; + en = "forward --tab"; + ec = "tab-clone"; + em = "tab-move"; + ed = "tab-close"; + eR = "reload --force"; + er = "reload"; + + # Download management + dm = "download"; + dc = "download-cancel"; + dp = "download-clear"; + do = "download-open"; + dr = "download-retry"; + + # In page hierarchy [m]ovement + mi = "navigate increment"; + md = "navigate increment"; + mp = "navigate prev"; + mn = "navigate next"; + mu = "navigate up"; + mh = "navigate strip"; + + # Page movement + H = "scroll left"; + t = "scroll down"; + n = "scroll up"; + S = "scroll right"; + h = "back"; + T = "tab-prev"; + N = "tab-next"; + s = "forward"; + G = "scroll-to-perc"; + gg = "scroll-to-perc 0"; + + l = "search-next"; + L = "search-prev"; + + "+" = "zoom-in"; + "-" = "zoom-out"; + "=" = "zoom"; + + "." = "cmd-repeat-last"; + "/" = "cmd-set-text /"; + "?" = "cmd-set-text ?"; + ":" = "cmd-set-text :"; + + # Hinting + xI = "hint images tab"; + xi = "hint images"; + xO = "hint links fill :open --tab --related {hint-url}"; + xo = "hint links fill :open {hint-url}"; + xY = "hint links yank-primary"; + xy = "hint links yank"; + xb = "hint all tab-bg"; + xf = "hint all tab-fg"; + xd = "hint links download"; + xh = "hint all hover"; + xr = "hint --rapid links tab-bg"; + xt = "hint inputs"; + f = "hint all"; + + # Inputs + jf = "hint inputs --first"; + jk = "spawn --userscript qute-keepassxc --key ${lib.escapeShellArg cfg.key}"; + + # Yanking + yD = "yank domain --sel"; + yM = "yank inline [{title}]({url:yank}) --sel"; + yP = "yank pretty-url --sel"; + yT = "yank title --sel"; + yY = "yank --sel"; + yd = "yank domain"; + ym = "yank inline [{title}]({url:yank})"; + yp = "yank pretty-url"; + yt = "yank title"; + yy = "yank"; + + "<Escape>" = "clear-keychain ;; search ;; fullscreen --leave ;; clear-messages"; + "<Shift-Space>" = "scroll-page 0 -1"; + "<Space>" = "scroll-page 0 1"; + "<Ctrl-Return>" = "selection-follow --tab"; + "<Return>" = "selection-follow"; + "<back>" = "back"; + "<forward>" = "forward"; + + i = "mode-enter insert"; + "'" = "mode-enter jump_mark"; + "`" = "mode-enter set_mark"; + v = "mode-enter caret"; + V = "mode-enter caret ;; selection-toggle --line"; + "<Ctrl-V>" = "mode-enter passthrough"; + + q = "macro-record"; + "@" = "macro-run"; + u = "undo"; + U = "undo --window"; + }; + + passthrough = { + "<Shift-Escape>" = "mode-leave"; + }; + + prompt = { + "<Alt-B>" = "rl-backward-word"; + "<Alt-Backspace>" = "rl-backward-kill-word"; + "<Alt-D>" = "rl-kill-word"; + "<Alt-E>" = "prompt-fileselect-external"; + "<Alt-F>" = "rl-forward-word"; + "<Alt-Shift-Y>" = "prompt-yank --sel"; + "<Alt-Y>" = "prompt-yank"; + "<Ctrl-?>" = "rl-delete-char"; + "<Ctrl-A>" = "rl-beginning-of-line"; + "<Ctrl-B>" = "rl-backward-char"; + "<Ctrl-E>" = "rl-end-of-line"; + "<Ctrl-F>" = "rl-forward-char"; + "<Ctrl-H>" = "rl-backward-delete-char"; + "<Ctrl-K>" = "rl-kill-line"; + "<Ctrl-P>" = "prompt-open-download --pdfjs"; + "<Ctrl-Shift-W>" = "rl-filename-rubout"; + "<Ctrl-U>" = "rl-unix-line-discard"; + "<Ctrl-W>" = "rl-rubout \" \""; + "<Ctrl-X>" = "prompt-open-download"; + "<Ctrl-Y>" = "rl-yank"; + "<Down>" = "prompt-item-focus next"; + "<Escape>" = "mode-leave"; + "<Return>" = "prompt-accept"; + "<Shift-Tab>" = "prompt-item-focus prev"; + "<Tab>" = "prompt-item-focus next"; + "<Up>" = "prompt-item-focus prev"; + }; + + register = { + "<Escape>" = "mode-leave"; + }; + + yesno = { + "<Alt-Shift-Y>" = "prompt-yank --sel"; + "<Alt-Y>" = "prompt-yank"; + "<Escape>" = "mode-leave"; + "<Return>" = "prompt-accept"; + N = "prompt-accept --save no"; + Y = "prompt-accept --save yes"; + n = "prompt-accept no"; + y = "prompt-accept yes"; + }; +} |