Init
This commit is contained in:
203
home/shell.nix
Normal file
203
home/shell.nix
Normal file
@@ -0,0 +1,203 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
eza # ls replacement
|
||||
fzf # FuzzyFinder
|
||||
tdf # terminal pdf viewer
|
||||
jq # json parser
|
||||
tree
|
||||
fastfetch # system stats
|
||||
tabiew # Table viewer
|
||||
glow # MD Viewer
|
||||
|
||||
llm # LLM in the Terminal
|
||||
|
||||
# Fun stuff
|
||||
lolcat
|
||||
cmatrix
|
||||
];
|
||||
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
themeFile = "Catppuccin-Mocha";
|
||||
|
||||
font = {
|
||||
name = "Fira Code Nerd Font";
|
||||
size = 12;
|
||||
};
|
||||
|
||||
settings = {
|
||||
confirm_os_window_close = 0;
|
||||
dynamic_background_opacity = true; # ctrl+shift+a>m/l
|
||||
enable_audio_bell = false;
|
||||
mouse_hide_wait = 3.0;
|
||||
window_padding_width = 10;
|
||||
|
||||
background_opacity = 0.8;
|
||||
background_blur = 5;
|
||||
|
||||
tab_bar_min_tabs = 1;
|
||||
tab_bar_edge = "bottom";
|
||||
tab_bar_style = "custom"; # Should be changed to custom
|
||||
tab_title_template =
|
||||
"{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{title}";
|
||||
|
||||
symbol_map = let
|
||||
mappings = [
|
||||
"U+23FB-U+23FE"
|
||||
"U+2B58"
|
||||
"U+E200-U+E2A9"
|
||||
"U+E0A0-U+E0A3"
|
||||
"U+E0B0-U+E0BF"
|
||||
"U+E0C0-U+E0C8"
|
||||
"U+E0CC-U+E0CF"
|
||||
"U+E0D0-U+E0D2"
|
||||
"U+E0D4"
|
||||
"U+E700-U+E7C5"
|
||||
"U+F000-U+F2E0"
|
||||
"U+2665"
|
||||
"U+26A1"
|
||||
"U+F400-U+F4A8"
|
||||
"U+F67C"
|
||||
"U+E000-U+E00A"
|
||||
"U+F300-U+F313"
|
||||
"U+E5FA-U+E62B"
|
||||
];
|
||||
in (builtins.concatStringsSep "," mappings) + " Symbols Nerd Font Mono";
|
||||
};
|
||||
};
|
||||
|
||||
programs.yazi = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
enableZshIntegration = true;
|
||||
enableFishIntegration = true;
|
||||
|
||||
settings = { ration = [ 1 3 4 ]; };
|
||||
};
|
||||
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
autosuggestion.enable = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
|
||||
shellAliases = {
|
||||
ls = "eza";
|
||||
la = "eza -la";
|
||||
f = "fzf";
|
||||
i = "kitty +kitten icat";
|
||||
"nix-switch" =
|
||||
"sudo darwin-rebuild switch --flake ~/.config/nix#cyper-mac";
|
||||
};
|
||||
|
||||
initContent = ''
|
||||
fastfetch
|
||||
ai() {
|
||||
llm -m groq/groq/compound "$@" | glow
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
|
||||
shellAliases = {
|
||||
ls = "eza";
|
||||
la = "eza -la";
|
||||
f = "fzf";
|
||||
i = "kitty +kitten icat";
|
||||
"nix-switch" =
|
||||
"sudo darwin-rebuild switch --flake ~/.config/nix#cyper-mac";
|
||||
};
|
||||
|
||||
interactiveShellInit = ''
|
||||
starship init fish | source
|
||||
fzf --fish | source
|
||||
function fish_greeting
|
||||
fastfetch
|
||||
end
|
||||
'';
|
||||
|
||||
functions.ai = {
|
||||
body = ''
|
||||
llm -m groq/groq/compound $argv | glow
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
settings = {
|
||||
add_newline = true;
|
||||
command_timeout = 500;
|
||||
|
||||
format = ''
|
||||
$username$hostname $directory $git_branch$git_status
|
||||
$character '';
|
||||
right_format = "$cmd_duration";
|
||||
|
||||
username = {
|
||||
style_user = "bold #cba6f7";
|
||||
style_root = "bold #f38ba8";
|
||||
format = "[┌](bold #a6e3a1)[$user]($style)";
|
||||
show_always = true;
|
||||
};
|
||||
|
||||
hostname = {
|
||||
style = "bold #74c7ec";
|
||||
format = "[@](bold #fab387)[$hostname]($style)";
|
||||
ssh_only = false;
|
||||
};
|
||||
|
||||
directory = {
|
||||
style = "bold #a6e3a1";
|
||||
truncation_length = 0;
|
||||
truncation_symbol = "";
|
||||
format = "[⤇ ](bold #f38ba8)[《$path 》]($style)";
|
||||
};
|
||||
|
||||
git_branch = {
|
||||
format = "[⟦$branch⟧]($style)";
|
||||
style = "bold #f9e2af";
|
||||
};
|
||||
|
||||
# Git status module settings
|
||||
git_status = {
|
||||
format =
|
||||
"[[(*$conflicted$untracked$modified$staged$renamed$deleted)](red) ($ahead_behind$stashed)]($style)";
|
||||
style = "bold #a6e3a1";
|
||||
conflicted = "";
|
||||
untracked = "";
|
||||
modified = "";
|
||||
staged = "";
|
||||
renamed = "";
|
||||
deleted = "";
|
||||
};
|
||||
|
||||
# Command duration module
|
||||
cmd_duration = {
|
||||
format = "[$duration]($style)";
|
||||
style = "bold #cdd6f4";
|
||||
min_time = 5000; # Only show if command takes longer than 5 seconds
|
||||
};
|
||||
|
||||
# Character module (prompt symbol)
|
||||
character = {
|
||||
success_symbol = "[└──────⇴ ](bold #a6e3a1)";
|
||||
error_symbol = "[└──────⇴ ](bold #f38ba8)";
|
||||
};
|
||||
|
||||
nix_shell = {
|
||||
format = "[$symbol$state( ($name))]($style)";
|
||||
symbol = "U+02744";
|
||||
style = "bold #89dceb";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
home.file = {
|
||||
".config/fastfetch/config.jsonc".source = ./fastfetch.jsonc;
|
||||
".config/tabiew/theme.toml".source = ./tabiew.toml;
|
||||
".config/kitty/tab_bar.py".source = ./tab_bar.py;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user