diff options
| author | Arpit Chakladar <arpitchakladar@proton.me> | 2026-04-24 01:48:30 +0530 |
|---|---|---|
| committer | Arpit Chakladar <arpitchakladar@proton.me> | 2026-04-24 01:48:30 +0530 |
| commit | 3e232a2bc7f5c8ea33804be1ea071a91c5f98055 (patch) | |
| tree | f772b5d7d393cacf708d845acb75b55c12d3e625 /modules/programs/zsh | |
| parent | 606716e0a4b8cbeb9076fb88b6b92664a5a24081 (diff) | |
| download | home-manager-config-3e232a2bc7f5c8ea33804be1ea071a91c5f98055.tar.gz home-manager-config-3e232a2bc7f5c8ea33804be1ea071a91c5f98055.zip | |
replacing tools with programs to be more consistent with config options
Diffstat (limited to 'modules/programs/zsh')
| -rw-r--r-- | modules/programs/zsh/default.nix | 35 | ||||
| -rw-r--r-- | modules/programs/zsh/nix-aliases.sh | 27 |
2 files changed, 62 insertions, 0 deletions
diff --git a/modules/programs/zsh/default.nix b/modules/programs/zsh/default.nix new file mode 100644 index 0000000..482c201 --- /dev/null +++ b/modules/programs/zsh/default.nix @@ -0,0 +1,35 @@ +{ + config, + lib, + pkgs, + ... +}: + +# Zsh - Z shell, extended bash with additional features and plugins +{ + config = + let + nixCommandWrappers = builtins.readFile ./nix-aliases.sh; + in + lib.mkIf config.programs.zsh.enable { + programs.zsh = { + package = pkgs.zsh; + dotDir = "${config.xdg.configHome}/zsh"; + history.path = "${config.xdg.cacheHome}/zsh/history"; + enableCompletion = true; + initContent = '' + setopt PROMPT_SUBST + + autoload -U colors && colors + + bindkey "^[[3~" delete-char + bindkey "^?" backward-delete-char + ${nixCommandWrappers} + ''; + }; + + programs.bash.initExtra = lib.mkIf config.programs.bash.enable (lib.mkAfter nixCommandWrappers); + + home.sessionVariables.SHELL = "${lib.getExe config.programs.zsh.package}"; + }; +} diff --git a/modules/programs/zsh/nix-aliases.sh b/modules/programs/zsh/nix-aliases.sh new file mode 100644 index 0000000..0a2f453 --- /dev/null +++ b/modules/programs/zsh/nix-aliases.sh @@ -0,0 +1,27 @@ +nix-shell() { + for arg in "$@"; do + if [[ "$arg" == "--run" || "$arg" == "--command" ]]; then + command nix-shell "$@" + return + fi + done + + command nix-shell "$@" --run "$SHELL" +} + +nix() { + if [[ "$1" == "develop" ]]; then + local args=("${@:2}") + + for arg in "${args[@]}"; do + if [[ "$arg" == "-c" || "$arg" == "--command" ]]; then + command nix "$@" + return + fi + done + + command nix develop "${args[@]}" -c "$SHELL" + else + command nix "$@" + fi +} |
