{ config, pkgs, ... }: let dotDir = "${config.home.homeDirectory}/.local/src/config/"; mkSl = path: config.lib.file.mkOutOfStoreSymlink path; configs = { kitty = "kitty"; foot = "foot"; qtile = "qtile"; mako = "mako"; nvim = "nvim"; eww = "eww"; waybar = "waybar"; }; in { xdg.configFile = builtins.mapAttrs (name: subpath: { source = mkSl "${dotDir}/${subpath}"; recursive = true; }) configs; home = { username = "coast"; homeDirectory = "/home/coast"; stateVersion = "25.05"; packages = with pkgs; [ alsa-utils nix-search-cli neofetch dysk tree wl-clipboard appimage-run libnotify grim slurp yazi mate.caja htop nixpkgs-fmt swaybg wmenu mako nwg-look xorg.xkill mpv vesktop wlr-randr autotiling nodejs gcc_multi gnumake clang-tools ruby_3_4 pkg-config dmd dtools rustup python3 python313Packages.pip unzip zip go tauon gimp waybar ]; }; programs.git = { enable = true; userEmail = "coasteen@proton.me"; userName = "coast"; }; programs.zsh = { enable = true; history = { path = "/home/coast/.cache/zsh/history"; size = 100000000; save = 100000000; append = true; }; enableCompletion = true; shellAliases = { nf = "neofetch"; nrs = "sudo nixos-rebuild switch"; emoji = "cat ~/.local/src/local/share/emoji | grep"; ls = "ls --color=auto"; smi = "nvidia-smi"; battery = "sb-battery"; weather = "curl wttr.in/masjedsoleyman"; las = "ls"; c = "clear"; cear = "clear"; ".." = "cd .."; hotp = "htop"; main = "man"; mian = "man"; mna = "man"; delgen = "sudo nix-env --delete-generations old --profile /nix/var/nix/profiles/system"; alsamixer = "alsamixer -c 0 --no-color"; la = "ls --color=auto -la"; sidp = "sudo"; suod = "sudo"; sduo = "sudo"; sd = "sudo"; }; initContent = '' autoload -U compinit zstyle ':completion:*' menu select zmodload zsh/complist compinit comp_options+=(globdots) zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=12" autoload -U colors && colors && setopt prompt_subst source ~/.local/src/zsh.d/zsh-autosuggestions.zsh export PATH="/usr/bin:$PATH" export PATH="$HOME/.local/bin:$PATH" EDITOR=vim PS1="[%n in %m %~] " ''; }; }