mirror of
https://github.com/nix-community/home-manager
synced 2024-11-23 21:23:38 +00:00
50 lines
1.2 KiB
Nix
50 lines
1.2 KiB
Nix
|
{ config, lib, pkgs, ... }:
|
||
|
|
||
|
with lib;
|
||
|
|
||
|
let
|
||
|
|
||
|
cfg = config.programs.pistol;
|
||
|
|
||
|
configFile =
|
||
|
concatStringsSep "\n" (mapAttrsToList (k: v: "${k} ${v}") cfg.config);
|
||
|
|
||
|
in {
|
||
|
meta.maintainers = [ hm.maintainers.mtoohey ];
|
||
|
|
||
|
options.programs.pistol = {
|
||
|
enable = mkEnableOption ''
|
||
|
Pistol, a general purpose file previewer designed for terminal file
|
||
|
managers'';
|
||
|
|
||
|
config = mkOption {
|
||
|
type = with types; attrsOf str;
|
||
|
default = { };
|
||
|
example = literalExpression ''
|
||
|
{
|
||
|
"text/*" = "bat --paging=never --color=always %pistol-filename%";
|
||
|
"inode/directory" = "ls -l --color %pistol-filename%";
|
||
|
}
|
||
|
'';
|
||
|
description = ''
|
||
|
Pistol configuration written to
|
||
|
<filename>$XDG_CONFIG_HOME/pistol/pistol.conf</filename>.
|
||
|
'';
|
||
|
};
|
||
|
|
||
|
};
|
||
|
|
||
|
config = mkIf cfg.enable (mkMerge [
|
||
|
{ home.packages = [ pkgs.pistol ]; }
|
||
|
|
||
|
(mkIf (cfg.config != { } && pkgs.stdenv.hostPlatform.isDarwin) {
|
||
|
home.file."Library/Application Support/pistol/pistol.conf".text =
|
||
|
configFile;
|
||
|
})
|
||
|
|
||
|
(mkIf (cfg.config != { } && !pkgs.stdenv.hostPlatform.isDarwin) {
|
||
|
xdg.configFile."pistol/pistol.conf".text = configFile;
|
||
|
})
|
||
|
]);
|
||
|
}
|