zathura: add module

Add the zathura document viewer as a program option with support for
managing the zathurarc configuration file.
This commit is contained in:
Adam Washington 2018-09-13 17:25:53 +01:00
parent 50de1a6885
commit ac1c89eccc
No known key found for this signature in database
GPG key ID: 0D2B93AB0C87BAF1
3 changed files with 60 additions and 0 deletions

View file

@ -779,6 +779,12 @@ in
A new module is available: 'programs.offlineimap'.
'';
}
{ time = "2018-09-13T16:21:00+00:00";
message = ''
A new module is available: 'programs.zathura'.
'';
}
];
};
}

View file

@ -56,6 +56,7 @@ let
./programs/termite.nix
./programs/texlive.nix
./programs/vim.nix
./programs/zathura.nix
./programs/zsh.nix
./services/blueman-applet.nix
./services/compton.nix

View file

@ -0,0 +1,53 @@
{ config, lib, pkgs, ...}:
with lib;
let
cfg = config.programs.zathura;
formatLine = n: v:
let
formatValue = v:
if isBool v then (if v then "true" else "false")
else toString v;
in
"set ${n}\t\"${formatValue v}\"";
in
{
meta.maintainers = [maintainers.rprospero];
options.programs.zathura = {
enable = mkEnableOption ''Zathura is a highly customizable and funtional
document viewer focused on keyboard interaction.'';
options = mkOption {
default = null;
type = types.nullOr types.attrs;
description = ''
Add :set command options to zathura and make them permanent.
Run <code>man zathura</code> to see the full list of options
'';
example = literalExample ''
{default-bg = "#000000"; default-fg = "#FFFFFF";}
'';
};
extraConfig = mkOption {
type = types.lines;
default = "";
description = ''
Additional commands for zathura the zathurarc file. If this and all
other zathura options are <code>null</code>, then this feature is
disabled and no <filename>zathurarc</filename> link is produced.
'';
};
};
config = mkIf cfg.enable {
home.packages = [ pkgs.zathura ];
xdg.configFile."zathura/zathurarc".text =
concatStringsSep "\n" ([]
++ (optional (cfg.extraConfig != "") cfg.extraConfig)
++ (optionals (cfg.options != null) (mapAttrsToList formatLine cfg.options))) + "\n";
};
}