zaneyos/config/home/zsh.nix
2024-02-09 03:51:04 +01:00

69 lines
2.1 KiB
Nix

{ config, pkgs, username, ... }:
let inherit (import ../../options.nix) flakeDir theShell; in
lib.mkIf (theShell == "zsh") {
programs.zsh = {
enable = true;
syntaxHighlighting.enable = true;
autosuggestions = {
enable = true;
async = true;
highlightStyle = "fg=cyan";
strategy = ["completion"];
};
ohMyZsh = {
enable = true;
plugins = ["history-substring-search"];
};
profileExtra = ''
#if [ -z "$DISPLAY" ] && [ "$XDG_VNTR" = 1 ]; then
# exec Hyprland
#fi
'';
initExtra = ''
zstyle ":completion:*" menu select
zstyle ":completion:*" matcher-list "" "m:{a-z0A-Z}={A-Za-z}" "r:|=*" "l:|=* r:|=*"
if type nproc &>/dev/null; then
export MAKEFLAGS="$MAKEFLAGS -j$(($(nproc)-1))"
fi
bindkey '^[[3~' delete-char # Key Del
bindkey '^[[5~' beginning-of-buffer-or-history # Key Page Up
bindkey '^[[6~' end-of-buffer-or-history # Key Page Down
bindkey '^[[1;3D' backward-word # Key Alt + Left
bindkey '^[[1;3C' forward-word # Key Alt + Right
bindkey '^[[H' beginning-of-line # Key Home
bindkey '^[[F' end-of-line # Key End
neofetch
if [ -f $HOME/.zshrc-personal ]; then
source $HOME/.zshrc-personal
fi
eval "$(starship init zsh)"
'';
initExtraFirst = ''
HISTFILE=~/.histfile
HISTSIZE=1000
SAVEHIST=1000
setopt autocd nomatch
unsetopt beep extendedglob notify
autoload -Uz compinit
compinit
'';
sessionVariables = {
};
shellAliases = {
sv="sudo vim";
flake-rebuild="sudo nixos-rebuild switch --flake ${flakeDir}";
flake-update="sudo nix flake update ${flakeDir}";
gcCleanup="nix-collect-garbage --delete-old && sudo nix-collect-garbage -d && sudo /run/current-system/bin/switch-to-configuration boot";
v="nvim";
ls="lsd";
ll="lsd -l";
la="lsd -a";
lal="lsd -al";
".."="cd ..";
};
};
users.users.${username}.shell = pkgs.zsh;
}