# Terminal applications and utilities { inputs, lib, config, pkgs, ... }: { home.packages = with pkgs; [ # Modern CLI tools ripgrep # Better grep fd # Better find sd # Better sed du-dust # Better du duf # Better df procs # Better ps bottom # Better top/htop # File managers # ranger # nnn # lf # Multiplexers # tmux # zellij ]; # Tmux configuration programs.tmux = { enable = true; terminal = "tmux-256color"; historyLimit = 10000; baseIndex = 1; keyMode = "vi"; mouse = true; plugins = with pkgs.tmuxPlugins; [ sensible yank vim-tmux-navigator ]; extraConfig = '' # Split panes using | and - bind | split-window -h bind - split-window -v unbind '"' unbind % # Reload config bind r source-file ~/.config/tmux/tmux.conf # Easy pane switching bind -n M-Left select-pane -L bind -n M-Right select-pane -R bind -n M-Up select-pane -U bind -n M-Down select-pane -D ''; }; # Neovim (optional, can be expanded) programs.neovim = { enable = true; defaultEditor = true; viAlias = true; vimAlias = true; extraConfig = '' set number set relativenumber set expandtab set tabstop=2 set shiftwidth=2 set smartindent set clipboard=unnamedplus ''; }; # Alacritty terminal emulator configuration programs.alacritty = { enable = true; settings = { window = { padding = { x = 10; y = 10; }; decorations = "full"; opacity = 0.95; }; font = { size = 13.0; normal = { family = "JetBrainsMono Nerd Font"; style = "Regular"; }; }; colors = { primary = { background = "0x1e1e1e"; foreground = "0xd4d4d4"; }; }; }; }; }