diff --git a/modules/packages/server/default.nix b/modules/packages/server/default.nix index 1944c5c0..8c30d283 100644 --- a/modules/packages/server/default.nix +++ b/modules/packages/server/default.nix @@ -3,6 +3,7 @@ inputs: imports = inputs.localLib.mkModules [ ./ssh + ./zsh ]; config = let @@ -54,63 +55,6 @@ inputs: { config.programs = { - zsh = - { - enable = true; - initExtraBeforeCompInit = - '' - # p10k instant prompt - P10K_INSTANT_PROMPT="$XDG_CACHE_HOME/p10k-instant-prompt-''${(%):-%n}.zsh" - [[ ! -r "$P10K_INSTANT_PROMPT" ]] || source "$P10K_INSTANT_PROMPT" - HYPHEN_INSENSITIVE="true" - export PATH=~/bin:$PATH - function br - { - local cmd cmd_file code - cmd_file=$(mktemp) - if broot --outcmd "$cmd_file" "$@"; then - cmd=$(<"$cmd_file") - command rm -f "$cmd_file" - eval "$cmd" - else - code=$? - command rm -f "$cmd_file" - return "$code" - fi - } - alias todo="todo.sh" - ''; - plugins = - [ - { - file = "powerlevel10k.zsh-theme"; - name = "powerlevel10k"; - src = "${inputs.pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k"; - } - { - file = "p10k.zsh"; - name = "powerlevel10k-config"; - src = ./p10k-config; - } - { - name = "zsh-lsd"; - src = inputs.pkgs.fetchFromGitHub - { - owner = "z-shell"; - repo = "zsh-lsd"; - rev = "029a9cb0a9b39c9eb6c5b5100dd9182813332250"; - sha256 = "sha256-oWjWnhiimlGBMaZlZB+OM47jd9hporKlPNwCx6524Rk="; - }; - } - ]; - history = - { - path = "${home-inputs.config.xdg.dataHome}/zsh/zsh_history"; - extended = true; - save = 100000000; - size = 100000000; - }; - }; direnv = { enable = true; nix-direnv.enable = true; }; git = { @@ -163,19 +107,6 @@ inputs: { nix-index-database.comma.enable = true; nix-index.enable = true; - zsh = - { - enable = true; - syntaxHighlighting.enable = true; - autosuggestions.enable = true; - enableCompletion = true; - ohMyZsh = - { - enable = true; - plugins = [ "git" "colored-man-pages" "extract" "history-substring-search" "autojump" ]; - customPkgs = with inputs.pkgs; [ zsh-nix-shell ]; - }; - }; command-not-found.enable = false; gnupg.agent = { enable = true; enableSSHSupport = true; }; autojump.enable = true; diff --git a/modules/packages/server/zsh/default.nix b/modules/packages/server/zsh/default.nix new file mode 100644 index 00000000..a7d25ae3 --- /dev/null +++ b/modules/packages/server/zsh/default.nix @@ -0,0 +1,79 @@ +inputs: +{ + config = + let + inherit (inputs.lib) mkIf; + in mkIf (builtins.elem "server" inputs.config.nixos.packages._packageSets) + { + nixos.users.sharedModules = [(home-inputs: { config.programs.zsh = + { + enable = true; + initExtraBeforeCompInit = + '' + # p10k instant prompt + P10K_INSTANT_PROMPT="$XDG_CACHE_HOME/p10k-instant-prompt-''${(%):-%n}.zsh" + [[ ! -r "$P10K_INSTANT_PROMPT" ]] || source "$P10K_INSTANT_PROMPT" + HYPHEN_INSENSITIVE="true" + export PATH=~/bin:$PATH + function br + { + local cmd cmd_file code + cmd_file=$(mktemp) + if broot --outcmd "$cmd_file" "$@"; then + cmd=$(<"$cmd_file") + command rm -f "$cmd_file" + eval "$cmd" + else + code=$? + command rm -f "$cmd_file" + return "$code" + fi + } + alias todo="todo.sh" + ''; + plugins = + [ + { + file = "powerlevel10k.zsh-theme"; + name = "powerlevel10k"; + src = "${inputs.pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k"; + } + { + file = "p10k.zsh"; + name = "powerlevel10k-config"; + src = ./p10k-config; + } + { + name = "zsh-lsd"; + src = inputs.pkgs.fetchFromGitHub + { + owner = "z-shell"; + repo = "zsh-lsd"; + rev = "029a9cb0a9b39c9eb6c5b5100dd9182813332250"; + sha256 = "sha256-oWjWnhiimlGBMaZlZB+OM47jd9hporKlPNwCx6524Rk="; + }; + } + ]; + history = + { + path = "${home-inputs.config.xdg.dataHome}/zsh/zsh_history"; + extended = true; + save = 100000000; + size = 100000000; + }; + };})]; + programs.zsh = + { + enable = true; + syntaxHighlighting.enable = true; + autosuggestions.enable = true; + enableCompletion = true; + ohMyZsh = + { + enable = true; + plugins = [ "git" "colored-man-pages" "extract" "history-substring-search" "autojump" ]; + customPkgs = with inputs.pkgs; [ zsh-nix-shell ]; + }; + }; + }; +} diff --git a/modules/packages/server/p10k-config/p10k.zsh b/modules/packages/server/zsh/p10k-config/p10k.zsh similarity index 100% rename from modules/packages/server/p10k-config/p10k.zsh rename to modules/packages/server/zsh/p10k-config/p10k.zsh