1
0
Fork 0
mirror of https://github.com/nix-community/home-manager.git synced 2025-11-23 02:39:40 +01:00
home-manager/tests/modules/programs/qutebrowser/keybindings.nix
Austin Horstman cba2f9ce95 treewide: reformat nixfmt-rfc-style
Reformat repository using new nixfmt-rfc-style.
2025-04-08 08:50:05 -07:00

46 lines
1.4 KiB
Nix

{ lib, pkgs, ... }:
{
programs.qutebrowser = {
enable = true;
enableDefaultBindings = false;
keyBindings = {
normal = {
":" = null;
"<Ctrl-v>" = "spawn mpv {url}";
",l" = ''config-cycle spellcheck.languages ["en-GB"] ["en-US"]'';
"<F1>" = lib.mkMerge [
"config-cycle tabs.show never always"
"config-cycle statusbar.show in-mode always"
"config-cycle scrolling.bar never always"
];
};
prompt = {
"<Ctrl-y>" = "prompt-yes";
};
};
};
nmt.script =
let
qutebrowserConfig =
if pkgs.stdenv.hostPlatform.isDarwin then
".qutebrowser/config.py"
else
".config/qutebrowser/config.py";
in
''
assertFileContent \
home-files/${qutebrowserConfig} \
${builtins.toFile "qutebrowser-expected-config.py" ''
config.load_autoconfig(False)
c.bindings.default = {}
config.bind(",l", "config-cycle spellcheck.languages [\"en-GB\"] [\"en-US\"]", mode="normal")
config.unbind(":", mode="normal")
config.bind("<Ctrl-v>", "spawn mpv {url}", mode="normal")
config.bind("<F1>", "config-cycle tabs.show never always ;; config-cycle statusbar.show in-mode always ;; config-cycle scrolling.bar never always", mode="normal")
config.bind("<Ctrl-y>", "prompt-yes", mode="prompt")''}
'';
}