{ config, pkgs, lib, ... }: let cfg = config.homeModules.terminal; in lib.mkIf cfg.enable { # ─── Terminal Emulator ──────────────────────────────────────────────── programs.alacritty = { enable = true; settings = { font = { normal = { family = "JetBrainsMono Nerd Font"; style = "Regular"; }; size = 12; }; colors.primary = { foreground = "#d8d8d8"; background = "#181818"; dim_foreground = "#828482"; }; # Optional: shell integration shell = { program = "${pkgs.zsh}/bin/zsh"; args = [ "-l" ]; }; window.opacity = 1; }; }; # ─── Zsh Shell ──────────────────────────────────────────────────────── programs.zsh = { enable = true; enableCompletion = true; autosuggestion = { enable = true; strategy = [ "history" ]; }; syntaxHighlighting = { enable = true; highlighters = [ "main" "brackets" "cursor" ]; patterns = { "rm -rf *" = "fg=white,bold,bg=red"; }; }; enableVteIntegration = true; autocd = true; history = { save = 10000; share = true; ignoreDups = true; ignoreAllDups = true; expireDuplicatesFirst = true; ignorePatterns = [ "rm *" "pkill *" ]; }; shellAliases = { ll = "ls -lh"; la = "ls -a"; ".." = "cd .."; update = "sudo nixos-rebuild switch"; gc = "sudo nix-collect-garbage -d"; edit = "sudo -e"; nixlog = "journalctl -xe -u nixos-rebuild"; }; sessionVariables = { ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE = "fg=8"; EDITOR = "nvim"; PAGER = "less"; }; oh-my-zsh = { enable = true; theme = "dst"; # Or "jonathan", "robbyrussell", etc. plugins = [ "git" "sudo" "z" "vi-mode" "alias-finder" "docker" "colored-man-pages" "history" "direnv" "node" #"zsh-autosuggestions" #"zsh-syntax-highlighting" "docker" "rust" ]; }; }; # ─── Modern System Monitors ─────────────────────────────────────────── programs.btop = { enable = true; settings = { color_theme = "tokyo-night"; truecolor = true; rounded_corners = true; }; }; programs.htop.enable = true; # ─── Extras ─────────────────────────────────────────────────────────── programs.direnv = { enable = true; nix-direnv.enable = true; }; programs.zoxide = { enable = true; # Better cd enableZshIntegration = true; }; programs.fzf = { enable = true; enableZshIntegration = true; }; programs.starship = { enable = true; enableZshIntegration = true; }; programs.eza = { enable = true; enableZshIntegration = true; }; home.packages = with pkgs; [ ripgrep fd bat git jq unzip gnupg neofetch lsd delta bottom ]; }