111 lines
1.9 KiB
Nix
111 lines
1.9 KiB
Nix
# 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";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|
|
|