pistol: add module

This commit is contained in:
Matthew Toohey 2022-03-28 11:19:38 -04:00 committed by Robert Helgesson
parent 65bcfaccc5
commit 223b9deead
No known key found for this signature in database
GPG key ID: 36BDAA14C2797E89
8 changed files with 99 additions and 0 deletions

View file

@ -287,4 +287,10 @@
fingerprint = "D5D6 FD1F 0D9A 3284 FB9B C26D 3F98 EC7E C2B8 7ED1";
}];
};
mtoohey = {
name = "Matthew Toohey";
email = "contact@mtoohey.com";
github = "mtoohey31";
githubId = 36740602;
};
}

View file

@ -568,6 +568,13 @@ in
A new module is available: 'programs.micro'.
'';
}
{
time = "2022-06-24T22:40:27+00:00";
message = ''
A new module is available: 'programs.pistol'.
'';
}
];
};
}

View file

@ -132,6 +132,7 @@ let
./programs/pazi.nix
./programs/pet.nix
./programs/pidgin.nix
./programs/pistol.nix
./programs/piston-cli.nix
./programs/powerline-go.nix
./programs/pubs.nix

View file

@ -0,0 +1,49 @@
{ 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;
})
]);
}