home: modularize user packages

This commit is contained in:
Alex Maldonado
2026-05-13 11:28:54 -04:00
parent 2cfe1045b1
commit eabe727775
12 changed files with 199 additions and 10 deletions
+9 -8
View File
@@ -5,16 +5,17 @@
home.sessionPath = [ "$HOME/.local/bin" ];
imports = [
./zsh.nix
./ghostty.nix
./helix.nix
./starship.nix
../modules/dropbox.nix
../modules/fonts.nix
../modules/ghostty.nix
../modules/globalprotect.nix
../modules/helix.nix
../modules/pixi.nix
../modules/ssh.nix
../modules/starship.nix
../modules/zsh.nix
./git.nix
./gh.nix
./ssh.nix
./dropbox.nix
./pixi.nix
./fonts.nix
];
home.packages = with pkgs; [
-18
View File
@@ -1,18 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.dropbox ];
systemd.user.services.dropbox = {
Unit = {
Description = "Dropbox service";
};
Install = {
WantedBy = [ "default.target" ];
};
Service = {
ExecStart = "${pkgs.dropbox}/bin/dropbox";
Restart = "on-failure";
};
};
}
-14
View File
@@ -1,14 +0,0 @@
{ pkgs, ... }: {
fonts.fontconfig.enable = true;
home.packages = with pkgs; [
roboto
inter
noto-fonts
noto-fonts-color-emoji
liberation_ttf
nerd-fonts.jetbrains-mono
nerd-fonts.fira-code
libertinus
];
}
-101
View File
@@ -1,101 +0,0 @@
{ pkgs, lib, ... }:
{
programs.ghostty = {
enable = true;
settings = {
# Font Settings
"font-family" = "Roboto Mono";
"font-size" = 10;
"font-synthetic-style" = "bold,italic,bold-italic";
# Theme & Colors (OneDark)
"background" = "#282c34";
"foreground" = "#ffffff";
"cursor-style" = "block";
"palette" = [
"0=#1d1f21" "1=#cc6666" "2=#b5bd68" "3=#f0c674" "4=#81a2be"
"5=#b294bb" "6=#8abeb7" "7=#c5c8c6" "8=#666666" "9=#d54e53"
"10=#b9ca4a" "11=#e7c547" "12=#7aa6da" "13=#c397d8" "14=#70c0b1"
"15=#eaeaea" "16=#000000" "17=#00005f" "18=#000087" "19=#0000af"
"20=#0000d7" "21=#0000ff" "22=#005f00" "23=#005f5f" "24=#005f87"
"25=#005faf" "26=#005fd7" "27=#005fff" "28=#008700" "29=#00875f"
"30=#008787" "31=#0087af" "32=#0087d7" "33=#0087ff" "34=#00af00"
"35=#00af5f" "36=#00af87" "37=#00afaf" "38=#00afd7" "39=#00afff"
"40=#00d700" "41=#00d75f" "42=#00d787" "43=#00d7af" "44=#00d7d7"
"45=#00d7ff" "46=#00ff00" "47=#00ff5f" "48=#00ff87" "49=#00ffaf"
"50=#00ffd7" "51=#00ffff" "52=#5f0000" "53=#5f005f" "54=#5f0087"
"55=#5f00af" "56=#5f00d7" "57=#5f00ff" "58=#5f5f00" "59=#5f5f5f"
"60=#5f5f87" "61=#5f5faf" "62=#5f5fd7" "63=#5f5fff" "64=#5f8700"
"65=#5f875f" "66=#5f8787" "67=#5f87af" "68=#5f87d7" "69=#5f87ff"
"70=#5faf00" "71=#5faf5f" "72=#5faf87" "73=#5fafaf" "74=#5fafd7"
"75=#5fafff" "76=#5fd700" "77=#5fd75f" "78=#5fd787" "79=#5fd7af"
"80=#5fd7d7" "81=#5fd7ff" "82=#5fff00" "83=#5fff5f" "84=#5fff87"
"85=#5fffaf" "86=#5fffd7" "87=#5fffff" "88=#870000" "89=#87005f"
"90=#870087" "91=#8700af" "92=#8700d7" "93=#8700ff" "94=#875f00"
"95=#875f5f" "96=#875f87" "97=#875faf" "98=#875fd7" "99=#875fff"
"100=#878700" "101=#87875f" "102=#878787" "103=#8787af" "104=#8787d7"
"105=#8787ff" "106=#87af00" "107=#87af5f" "108=#87af87" "109=#87afaf"
"110=#87afd7" "111=#87afff" "112=#87d700" "113=#87d75f" "114=#87d787"
"115=#87d7af" "116=#87d7d7" "117=#87d7ff" "118=#87ff00" "119=#87ff5f"
"120=#87ff87" "121=#87ffaf" "122=#87ffd7" "123=#87ffff" "124=#af0000"
"125=#af005f" "126=#af0087" "127=#af00af" "128=#af00d7" "129=#af00ff"
"130=#af5f00" "131=#af5f5f" "132=#af5f87" "133=#af5faf" "134=#af5fd7"
"135=#af5fff" "136=#af8700" "137=#af875f" "138=#af8787" "139=#af87af"
"140=#af87d7" "141=#af87ff" "142=#afaf00" "143=#afaf5f" "144=#afaf87"
"145=#afafaf" "146=#afafd7" "147=#afafff" "148=#afd700" "149=#afd75f"
"150=#afd787" "151=#afd7af" "152=#afd7d7" "153=#afd7ff" "154=#afff00"
"155=#afff5f" "156=#afff87" "157=#afffaf" "158=#afffd7" "159=#afffff"
"160=#d70000" "161=#d7005f" "162=#d70087" "163=#d700af" "164=#d700d7"
"165=#d700ff" "166=#d75f00" "167=#d75f5f" "168=#d75f87" "169=#d75faf"
"170=#d75fd7" "171=#d75fff" "172=#d78700" "173=#d7875f" "174=#d78787"
"175=#d787af" "176=#d787d7" "177=#d787ff" "178=#d7af00" "179=#d7af5f"
"180=#d7af87" "181=#d7afaf" "182=#d7afd7" "183=#d7afff" "184=#d7d700"
"185=#d7d75f" "186=#d7d787" "187=#d7d7af" "188=#d7d7d7" "189=#d7d7ff"
"190=#d7ff00" "191=#d7ff5f" "192=#d7ff87" "193=#d7ffaf" "194=#d7ffd7"
"195=#d7ffff" "196=#ff0000" "197=#ff005f" "198=#ff0087" "199=#ff00af"
"200=#ff00d7" "201=#ff00ff" "202=#ff5f00" "203=#ff5f5f" "204=#ff5f87"
"205=#ff5faf" "206=#ff5fd7" "207=#ff5fff" "208=#ff8700" "209=#ff875f"
"210=#ff8787" "211=#ff87af" "212=#ff87d7" "213=#ff87ff" "214=#ffaf00"
"215=#ffaf5f" "216=#ffaf87" "217=#ffafaf" "218=#ffafd7" "219=#ffafff"
"220=#ffd700" "221=#ffd75f" "222=#ffd787" "223=#ffd7af" "224=#ffd7d7"
"225=#ffd7ff" "226=#ffff00" "227=#ffff5f" "228=#ffff87" "229=#ffffaf"
"230=#ffffd7" "231=#ffffff" "232=#080808" "233=#121212" "234=#1c1c1c"
"235=#262626" "236=#303030" "237=#3a3a3a" "238=#444444" "239=#4e4e4e"
"240=#585858" "241=#626262" "242=#6c6c6c" "243=#767676" "244=#808080"
"245=#8a8a8a" "246=#949494" "247=#9e9e9e" "248=#a8a8a8" "249=#b2b2b2"
"250=#bcbcbc" "251=#c6c6c6" "252=#d0d0d0" "253=#dadada" "254=#e4e4e4"
"255=#eeeeee"
];
# Window Settings
"window-padding-x" = 2;
"window-padding-y" = 2;
"window-inherit-working-directory" = true;
"window-inherit-font-size" = true;
"copy-on-select" = true;
"confirm-close-surface" = true;
# Keybindings (Tabs & Splits)
"keybind" = [
"ctrl+t=new_tab"
"ctrl+shift+w=close_tab"
"ctrl+tab=next_tab"
"ctrl+shift+o=new_split:right"
"ctrl+shift+e=new_split:down"
"ctrl+comma=open_config"
"ctrl+shift+comma=reload_config"
"ctrl+equal=increase_font_size:1"
"ctrl+minus=decrease_font_size:1"
"ctrl+zero=reset_font_size"
];
}
// lib.optionalAttrs pkgs.stdenv.isDarwin {
# macOS Specifics
"macos-titlebar-style" = "transparent";
"macos-icon" = "official";
"keybind" = [ "super+d=unbind" ]; # Fix Linux conflict on Mac
};
};
}
-131
View File
@@ -1,131 +0,0 @@
{ pkgs, lib, ... }:
let
macKeys = {
"Cmd-b" = "page_up";
"Cmd-f" = "page_down";
"Cmd-u" = "page_cursor_half_up";
"Cmd-d" = "page_cursor_half_down";
"Cmd-j" = "insert_newline";
"Cmd-h" = "delete_char_backward";
"Cmd-w" = "delete_word_backward";
"Cmd-x" = "completion";
"Cmd-c" = "toggle_comments";
"Cmd-i" = "jump_forward";
"Cmd-o" = "jump_backward";
"Cmd-s" = "save_selection";
"Cmd-r" = "insert_register";
"Cmd-z" = "suspend";
"Cmd-a" = "increment";
};
in
{
programs.helix = {
enable = true;
defaultEditor = true;
settings = {
theme = "onedark";
editor = {
scrolloff = 10;
mouse = true;
middle-click-paste = true;
scroll-lines = 3;
line-number = "absolute";
cursorline = false;
cursorcolumn = false;
continue-comments = true;
auto-completion = true;
path-completion = true;
auto-format = true;
preview-completion-insert = true;
completion-trigger-len = 2;
auto-info = true;
true-color = true;
bufferline = "multiple";
rulers = [ 88 ];
color-modes = false;
text-width = 88;
default-line-ending = "lf";
insert-final-newline = true;
auto-pairs = false;
lsp = {
enable = true;
display-messages = true;
auto-signature-help = true;
display-inlay-hints = true;
display-signature-help-docs = true;
snippets = true;
goto-reference-include-declaration = true;
};
cursor-shape = {
normal = "block";
insert = "bar";
select = "block";
};
file-picker = {
hidden = false;
follow-symlinks = true;
ignore = true;
git-ignore = false;
};
auto-save = {
focus-lost = false;
after-delay.enable = false;
};
search = {
smart-case = true;
wrap-around = true;
};
whitespace.render = {
space = "none";
tab = "all";
nbsp = "none";
nnbsp = "none";
newline = "none";
};
whitespace.characters = {
tab = "→";
};
indent-guides = {
render = true;
character = "⎪";
skip-levels = 1;
};
soft-wrap = {
enable = true;
max-wrap = 25;
};
inline-diagnostics = {
cursor-line = "info";
};
};
keys.normal = {
"C-g" = [ ":new" ":insert-output lazygit" ":buffer-close!" ":redraw" ];
"d" = "delete_selection_noyank";
"A-d" = "delete_selection";
} // lib.optionalAttrs pkgs.stdenv.isDarwin macKeys;
keys.select = {
} // lib.optionalAttrs pkgs.stdenv.isDarwin macKeys;
};
extraPackages = with pkgs; [
marksman
nil
];
};
}
-14
View File
@@ -1,14 +0,0 @@
{ pkgs, ... }:
{
home.sessionPath = [ "$HOME/.pixi/bin" ];
home.activation.pixi = {
after = [ "writeBoundary" ];
before = [];
data = ''
export PATH="${pkgs.curl}/bin:${pkgs.coreutils}/bin:$PATH"
if ! command -v pixi &> /dev/null; then
curl -fsSL https://pixi.sh/install.sh | PIXI_NO_PATH_UPDATE=1 bash
fi
'';
};
}
-17
View File
@@ -1,17 +0,0 @@
{ ... }:
{
programs.ssh = {
enable = true;
enableDefaultConfig = false;
matchBlocks = {
"github.com" = {
hostname = "github.com";
user = "git";
identityFile = "~/.ssh/id_github";
};
};
};
}
-8
View File
@@ -1,8 +0,0 @@
{ lib, ... }:
{
programs.starship = {
enable = true;
enableZshIntegration = true;
};
}
-45
View File
@@ -1,45 +0,0 @@
{ ... }:
{
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
shellAliases = {
ll = "ls -alF";
la = "ls -A";
l = "ls -CF";
tp = "tree -I '__init__*' -I '__pycache__'";
};
sessionVariables = {
LANG = "en_US.UTF-8";
RUST_BACKTRACE = "1";
TYPST_FONT_PATHS = "$HOME/.fonts";
};
oh-my-zsh = {
enable = true;
theme = "";
plugins = [
"git"
"gh"
"git-auto-fetch"
"rust"
"ssh"
];
};
initContent = ''
# Conditional Editor logic
if [[ -n $SSH_CONNECTION ]]; then
export EDITOR='nano'
else
export EDITOR='hx'
export GIT_EDITOR='hx'
fi
'';
};
}