344 lines
8.2 KiB
Nix
344 lines
8.2 KiB
Nix
{
|
|
email,
|
|
pkgs,
|
|
username,
|
|
stateVersion,
|
|
inputs,
|
|
config,
|
|
lib,
|
|
...
|
|
}:
|
|
{
|
|
imports = [
|
|
inputs.noctalia.homeModules.default
|
|
];
|
|
nixpkgs = {
|
|
config = {
|
|
allowUnfree = true;
|
|
};
|
|
};
|
|
home = {
|
|
username = "${username}";
|
|
homeDirectory = "/home/${username}";
|
|
preferXdgDirectories = true;
|
|
stateVersion = stateVersion;
|
|
packages = with pkgs; [
|
|
bitwarden-cli
|
|
bitwarden-desktop
|
|
duf
|
|
dust
|
|
sd
|
|
seafile-client
|
|
stow
|
|
tealdeer
|
|
xh
|
|
];
|
|
};
|
|
editorconfig = {
|
|
enable = true;
|
|
settings = {
|
|
"*" = {
|
|
charset = "utf-8";
|
|
end_of_line = "lf";
|
|
trim_trailing_whitespace = true;
|
|
insert_final_newline = false;
|
|
max_line_width = 80;
|
|
indent_style = "space";
|
|
indent_size = 4;
|
|
};
|
|
};
|
|
};
|
|
programs = {
|
|
bat = {
|
|
enable = true;
|
|
extraPackages = with pkgs.bat-extras; [
|
|
batdiff
|
|
batman
|
|
batgrep
|
|
batwatch
|
|
];
|
|
};
|
|
delta = {
|
|
enable = true;
|
|
enableGitIntegration = true;
|
|
};
|
|
direnv = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
};
|
|
eza = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
colors = "auto";
|
|
extraOptions = [
|
|
"--group-directories-first"
|
|
"--header"
|
|
];
|
|
git = true;
|
|
icons = "auto";
|
|
};
|
|
fd = {
|
|
enable = true;
|
|
};
|
|
fuzzel = {
|
|
enable = true;
|
|
settings = {
|
|
terminal = "${pkgs.ghostty}/bin/ghostty";
|
|
layer = "overlay";
|
|
};
|
|
};
|
|
fzf = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
};
|
|
ghostty = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
installBatSyntax = true;
|
|
installVimSyntax = true;
|
|
settings = {
|
|
font-family = "JetBrainsMono Nerd Font";
|
|
font-size = 13;
|
|
theme = "sproutingdark";
|
|
macos-option-as-alt = true;
|
|
shell-integration-features = "no-cursor";
|
|
cursor-style = "block";
|
|
background-opacity = 0.75;
|
|
};
|
|
themes = {
|
|
sproutingdark = {
|
|
palette = [
|
|
"0=#1f2620"
|
|
"1=#e04b7c"
|
|
"2=#9dbf9e"
|
|
"3=#ccca7a"
|
|
"4=#5586db"
|
|
"5=#dc51de"
|
|
"6=#7ef3ef"
|
|
"7=#d8e5d8"
|
|
"8=#3f4c3f"
|
|
"9=#e8789d"
|
|
"10=#b1ccb1"
|
|
"11=#fffd98"
|
|
"12=#99b6e9"
|
|
"13=#ea97eb"
|
|
"14=#b2f8f5"
|
|
"15=#f5f9f5"
|
|
];
|
|
background = "1f2620";
|
|
foreground = "eaeaea";
|
|
cursor-color = "fffd98";
|
|
cursor-text = "3f4c3f";
|
|
cursor-opacity = 0.7;
|
|
cursor-style = "block";
|
|
selection-background = "3f4c3f";
|
|
selection-foreground = "ffffea";
|
|
background-opacity = 1;
|
|
window-padding-x = "2,2";
|
|
window-padding-y = "2,2";
|
|
window-padding-balance = true;
|
|
window-height = 25;
|
|
window-width = 80;
|
|
};
|
|
};
|
|
};
|
|
git = {
|
|
enable = true;
|
|
lfs = {
|
|
enable = true;
|
|
};
|
|
userName = "Matthew Stobbs";
|
|
userEmail = "${email}";
|
|
extraConfig = {
|
|
init.defaultBranch = "main";
|
|
};
|
|
delta = {
|
|
enable = true;
|
|
options = {
|
|
decorations = {
|
|
commit-decoration-style = "bold yellow box ul";
|
|
file-decoration-style = "none";
|
|
file-style = "bold yellow ul";
|
|
};
|
|
features = "decorations";
|
|
whitespace-error-style = "22 reverse";
|
|
};
|
|
};
|
|
};
|
|
go = {
|
|
enable = true;
|
|
env = {
|
|
GOPRIVATE = [ "git.sprouting.cloud" ];
|
|
};
|
|
};
|
|
gpg = {
|
|
enable = true;
|
|
};
|
|
home-manager = {
|
|
enable = true;
|
|
};
|
|
jq = {
|
|
enable = true;
|
|
};
|
|
lazygit = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
};
|
|
neovide = {
|
|
enable = true;
|
|
};
|
|
noctalia = {
|
|
enable = true;
|
|
settings = "${config.xdg.configHome}/dotfiles/niri/.config/niri/full.kdl";
|
|
};
|
|
pandoc = {
|
|
enable = true;
|
|
};
|
|
ripgrep = {
|
|
enable = true;
|
|
};
|
|
starship = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
settings = {
|
|
palette = "sproutingdark";
|
|
add_newline = true;
|
|
command_timeout = 2000;
|
|
format = lib.concatStrings [
|
|
"\$username"
|
|
"[](fg:yellow)\$git_status\$git_branch\$directory"
|
|
"[](fg:yellow bg:green)"
|
|
"\$fill"
|
|
"\$c"
|
|
"\$golang"
|
|
"\$nodejs"
|
|
"\$rust"
|
|
"\$fill"
|
|
"[](fg:silver bg:green)\$time[](fg:silver)"
|
|
"\$character"
|
|
];
|
|
character = {
|
|
success_symbol = "[ ](bold lime)";
|
|
error_symbol = "[ ](bold red)";
|
|
};
|
|
username = {
|
|
show_always = false;
|
|
style_user = "bg:fuchsia fg:black";
|
|
style_root = "bg:fuchsia fg:black";
|
|
format = "[](fg:fuchsia)[\$user ](\$style)[](fg:fuchsia)";
|
|
disabled = false;
|
|
};
|
|
fill = {
|
|
symbol = " ";
|
|
style = "bg:green";
|
|
};
|
|
directory = {
|
|
style = "bg:yellow fg:black";
|
|
format = "[ \$path ](\$style)";
|
|
truncation_length = 3;
|
|
truncation_symbol = "…/";
|
|
substitutions = {
|
|
"~" = "";
|
|
"Documents" = "";
|
|
"Downloads" = "";
|
|
"Music" = "";
|
|
"Pictures" = "";
|
|
};
|
|
};
|
|
time = {
|
|
disabled = false;
|
|
time_format = " %F %T";
|
|
style = "bg:silver fg:black";
|
|
format = "[ \$time ](\$style)";
|
|
};
|
|
docker_context = {
|
|
symbol = " ";
|
|
style = "bg:fuchsia fg:black";
|
|
format = "[ \$symbol \$context ](\$style)";
|
|
};
|
|
git_branch = {
|
|
symbol = "";
|
|
style = "bg:yellow fg:black";
|
|
format = "[ \$symbol \$branch ](\$style)";
|
|
};
|
|
git_status = {
|
|
style = "bg:yellow fg:black";
|
|
format = "[\$all_status\$ahead_behind ](\$style)";
|
|
};
|
|
c = {
|
|
symbol = " ";
|
|
style = "bg:aqua fg:black";
|
|
format = "[](fg:aqua bg:green)[\$symbol (\$version) ](\$style)[](fg:aqua bg:green)";
|
|
};
|
|
golang = {
|
|
symbol = " ";
|
|
style = "bg:aqua fg:black";
|
|
format = "[](fg:aqua bg:green)[\$symbol (\$version) ](\$style)[](fg:aqua bg:green)";
|
|
};
|
|
nodejs = {
|
|
symbol = " ";
|
|
style = "bg:aqua fg:black";
|
|
format = "[](fg:aqua bg:green)[\$symbol (\$version) ](\$style)[](fg:aqua bg:green)";
|
|
};
|
|
rust = {
|
|
symbol = " ";
|
|
style = "bg:aqua fg:black";
|
|
format = "[](fg:aqua bg:green)[\$symbol (\$version) ](\$style)[](fg:aqua bg:green)";
|
|
};
|
|
palettes = {
|
|
sproutingdark = {
|
|
black = "#1f2620";
|
|
grey = "#3f4c3f";
|
|
maroon = "#e04b7c";
|
|
red = "#e8789d";
|
|
green = "#9bdf9e";
|
|
lime = "#b1ccb1";
|
|
olive = "#ccca7a";
|
|
yellow = "#fffd98";
|
|
navy = "#5586db";
|
|
blue = "#99b6e9";
|
|
purple = "#dc51de";
|
|
fuchsia = "#ea97eb";
|
|
teal = "#7ef3ef";
|
|
aqua = "#b2f8f5";
|
|
silver = "#d8e5d8";
|
|
white = "#f5f9f5";
|
|
};
|
|
sproutinglight = {
|
|
black = "#3f4c3f";
|
|
grey = "#7e997e";
|
|
maroon = "#ad1849";
|
|
red = "#d81e5b";
|
|
green = "#7e997e";
|
|
lime = "#9dbf9e";
|
|
olive = "#99985b";
|
|
yellow = "#ccca7a";
|
|
navy = "#779ee2";
|
|
blue = "#446baf";
|
|
purple = "#843185";
|
|
fuchsia = "#b041b2";
|
|
teal = "#4c928f";
|
|
aqua = "#65c2bf";
|
|
silver = "#f5f9f5";
|
|
white = "#d8e5d8";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
tmux = {
|
|
enable = true;
|
|
};
|
|
uv = {
|
|
enable = true;
|
|
};
|
|
yazi = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
};
|
|
zoxide = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
};
|
|
};
|
|
}
|