summaryrefslogtreecommitdiff
path: root/user-profiles/zsh/default.nix
diff options
context:
space:
mode:
authorGregor Kleen <gkleen@yggdrasil.li>2025-05-14 10:50:27 +0200
committerGregor Kleen <gkleen@yggdrasil.li>2025-05-14 10:50:27 +0200
commit43c9825e49d25fbd2c19abcdeb8f73aee8be2a4c (patch)
treec1cc8a034395c9bb8188651f6835922b38887f32 /user-profiles/zsh/default.nix
parent03d49aa8ec6f51c8f51bfb628e614ac537cca8e0 (diff)
downloadnixos-43c9825e49d25fbd2c19abcdeb8f73aee8be2a4c.tar
nixos-43c9825e49d25fbd2c19abcdeb8f73aee8be2a4c.tar.gz
nixos-43c9825e49d25fbd2c19abcdeb8f73aee8be2a4c.tar.bz2
nixos-43c9825e49d25fbd2c19abcdeb8f73aee8be2a4c.tar.xz
nixos-43c9825e49d25fbd2c19abcdeb8f73aee8be2a4c.zip
...
Diffstat (limited to 'user-profiles/zsh/default.nix')
-rw-r--r--user-profiles/zsh/default.nix95
1 files changed, 63 insertions, 32 deletions
diff --git a/user-profiles/zsh/default.nix b/user-profiles/zsh/default.nix
index 428e2459..973ff775 100644
--- a/user-profiles/zsh/default.nix
+++ b/user-profiles/zsh/default.nix
@@ -1,38 +1,69 @@
1{ userName, pkgs, customUtils, lib, config, ... }: 1{ userName, pkgs, customUtils, lib, config, ... }:
2let 2{
3 dotDir = ".config/zsh"; 3 config = {
4 p10kZsh = "${dotDir}/.p10k.zsh"; 4 home-manager.users.${userName} = let sysConfig = config; in { config, ... }: {
5 cfg = config.home-manager.users.${userName}; 5 config = {
6in { 6 programs.zsh = {
7 home-manager.users.${userName} = { 7 dotDir = ".config/zsh";
8 programs.zsh = { 8 enable = true;
9 inherit dotDir; 9 autocd = true;
10 enable = true; 10 enableCompletion = true;
11 autocd = true; 11 enableVteIntegration = true;
12 enableCompletion = true; 12 history = {
13 append = true;
14 expireDuplicatesFirst = true;
15 extended = true;
16 findNoDups = true;
17 };
18 syntaxHighlighting.enable = true;
19 zsh-abbr = {
20 enable = true;
21 abbreviations = {
22 re = "systemctl restart";
23 ure = "systemctl --user restart";
24 };
25 globalAbbreviations = {
26 "L" = "| less";
27 "S" = "&> /dev/null";
28 "G" = "| grep";
29 "B" = "&> /dev/null &";
30 "BB" = "&> /dev/null &!";
31 };
32 };
13 33
14 plugins = [ 34 plugins = [
15 { name = "powerlevel10k"; 35 { name = "powerlevel10k";
16 file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme"; 36 file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme";
17 src = pkgs.zsh-powerlevel10k; 37 src = pkgs.zsh-powerlevel10k;
18 } 38 }
19 ]; 39 ];
20 initExtraFirst = '' 40 initContent = lib.mkMerge [
21 if [[ $TERM == "dumb" ]]; then 41 (lib.mkBefore ''
22 unsetopt zle 42 if [[ $TERM == "dumb" ]]; then
23 PS1='$ ' 43 unsetopt zle
24 return 44 PS1='$ '
25 fi 45 return
26 ''; 46 fi
27 initExtraBeforeCompInit = '' 47 '')
28 source "${cfg.home.homeDirectory}/${p10kZsh}" 48 (lib.mkOrder 550 ''
29 ''; 49 source "$HOME/${config.xdg.configFile."zsh/.p10k.zsh".target}"
30 initExtra = lib.mkAfter '' 50 '')
31 source ${./zshrc} 51 (lib.mkAfter ''
32 source "${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" 52 source ${./zshrc}
33 ''; 53 '')
54 ];
55 };
56
57 xdg.configFile."zsh/.p10k.zsh".source = ./p10k.zsh;
58 };
34 }; 59 };
35 60
36 home.file.${p10kZsh}.source = ./p10k.zsh; 61 programs.zsh.enable = true;
62 environment.pathsToLink = [ "/share/zsh" ];
63 environment.shellAliases = lib.mkOverride 90 {};
64
65 nixpkgs.externalConfig.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
66 "zsh-abbr"
67 ];
37 }; 68 };
38} 69}