diff options
Diffstat (limited to 'services/zsh.nix')
-rw-r--r-- | services/zsh.nix | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/services/zsh.nix b/services/zsh.nix new file mode 100644 index 00000000..b194ab6b --- /dev/null +++ b/services/zsh.nix @@ -0,0 +1,130 @@ +{ + config, + pkgs, + ... +}: let + path_config_cursor = builtins.writeFile ./custom_cursor; +in { + programs.zsh = { + enable = true; + zsh-autoenv = { + enable = true; + }; + syntaxHighlighting = { + enable = true; + }; + shellAliases = { + ls = "ls -a --color=auto"; + ll = ". ll"; + pip = "pip --require-virtualenv"; + hisea = "history info | grep"; + + mocp = "mocp -M \"$XDG_CONFIG_HOME\"/moc"; + yarn = "yarn --use-yarnrc \"$XDG_CONFIG_HOME\"/yarn/config"; + }; + setOptions = [ + "AUTO_CD" + "AUTO_PUSHD" + "CHASE_DOTS" + + "ALWAYS_TO_END" + + "EXTENDED_HISTORY" + "HIST_ALLOW_CLOBBER" + "HIST_VERIFY" + "HIST_FCNTL_LOCK" + + "DVORAK" + "CORRECT" + + "PROMPT_SUBST" + "TRANSIENT_RPROMPT" # maybe? + + "COMBINING_CHARS" + "VI" + ]; + + promptInit = + builtins.readFile ./zsh-prompt.sh; + loginShellInit = '' + eval $(ssh-agent -s) > /dev/null # start ssh agent + export ENHANCHED_NEOFETCH="$(pacman -Qn | wc -l) (pacman), $(pacman -Qm | wc -l) (aur), $(($(cargo install --list | wc -l ) / 2)) (cargo)" + ''; + interactiveShellInit = builtins.readFile ./zsh-init.sh; + histSize = 9999999; + histFile = "$XDG_DATA_HOME/zsh/history"; + autosuggentions = { + enable = true; + }; + }; + + environment = { + variables = { + XDG_DATA_HOME = "$HOME/.local/share"; + XDG_STATE_HOME = "$HOME/.local/state"; + XDG_CACHE_HOME = "$HOME/.cache"; + XDG_CONFIG_HOME = "$HOME/.config"; + XDG_BIN_HOME = "\${HOME}/.local/bin"; + + HISTSIZE = "9000000"; + TIMEFMT = "'$fg[green]%J$reset_color' time: $fg[blue]%*Es$reset_color, cpu: $fg[blue]%P$reset_color"; # no idea what this does or why it is needed + REPORTTIME = "10"; + + PATH = [ + "\${PATH}:/home/dt/repos/shell/scripts" + "/home/dt/.local/bin" + "/home/dt/.local/share/cargo/bin/" + ]; + EDITOR = "nvim"; + IVIEWER = "imv"; + READER = "zathura"; + VISUAL = "nvim"; + CODEEDITOR = "nvim"; + TERMINAL = "alacritty"; + BROWSER = "firefox"; + COLORTERM = "truecolor"; + PAGER = "less"; + WM = "river"; + AWMWALLPAPER = "/home/dt/media/pictures/tes/wallpapers-linux_cast/Dedicated_Colorschemes/nord/Abstract-Nord.png"; + + # FUNCNEST for more functions in functions + FUNCNEST = "2000"; + + WALLPAPERDIR = "$HOME/media/pictures/wallpapers/"; + LESS = "R"; + MANPAGER = "less -R --use-color -Dd+r -Du+b"; + LIBVIRT_DEFAULT_URI = "qemu:///system"; + BEMENU_SCALE = "1.5"; + BEMENU_BACKEND = "wayland"; + BEMENU_OPTS = "--fn 'Source Code Pro 10' -c -l 30 -B 1 -W 0.9 --hf #ffffff"; + + # Clean the home dir {{{ + _JAVA_OPTIONS = "-Djava.util.prefs.userRoot=$XDG_CONFIG_HOME/java -Djavafx.cachedir = \"$XDG_CACHE_HOME/openjfx\""; + GRADLE_USER_HOME = "\"$XDG_DATA_HOME\"/gradle"; + CARGO_HOME = "\"$XDG_DATA_HOME\"/cargo"; + GNUPGHOME = "\"$XDG_DATA_HOME\"/gnupg"; + GOPATH = "\"$XDG_DATA_HOME\"/go"; + GTK2_RC_FILES = "\"$XDG_CONFIG_HOME\"/gtk-2.0/gtkrc"; + LESSHISFILE = "\"$XDG_CACHE_HOME\"/less/history"; + LESSKEYIN = "\"$XDG_CONFIG_HOME\"/less/lesskey"; + RUSTUP_HOME = "\"$XDG_DATA_HOME\"/rustup"; + NPM_CONFIG_USERCONFIG = "\"$XDG_CONFIG_HOME\"/npm/npmrc"; + NUGET_PACKAGES = "\"$XDG_CACHE_HOME\"/NuGetPackages"; + PYTHONSTARTUP = "\"$XDG_CONFIG_HOME\"/python/pythonrc"; + XAUTHORITY = "\"$XDG_RUNTIME_DIR\"/Xauthority"; + COMPDUMPFILE = "\"$XDG_DATA_DIR\"/zsh/.zcompdump}"; + IPYTHONDIR = "\"$XDG_CONFIG_HOME\"/ipython"; + PARALLEL_HOME = "\"$XDG_CONFIG_HOME\"/parallel"; + STACK_XDG = "1"; + # }}} + + # Export Wayland env Vars {{{ + QT_QPA_PLATFORM = "wayland"; + QT_QPA_PLATFORMTHEME = "qt5ct"; # needs qt5ct + CLUTTER_BACKEND = "wayland"; + SDL_VIDEODRIVER = "wayland"; # might brake some things + MOZ_ENABLE_WAYLAND = "1"; + # }}} + }; + }; +} |