195 lines
4.9 KiB
Nix
195 lines
4.9 KiB
Nix
{
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}: {
|
|
imports = [
|
|
./git.nix
|
|
./bottom.nix
|
|
];
|
|
xdg.configFile = let
|
|
variants = ["Latte" "Frappe" "Macchiato" "Mocha"];
|
|
mkVariant = variant: let
|
|
fname = "catppuccin${variant}.tmTheme";
|
|
in {
|
|
name = "bat/themes/${fname}";
|
|
value = {source = ./. + "/${fname}";};
|
|
};
|
|
in
|
|
builtins.listToAttrs
|
|
(lib.lists.forEach variants mkVariant);
|
|
programs = {
|
|
bash.enable = true;
|
|
bat = {
|
|
enable = true;
|
|
config.theme = "catppuccinMocha";
|
|
};
|
|
carapace.enable = true;
|
|
eza = {
|
|
enable = true;
|
|
enableAliases = true;
|
|
git = true;
|
|
icons = true;
|
|
extraOptions = ["--octal-permissions"];
|
|
};
|
|
readline = {
|
|
enable = true;
|
|
includeSystemConfig = true;
|
|
extraConfig = ''
|
|
set completion-ignore-case On
|
|
'';
|
|
};
|
|
direnv = {
|
|
enable = true;
|
|
nix-direnv.enable = true;
|
|
};
|
|
fzf = {
|
|
enable = true;
|
|
defaultCommand = "${pkgs.fd}/bin/fd --type f";
|
|
changeDirWidgetCommand = "${pkgs.fd}/bin/fd --type d";
|
|
fileWidgetCommand = "${pkgs.fd}/bin/fd --type f";
|
|
};
|
|
ssh = {
|
|
enable = true;
|
|
forwardAgent = true;
|
|
compression = true;
|
|
serverAliveInterval = 15;
|
|
serverAliveCountMax = 3;
|
|
controlMaster = "auto";
|
|
controlPersist = "10s";
|
|
extraConfig = ''
|
|
AddKeysToAgent=yes
|
|
SetEnv TERM=xterm-256color
|
|
'';
|
|
matchBlocks = {
|
|
"git*".user = "git";
|
|
"legion" = {
|
|
user = "pixelifytica";
|
|
hostname = "192.168.0.31";
|
|
};
|
|
"vanguard" = {
|
|
user = "pixelifytica";
|
|
hostname = "192.168.0.90";
|
|
};
|
|
"ionos" = {
|
|
user = "root";
|
|
hostname = "77.68.67.133";
|
|
};
|
|
"freia" = {
|
|
user = "elitherl";
|
|
hostname = "freia020.hpc.l";
|
|
forwardX11Trusted = true;
|
|
};
|
|
"heimdall" = {
|
|
user = "elitherl";
|
|
hostname = "heimdall003.jet.uk";
|
|
forwardX11Trusted = true;
|
|
};
|
|
};
|
|
};
|
|
starship = {
|
|
enable = true;
|
|
enableTransience = true;
|
|
settings = {
|
|
add_newline = false;
|
|
character = {
|
|
success_symbol = "[ ](bold green)";
|
|
error_symbol = "[ ](bold red)";
|
|
};
|
|
command_timeout = 2000;
|
|
container = {symbol = " ";};
|
|
directory = {
|
|
truncation_length = 2;
|
|
fish_style_pwd_dir_length = 1;
|
|
truncate_to_repo = false;
|
|
};
|
|
direnv = {disabled = false;};
|
|
git_branch = {
|
|
symbol = " ";
|
|
only_attached = true;
|
|
ignore_branches = ["master" "main"];
|
|
};
|
|
git_commit = {
|
|
format = "[ $hash | $tag]($style) ";
|
|
tag_symbol = " ";
|
|
tag_disabled = false;
|
|
};
|
|
git_metrics = {disabled = false;};
|
|
git_status = {
|
|
stashed = " ";
|
|
ahead = " ";
|
|
behind = " ";
|
|
up_to_date = "";
|
|
diverged = " ";
|
|
conflicted = " ";
|
|
deleted = " ";
|
|
renamed = " ";
|
|
modified = " ";
|
|
staged = " ";
|
|
untracked = " ";
|
|
typechanged = " ";
|
|
};
|
|
hostname = {
|
|
ssh_only = true;
|
|
ssh_symbol = " ";
|
|
};
|
|
jobs = {symbol = " ";};
|
|
line_break = {disabled = false;};
|
|
localip = {disabled = false;};
|
|
memory_usage = {disabled = false;};
|
|
os = {
|
|
disabled = false;
|
|
format = "on [$symbol]($style) ";
|
|
};
|
|
python = {python_binary = "python3";};
|
|
shell = {
|
|
disabled = false;
|
|
format = "using [$indicator ]($style)";
|
|
};
|
|
status = {
|
|
disabled = false;
|
|
map_symbol = true;
|
|
pipestatus = true;
|
|
symbol = " ";
|
|
success_symbol = "";
|
|
not_executable_symbol = " ";
|
|
not_found_symbol = " ";
|
|
sigint_symbol = " ";
|
|
signal_symbol = " ";
|
|
};
|
|
sudo = {disabled = false;};
|
|
};
|
|
};
|
|
zsh = {
|
|
enable = true;
|
|
enableCompletion = true;
|
|
enableAutosuggestions = true;
|
|
syntaxHighlighting.enable = true;
|
|
enableVteIntegration = true;
|
|
autocd = true;
|
|
historySubstringSearch.enable = true;
|
|
history = {
|
|
extended = true;
|
|
ignoreDups = true;
|
|
ignoreSpace = true;
|
|
};
|
|
shellAliases = {
|
|
gsa = "git-sync-all";
|
|
};
|
|
oh-my-zsh = {
|
|
enable = true;
|
|
plugins = ["colored-man-pages" "lol" "rand-quote"];
|
|
theme = "";
|
|
};
|
|
completionInit = ''
|
|
autoload -Uz +X compinit && compinit
|
|
|
|
## case insensitive path-completion
|
|
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'
|
|
zstyle ':completion:*' menu select
|
|
'';
|
|
initExtra = "source ${./transient.zsh}\n";
|
|
};
|
|
};
|
|
}
|