{ config, lib, pkgs, ... }: lib.my.makeSwitch { inherit config; default = true; optionName = "default zsh settings"; optionPath = [ "cli" "shell" "zsh" ]; config' = { my.persist.homeDirs = [ ".local/share/zoxide" ]; my.home = let stateHome = config.my.home.xdg.stateHome; zsh-syntax-highlighting = pkgs.fetchFromGitHub { owner = "zsh-users"; repo = "zsh-syntax-highlighting"; rev = "0.8.0"; hash = "sha256-iJdWopZwHpSyYl5/FQXEW7gl/SrKaYDEtTH9cGP7iPo="; }; fzf-tab = pkgs.fetchFromGitHub { owner = "Aloxaf"; repo = "fzf-tab"; rev = "v1.2.0"; hash = "sha256-q26XVS/LcyZPRqDNwKKA9exgBByE0muyuNb0Bbar2lY="; }; in { home.packages = with pkgs; [ fzf zoxide ]; programs.zsh = { enable = true; dotDir = ".config/zsh"; history = { path = "${stateHome}/zsh_history"; ignorePatterns = [ "la" ]; }; initContent = lib.mkAfter '' source ${fzf-tab}/fzf-tab.plugin.zsh eval "$(zoxide init zsh)" source ${zsh-syntax-highlighting}/zsh-syntax-highlighting.plugin.zsh source ${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh ''; oh-my-zsh = { enable = true; theme = "gentoo"; plugins = [ "git" "git-extras" "extract" "sudo" "dotenv" ]; }; shellAliases = { x = "extract"; ls = "lsd"; svim = "sudoedit"; nf = "neofetch"; tmux = "tmux -T RGB,focus,overline,mouse,clipboard,usstyle"; pastart = "pasuspender true"; }; }; }; }; }