{ email, pkgs, username, stateVersion, inputs, config, lib, ... }: { imports = [ inputs.noctalia.homeModules.default ]; nixpkgs = { config = { allowUnfree = true; }; }; home = { usrname = "${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; }; }; }