147 lines
3.4 KiB
Nix
147 lines
3.4 KiB
Nix
{ 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
|
|
];
|
|
}
|