default.nix
1 { 2 lib, 3 pkgs, 4 config, 5 ... 6 }: 7 { 8 programs.zsh = { 9 enable = true; 10 autocd = false; 11 enableCompletion = true; 12 dotDir = "${config.xdg.configHome}/zsh"; 13 14 history = { 15 size = 10000; 16 save = 10000; 17 share = true; 18 append = true; 19 extended = true; 20 ignoreDups = true; 21 ignoreAllDups = true; 22 expireDuplicatesFirst = true; 23 # path = "`\${config.programs.zsh.dotDir}/.zsh_history`"; # default 24 }; 25 26 autosuggestion = { 27 enable = true; 28 strategy = [ 29 "history" 30 "completion" 31 ]; 32 }; 33 34 syntaxHighlighting = { 35 enable = true; 36 highlighters = [ 37 "line" 38 "main" 39 "root" 40 "regexp" 41 "pattern" 42 "brackets" 43 ]; 44 }; 45 46 plugins = [ 47 { 48 name = "powerlevel10k"; 49 src = pkgs.zsh-powerlevel10k; 50 file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme"; 51 } 52 { 53 name = "powerlevel10k-config"; 54 src = lib.cleanSource ./.; 55 file = ".p10k.zsh"; 56 } 57 ]; 58 59 oh-my-zsh = { 60 enable = true; 61 plugins = [ 62 "uv" 63 "git" 64 "sudo" 65 "rust" 66 "emoji" 67 "docker" 68 "pulumi" 69 "kubectl" 70 "colorize" 71 "tailscale" 72 "docker-compose" 73 "colored-man-pages" 74 ] 75 ++ lib.optionals pkgs.stdenv.isDarwin [ 76 "brew" 77 "dash" 78 "macos" 79 ]; 80 }; 81 82 # envExtra = ''''; # ~/.zshenv 83 # loginExtra = ''''; # ~/.zlogin 84 # logoutExtra = ''''; # ~/.zlogout 85 # profileExtra = ''''; # ~/.zprofile 86 }; 87 }