diff --git a/modules/features/zsh/default.nix b/modules/features/zsh/default.nix index 3360706..080336c 100644 --- a/modules/features/zsh/default.nix +++ b/modules/features/zsh/default.nix @@ -33,71 +33,77 @@ zsh = let flakeLocation = builtins.getEnv "PWD"; in - assert flakeLocation != ""; - inputs.wrappers.wrappers.zsh.wrap { - inherit pkgs; - runtimePkgs = [pkgs.carapace pkgs.devenv pkgs.fzf]; - zshAliases = { - ls = "${lib.getExe pkgs.lsd} -l"; - v = lib.getExe self'.packages.nvim; - cat = lib.getExe pkgs.bat; - lg = lib.getExe pkgs.lazygit; - man = "man -P \"${lib.getExe pkgs.bat} -p\""; - nsh = "nix-shell -p"; - nrs = "( cd ${flakeLocation} && sudo nixos-rebuild switch --impure --flake . )"; - vinix = "nvim --cmd 'cd ${flakeLocation}'"; - }; - zshrc.content = '' - source ${./devenv.zsh} - - if (( ''${+terminfo[smkx]} )) && (( ''${+terminfo[rmkx]} )); then - function zle-line-init() { echoti smkx } - function zle-line-finish() { echoti rmkx } - zle -N zle-line-init - zle -N zle-line-finish - fi - - autoload -U compinit && compinit - export CARAPACE_BRIDGES='zsh,fish,bash,inshellisense' # optional - zstyle ':completion:*' format $'\e[2;37mCompleting %d\e[m' - source <(${lib.getExe pkgs.carapace} _carapace) - zstyle ':completion:*' matcher-list 'm:{[:lower:]}={[:upper:]}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*' - - autoload -U select-word-style - select-word-style bash - - autoload -U up-line-or-beginning-search down-line-or-beginning-search - zle -N up-line-or-beginning-search - zle -N down-line-or-beginning-search - bindkey "^[OA" up-line-or-beginning-search - bindkey "^[OB" down-line-or-beginning-search - - bindkey "^[[1;5C" forward-word - bindkey "^[[1;5D" backward-word - bindkey "^[[3;5~" kill-word - bindkey "^H" backward-kill-word - - source <(${lib.getExe pkgs.fzf} --zsh) - - setopt NO_CASE_GLOB - - ${lib.getExe pkgs.any-nix-shell} zsh --info-right | source /dev/stdin - - export EDITOR=nvim - - eval "$(${lib.getExe self'.packages.ohMyPosh} init zsh)" - - eval "$(${lib.getExe pkgs.devenv} hook zsh)" - - typeset -ag precmd_functions - if (( ! ''${precmd_functions[(I)__devenv_reload_apply]} )); then - precmd_functions+=(__devenv_reload_apply) - fi - if (( ! ''${precmd_functions[(I)__devenv_restore_path]} )); then - precmd_functions+=(__devenv_restore_path) - fi - ''; + lib.warnIf (flakeLocation == "") "Flake Location is undefined. Are you building in the right directory?" + inputs.wrappers.wrappers.zsh.wrap { + inherit pkgs; + runtimePkgs = [pkgs.carapace pkgs.devenv pkgs.fzf]; + zshAliases = { + ls = "${lib.getExe pkgs.lsd} -l"; + v = lib.getExe self'.packages.nvim; + cat = lib.getExe pkgs.bat; + lg = lib.getExe pkgs.lazygit; + man = "man -P \"${lib.getExe pkgs.bat} -p\""; + nsh = "nix-shell -p"; + nrs = + if flakeLocation != "" + then "( cd ${flakeLocation} && sudo nixos-rebuild switch --impure --flake . )" + else "echo 'Flake location not specified. Did you build with --impure?'"; + vinix = + if flakeLocation != "" + then "nvim --cmd 'cd ${flakeLocation}'" + else "echo 'Flake location not specified. Did you build with --impure?'"; }; + zshrc.content = '' + source ${./devenv.zsh} + + if (( ''${+terminfo[smkx]} )) && (( ''${+terminfo[rmkx]} )); then + function zle-line-init() { echoti smkx } + function zle-line-finish() { echoti rmkx } + zle -N zle-line-init + zle -N zle-line-finish + fi + + autoload -U compinit && compinit + export CARAPACE_BRIDGES='zsh,fish,bash,inshellisense' # optional + zstyle ':completion:*' format $'\e[2;37mCompleting %d\e[m' + source <(${lib.getExe pkgs.carapace} _carapace) + zstyle ':completion:*' matcher-list 'm:{[:lower:]}={[:upper:]}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*' + + autoload -U select-word-style + select-word-style bash + + autoload -U up-line-or-beginning-search down-line-or-beginning-search + zle -N up-line-or-beginning-search + zle -N down-line-or-beginning-search + bindkey "^[OA" up-line-or-beginning-search + bindkey "^[OB" down-line-or-beginning-search + + bindkey "^[[1;5C" forward-word + bindkey "^[[1;5D" backward-word + bindkey "^[[3;5~" kill-word + bindkey "^H" backward-kill-word + + source <(${lib.getExe pkgs.fzf} --zsh) + + setopt NO_CASE_GLOB + + ${lib.getExe pkgs.any-nix-shell} zsh --info-right | source /dev/stdin + + export EDITOR=nvim + + eval "$(${lib.getExe self'.packages.ohMyPosh} init zsh)" + + eval "$(${lib.getExe pkgs.devenv} hook zsh)" + + typeset -ag precmd_functions + if (( ! ''${precmd_functions[(I)__devenv_reload_apply]} )); then + precmd_functions+=(__devenv_reload_apply) + fi + if (( ! ''${precmd_functions[(I)__devenv_restore_path]} )); then + precmd_functions+=(__devenv_restore_path) + fi + ''; + }; ohMyPosh = inputs.wrappers.wrappers.oh-my-posh.wrap { inherit pkgs; configFile = ./config.toml;