mirror of
https://github.com/nix-community/home-manager
synced 2024-11-26 14:40:29 +00:00
parent
d06bcf4c97
commit
b7737f1732
6 changed files with 123 additions and 0 deletions
|
@ -1459,6 +1459,13 @@ in
|
||||||
is deployed on a NixOS host.
|
is deployed on a NixOS host.
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
time = "2020-04-08T11:51:15+00:00";
|
||||||
|
message = ''
|
||||||
|
A new module is available: 'programs.qutebrowser'
|
||||||
|
'';
|
||||||
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,6 +94,7 @@ let
|
||||||
(loadModule ./programs/password-store.nix { })
|
(loadModule ./programs/password-store.nix { })
|
||||||
(loadModule ./programs/pazi.nix { })
|
(loadModule ./programs/pazi.nix { })
|
||||||
(loadModule ./programs/pidgin.nix { })
|
(loadModule ./programs/pidgin.nix { })
|
||||||
|
(loadModule ./programs/qutebrowser.nix { })
|
||||||
(loadModule ./programs/readline.nix { })
|
(loadModule ./programs/readline.nix { })
|
||||||
(loadModule ./programs/rofi.nix { })
|
(loadModule ./programs/rofi.nix { })
|
||||||
(loadModule ./programs/rtorrent.nix { })
|
(loadModule ./programs/rtorrent.nix { })
|
||||||
|
|
67
modules/programs/qutebrowser.nix
Normal file
67
modules/programs/qutebrowser.nix
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
cfg = config.programs.qutebrowser;
|
||||||
|
|
||||||
|
formatLine = o: n: v:
|
||||||
|
let
|
||||||
|
formatValue = v:
|
||||||
|
if builtins.isNull v then
|
||||||
|
"None"
|
||||||
|
else if builtins.isBool v then
|
||||||
|
(if v then "True" else "False")
|
||||||
|
else if builtins.isString v then
|
||||||
|
''"${v}"''
|
||||||
|
else
|
||||||
|
builtins.toString v;
|
||||||
|
in if builtins.isAttrs v then
|
||||||
|
concatStringsSep "\n" (mapAttrsToList (formatLine "${o}${n}.") v)
|
||||||
|
else
|
||||||
|
"${o}${n} = ${formatValue v}";
|
||||||
|
|
||||||
|
in {
|
||||||
|
options.programs.qutebrowser = {
|
||||||
|
enable = mkEnableOption "qutebrowser";
|
||||||
|
|
||||||
|
settings = mkOption {
|
||||||
|
type = types.attrs;
|
||||||
|
default = { };
|
||||||
|
description = ''
|
||||||
|
Options to add to qutebrowser <filename>config.py</filename> file.
|
||||||
|
See <link xlink:href="https://qutebrowser.org/doc/help/settings.html"/>
|
||||||
|
for options.
|
||||||
|
'';
|
||||||
|
example = literalExample ''
|
||||||
|
{
|
||||||
|
colors = {
|
||||||
|
hints = {
|
||||||
|
bg = "#000000";
|
||||||
|
fg = "#ffffff";
|
||||||
|
};
|
||||||
|
tabs.bar.bg = "#000000";
|
||||||
|
};
|
||||||
|
tabs.tabs_are_windows = true;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
extraConfig = mkOption {
|
||||||
|
type = types.lines;
|
||||||
|
default = "";
|
||||||
|
description = ''
|
||||||
|
Extra lines added to qutebrowser <filename>config.py</filename> file.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = [ pkgs.qutebrowser ];
|
||||||
|
|
||||||
|
xdg.configFile."qutebrowser/config.py".text = concatStringsSep "\n" ([ ]
|
||||||
|
++ mapAttrsToList (formatLine "c.") cfg.settings
|
||||||
|
++ optional (cfg.extraConfig != "") cfg.extraConfig);
|
||||||
|
};
|
||||||
|
}
|
|
@ -36,6 +36,7 @@ import nmt {
|
||||||
./modules/programs/mbsync
|
./modules/programs/mbsync
|
||||||
./modules/programs/neomutt
|
./modules/programs/neomutt
|
||||||
./modules/programs/newsboat
|
./modules/programs/newsboat
|
||||||
|
./modules/programs/qutebrowser
|
||||||
./modules/programs/readline
|
./modules/programs/readline
|
||||||
./modules/programs/ssh
|
./modules/programs/ssh
|
||||||
./modules/programs/starship
|
./modules/programs/starship
|
||||||
|
|
1
tests/modules/programs/qutebrowser/default.nix
Normal file
1
tests/modules/programs/qutebrowser/default.nix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{ qutebrowser-settings = ./settings.nix; }
|
46
tests/modules/programs/qutebrowser/settings.nix
Normal file
46
tests/modules/programs/qutebrowser/settings.nix
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
{
|
||||||
|
config = {
|
||||||
|
programs.qutebrowser = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
colors = {
|
||||||
|
hints = {
|
||||||
|
bg = "#000000";
|
||||||
|
fg = "#ffffff";
|
||||||
|
};
|
||||||
|
tabs.bar.bg = "#000000";
|
||||||
|
};
|
||||||
|
tabs.tabs_are_windows = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
extraConfig = ''
|
||||||
|
# Extra qutebrowser configuration.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
(self: super: {
|
||||||
|
qutebrowser = pkgs.writeScriptBin "dummy-qutebrowser" "";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
nmt.script = ''
|
||||||
|
assertFileContent \
|
||||||
|
home-files/.config/qutebrowser/config.py \
|
||||||
|
${
|
||||||
|
pkgs.writeText "qutebrowser-expected-config.py" ''
|
||||||
|
c.colors.hints.bg = "#000000"
|
||||||
|
c.colors.hints.fg = "#ffffff"
|
||||||
|
c.colors.tabs.bar.bg = "#000000"
|
||||||
|
c.tabs.tabs_are_windows = True
|
||||||
|
# Extra qutebrowser configuration.
|
||||||
|
''
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue