summaryrefslogtreecommitdiff
path: root/accounts/gkleen@skadhi/zsh/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'accounts/gkleen@skadhi/zsh/default.nix')
-rw-r--r--accounts/gkleen@skadhi/zsh/default.nix106
1 files changed, 106 insertions, 0 deletions
diff --git a/accounts/gkleen@skadhi/zsh/default.nix b/accounts/gkleen@skadhi/zsh/default.nix
new file mode 100644
index 00000000..ddc69f0d
--- /dev/null
+++ b/accounts/gkleen@skadhi/zsh/default.nix
@@ -0,0 +1,106 @@
1{ pkgs, lib, config, sysConfig, flakeInputs, ... }:
2let
3 zshrc = pkgs.resholve.mkDerivation {
4 pname = "zshrc";
5 version = "0.0.0";
6
7 src = ./zshrc;
8
9 dontUnpack = true;
10 dontConfigure = true;
11 dontBuild = true;
12
13 installPhase = ''
14 mkdir -p $out/share
15 install "$src" $out/share/zshrc
16 '';
17
18 solutions = {
19 default = {
20 scripts = [ "share/zshrc" ];
21 interpreter = "none";
22 inputs = with pkgs; [
23 coreutils
24 rpm
25 binutils
26 squashfsTools
27 unzip
28 config.programs.git.package
29 magickWrapped
30 curl
31 file
32 gnutar
33 cpio
34 magic-wormhole
35 config.programs.zsh.package
36 util-linux
37 findutils
38 qrencode
39 tty-clock
40 config.programs.jq.package
41 eza
42 less
43 sysConfig.systemd.package
44 sysConfig.programs.ssh.package
45 gnused
46 miniserve
47 p7zip
48 ];
49 execer = with pkgs; [
50 "cannot:${lib.getExe' rpm "rpm2cpio"}"
51 "cannot:${lib.getExe' squashfsTools "unsquashfs"}"
52 "cannot:${lib.getExe' unzip "unzip"}"
53 "cannot:${lib.getExe config.programs.git.package}"
54 "cannot:${lib.getExe cpio}"
55 "cannot:${lib.getExe' magic-wormhole "wormhole"}"
56 "cannot:${lib.getExe' fuse "fusermount"}"
57 "cannot:${lib.getExe less}"
58 "cannot:${lib.getExe' sysConfig.systemd.package "systemctl"}"
59 "cannot:${lib.getExe sysConfig.programs.ssh.package}"
60 "cannot:${lib.getExe' p7zip "7z"}"
61 ];
62 wrapper = with pkgs; [
63 "${lib.getExe' magickWrapped "magick"}:${lib.getExe' imagemagick "magick"}"
64 ];
65 fake = {
66 builtin = ["print"];
67 external = lib.mapAttrsToList (_: cfg: cfg.program) sysConfig.security.wrappers;
68 };
69 };
70 };
71 };
72 magickWrapped = pkgs.symlinkJoin {
73 inherit (pkgs.imagemagick) name;
74 paths = [ pkgs.imagemagick ];
75
76 buildInputs = with pkgs; [ makeWrapper ];
77 postBuild = ''
78 wrapProgram $out/bin/magick \
79 --prefix PATH : ${lib.makeBinPath (with pkgs; [ ghostscript ])}
80 '';
81 };
82in {
83 config = {
84 programs.zsh.initContent = ''
85 source ${zshrc}/share/zshrc
86 '';
87 programs.zsh.dirHashes = let
88 flakeHashes = lib.mapAttrs' (n: v: lib.nameValuePair (inputNames.${n} or n) (toString v)) flakeInputs;
89 inputNames = {
90 self = "nixos";
91 };
92 in flakeHashes // {
93 docs = "$HOME/documents";
94 dl = "$HOME/Downloads";
95 scrot = "$HOME/screenshots";
96 media = "$HOME/media";
97 };
98 programs.starship.settings = {
99 directory.substitutions = lib.mapAttrs' (name: value: let
100 value' = builtins.unsafeDiscardStringContext value;
101 value'' = if lib.hasPrefix "$HOME/" value' then "~" + lib.removePrefix "$HOME" value' else value';
102 in lib.nameValuePair value'' "~${name}"
103 ) config.programs.zsh.dirHashes;
104 };
105 };
106}