Complete system rework feat. Niri, Noctalia, Helix, Vicinae, Zellij, & Kanshi

This commit is contained in:
2026-02-12 13:13:45 -05:00
parent 35fd66ce80
commit 569e131ac6
78 changed files with 1442 additions and 1294 deletions

143
modules/home/terminal.nix Normal file
View File

@@ -0,0 +1,143 @@
{
config,
pkgs,
...
}:
{
programs = {
direnv = {
enable = true;
enableZshIntegration = true;
};
fastfetch = {
enable = true;
};
foot = {
enable = true;
server.enable = false;
settings = {
main = {
term = "xterm-256color";
include = "${config.xdg.configHome}/foot/themes/noctalia";
};
mouse = {
hide-when-typing = "yes";
};
};
};
fzf = {
enable = true;
enableZshIntegration = true;
};
starship = {
enable = true;
enableZshIntegration = true;
settings = {
add_newline = true;
format = pkgs.lib.concatStrings [
"[ $username([@](bold 3)$hostname) $directory( $git_branch $git_status)](5)"
"$line_break"
"[ $character](5)"
];
username = {
style_root = "white";
format = "[$user](5)";
disabled = false;
show_always = true;
};
hostname = {
format = "[$hostname](bold 7)";
disabled = false;
ssh_only = false;
};
character = {
success_symbol = "[](bold 5)";
error_symbol = "[](bold 5)";
vimcmd_symbol = "[](bold 5)";
};
directory = {
read_only = "";
format = "[ $path](blue)";
read_only_style = "bold white";
truncation_length = 5;
};
git_branch = {
symbol = "";
style = "bright-black";
format = "[$symbol $branch]($style)";
};
git_status = {
format = "([$all_status$ahead_behind](1))";
conflicted = "󱐋";
ahead = "\${count}";
behind = "\${count}";
diverged = "\${ahead_count}\${behind_count}";
up_to_date = "";
untracked = "?\${count}";
stashed = "$${count}";
modified = "!\${count}";
staged = "+\${count}";
renamed = "»\${count}";
deleted = "\${count}";
};
scan_timeout = 100;
};
};
zellij = {
enable = true;
enableZshIntegration = true;
settings = {
theme = "catppuccin-mocha";
show_startup_tips = false;
};
};
zoxide = {
enable = true;
enableZshIntegration = true;
};
zsh = {
enable = true;
enableCompletion = false;
antidote = {
enable = true;
plugins = [
"Aloxaf/fzf-tab"
];
};
autosuggestion.enable = true;
dotDir = "${config.xdg.configHome}/zsh";
history = {
append = true;
findNoDups = true;
ignoreSpace = true;
ignoreDups = true;
saveNoDups = true;
share = true;
};
historySubstringSearch = {
enable = true;
searchDownKey = "^p";
searchUpKey = "^n";
};
initContent = ''
# disable sort when completing `git checkout`
zstyle ':completion:*:git-checkout:*' sort false
# set descriptions format to enable group support
# NOTE: don't use escape sequences (like '%F{red}%d%f') here, fzf-tab will ignore them
zstyle ':completion:*:descriptions' format '[%d]'
# preview directory's content when completing cd or zoxide
zstyle ':fzf-tab:complete:cd:*' fzf-preview 'ls --color $realpath'
zstyle ':fzf-tab:complete:__zoxide_z:*' fzf-preview 'ls --color $realpath'
# custom fzf flags
# NOTE: fzf-tab does not follow FZF_DEFAULT_OPTS by default
zstyle ':fzf-tab:*' fzf-flags --color=fg:1,fg+:2 --bind=tab:accept
# switch group using `<` and `>`
zstyle ':fzf-tab:*' switch-group '<' '>'
'';
syntaxHighlighting.enable = true;
shellAliases = {
ff = "fastfetch";
};
};
};
}