home-manager/modules/programs/feh.nix

42 lines
940 B
Nix
Raw Normal View History

2017-09-04 14:35:23 +00:00
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.programs.feh;
disableBinding = func: key: func;
enableBinding = func: key: "${func} ${key}";
in
{
options.programs.feh = {
enable = mkEnableOption "feh - a fast and light image viewer";
keybindings = mkOption {
default = {};
type = types.attrs;
example = { zoom_in = "plus"; zoom_out = "minus"; };
description = ''
Set keybindings.
See <link xlink:href="https://man.finalrewind.org/1/feh/#x4b455953"/> for
default bindings and available commands.
'';
};
};
config = mkIf cfg.enable {
home.packages = [ pkgs.feh ];
xdg.configFile."feh/keys".text = ''
2017-09-04 14:35:23 +00:00
# Disable default keybindings
${concatStringsSep "\n" (mapAttrsToList disableBinding cfg.keybindings)}
# Enable new keybindings
${concatStringsSep "\n" (mapAttrsToList enableBinding cfg.keybindings)}
'';
};
}