nixos/home/default.nix

287 lines
8.2 KiB
Nix
Raw Normal View History

{ config, lib, pkgs, ... }: {
stylix.targets = {
avizo.enable = true;
foot.enable = true;
fzf.enable = true;
rofi.enable = true;
swaylock.enable = true;
xresources.enable = true;
zathura.enable = true;
};
xdg.configFile = {
"style.css".text = with config.lib.stylix.colors.withHashtag; ''
@define-color base00 ${base00};
@define-color base01 ${base01};
@define-color base02 ${base02};
@define-color base03 ${base03};
@define-color base04 ${base04};
@define-color base05 ${base05};
@define-color base06 ${base06};
@define-color base07 ${base07};
@define-color base08 ${base08};
@define-color base09 ${base09};
@define-color base0A ${base0A};
@define-color base0B ${base0B};
@define-color base0C ${base0C};
@define-color base0D ${base0D};
@define-color base0E ${base0E};
@define-color base0F ${base0F};
'';
2023-12-18 08:15:18 +00:00
"bat/themes/Catppuccin-mocha.tmTheme".source = ./Catppuccin-mocha.tmTheme;
};
2023-12-18 08:15:18 +00:00
programs = rec {
bash.enable = true;
2023-12-18 08:15:18 +00:00
bat = {
enable = true;
config.theme = "Catppuccin-mocha";
};
bottom = {
enable = true;
settings.colors = {
table_header_color = "#f5e0dc";
all_cpu_color = "#f5e0dc";
avg_cpu_color = "#eba0ac";
cpu_core_colors =
[ "#f38ba8" "#fab387" "#f9e2af" "#a6e3a1" "#74c7ec" "#cba6f7" ];
ram_color = "#a6e3a1";
swap_color = "#fab387";
rx_color = "#a6e3a1";
tx_color = "#f38ba8";
widget_title_color = "#f2cdcd";
border_color = "#585b70";
highlighted_border_color = "#f5c2e7";
text_color = "#cdd6f4";
graph_color = "#a6adc8";
cursor_color = "#f5c2e7";
selected_text_color = "#11111b";
selected_bg_color = "#cba6f7";
high_battery_color = "#a6e3a1";
medium_battery_color = "#f9e2af";
low_battery_color = "#f38ba8";
gpu_core_colors =
[ "#74c7ec" "#cba6f7" "#f38ba8" "#fab387" "#f9e2af" "#a6e3a1" ];
arc_color = "#89dceb";
};
};
eza = {
enable = true;
git = true;
icons = true;
enableAliases = true;
extraOptions = [ "--octal-permissions" ];
};
readline = {
enable = true;
includeSystemConfig = true;
extraConfig = ''
set completion-ignore-case On
'';
};
direnv = {
enable = true;
nix-direnv.enable = true;
enableBashIntegration = true;
enableZshIntegration = true;
};
fzf = {
enable = true;
enableBashIntegration = true;
enableZshIntegration = true;
};
git = {
enable = true;
package = pkgs.gitFull;
userName = "Evie Litherland-Smith";
userEmail = lib.mkDefault "evie@xenia.me.uk";
delta = {
enable = true;
options = {
line-numbers = true;
hyprlinks = true;
navigate = true;
side-by-side = true;
2023-12-18 08:15:18 +00:00
syntax-theme = bat.config.theme;
};
};
extraConfig = {
2023-11-29 07:45:23 +00:00
github.user = "elitherl";
pull.rebase = false;
init.defaultBranch = "main";
merge.conflictstyle = "diff3";
diff.colorMoved = "default";
credential.helper = "${pkgs.gitFull}/bin/git-credential-libsecret";
};
};
ssh = {
enable = true;
forwardAgent = true;
addKeysToAgent = "yes";
compression = true;
serverAliveInterval = 15;
serverAliveCountMax = 3;
controlMaster = "auto";
controlPersist = "10s";
extraConfig = ''
SetEnv TERM=xterm-256color
'';
matchBlocks = {
"git*".user = "git";
"legion" = {
user = "xenia";
hostname = "192.168.1.230";
};
"ionos" = {
user = "root";
hostname = "77.68.67.133";
};
"freia" = {
user = "elitherl";
hostname = "freia020.hpc.l";
localForwards = [{
bind.port = 6702;
host = {
address = "127.0.0.1";
port = 6702;
};
}];
};
"heimdall" = {
user = "elitherl";
hostname = "heimdall003.jet.uk";
};
};
};
starship = {
enable = true;
enableBashIntegration = true;
enableZshIntegration = true;
enableTransience = true;
settings = {
command_timeout = 1000;
add_newline = true;
character = {
success_symbol = "[](bold green)";
error_symbol = "[](bold red)";
};
directory = {
truncation_length = 2;
fish_style_pwd_dir_length = 1;
read_only = " 󰉐";
truncate_to_repo = false;
};
line_break.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;
hostname = {
ssh_only = true;
ssh_symbol = "󰢹 ";
};
localip.disabled = false;
memory_usage = {
disabled = false;
symbol = "󰍛 ";
};
nix_shell.symbol = "󱄅 ";
os = {
disabled = false;
format = "on [$symbol $name ]($style)";
style = "bold blue";
symbols = {
Alpine = " ";
Android = " ";
Arch = " ";
CentOS = " ";
Debian = " ";
EndeavourOS = " ";
Fedora = " ";
FreeBSD = " ";
Gentoo = " ";
Illumos = " ";
Linux = " ";
Macos = " ";
Manjaro = " ";
Mint = "󰣭 ";
NixOS = " ";
OpenBSD = " ";
openSUSE = " ";
Pop = " ";
Raspbian = " ";
Redhat = " ";
RedHatEnterprise = " ";
Solus = " ";
SUSE = " ";
Ubuntu = " ";
Unknown = " ";
Windows = " ";
};
};
python = {
symbol = "󰌠 ";
python_binary = "python3";
};
rust = { symbol = "󱘗 "; };
shell = {
disabled = false;
format = "using [$indicator ]($style)";
};
sudo = {
disabled = false;
symbol = "󰪋 ";
};
};
};
zsh = {
enable = true;
enableAutosuggestions = true;
enableCompletion = true;
syntaxHighlighting.enable = true;
enableVteIntegration = true;
autocd = true;
historySubstringSearch.enable = true;
initExtra = ''
xdg-query-program () {
FILETYPE=$(xdg-mime query filetype $@)
DEFAULT=$(xdg-mime query default $FILETYPE)
echo "$FILETYPE -> $DEFAULT"
}
rsync-local-config () {
HOST=$1
2023-12-26 08:10:09 +00:00
for TARGET in bat git starship.toml; do
SOURCE="${config.xdg.configHome}/$TARGET"
TMP_TARGET=/tmp/rsync-local-config
TMP_SOURCE=$TMP_TARGET
NIX_SED="${pkgs.gnused}/bin/sed -i 's|/nix/.*/bin/||g'"
NIX_REPLACE="$NIX_SED $TMP_TARGET"
if [[ -e ${config.xdg.configHome}/$TARGET ]]; then
if [[ -d $SOURCE ]]; then
SOURCE=$SOURCE/
TMP_SOURCE=$TMP_SOURCE/
NIX_REPLACE="${pkgs.fd}/bin/fd -g '**' $TMP_TARGET -tfile -x $NIX_SED {};"
fi
${pkgs.rsync}/bin/rsync -avzL --exclude=".git*" $SOURCE $TMP_TARGET
${pkgs.coreutils}/bin/chmod u+rw -R $TMP_SOURCE
${pkgs.bash}/bin/sh -c "$NIX_REPLACE"
${pkgs.rsync}/bin/rsync -avzL --delete --exclude=".git*" $TMP_SOURCE $HOST:.config/$TARGET
${pkgs.coreutils}/bin/rm -rf $TMP_SOURCE
fi
done
}
'';
oh-my-zsh = {
enable = true;
plugins = [ "colored-man-pages" "lol" "rand-quote" ];
theme = "";
};
};
};
}