feat: multi-machine structure + gruvbox theme + kitty + zsh modules

This commit is contained in:
2026-03-03 21:36:20 +01:00
parent 3c8910ccc7
commit 9cc94a8385
9 changed files with 195 additions and 1 deletions
+22 -1
View File
@@ -20,10 +20,31 @@
in
{
homeConfigurations = {
"ayman@archThinkpad" = mkHome {
system = "x86_64-linux";
modules = [ ./home/base.nix ];
modules = [
./home/base.nix
./home/profiles/notebook.nix
];
};
"ayman@desktop" = mkHome {
system = "x86_64-linux";
modules = [
./home/base.nix
./home/profiles/desktop.nix
];
};
"ayman@homelab-01" = mkHome {
system = "x86_64-linux";
modules = [
./home/base.nix
./home/profiles/server.nix
];
};
};
};
}
+10
View File
@@ -7,9 +7,19 @@
programs.home-manager.enable = true;
imports = [
./modules/theme.nix
./modules/zsh.nix
./modules/kitty.nix
];
home.packages = with pkgs; [
ripgrep
fd
bat
eza
fzf
jq
bottom
];
}
+68
View File
@@ -0,0 +1,68 @@
{ config, pkgs, ... }:
let
c = config.theme.colors;
in
{
programs.kitty = {
enable = true;
font = {
name = "JetBrains Mono";
size = 12;
};
settings = {
# Colors
background = c.bg;
foreground = c.fg;
selection_background = c.bg2;
selection_foreground = c.fg;
cursor = c.fg;
cursor_text_color = c.bg;
url_color = c.blue_b;
color0 = c.bg1; color8 = c.bg2;
color1 = c.red; color9 = c.red_b;
color2 = c.green; color10 = c.green_b;
color3 = c.yellow; color11 = c.yellow_b;
color4 = c.blue; color12 = c.blue_b;
color5 = c.purple; color13 = c.purple_b;
color6 = c.aqua; color14 = c.aqua_b;
color7 = c.fg4; color15 = c.fg1;
# Window
window_padding_width = 12;
background_opacity = "1.0";
background_blur = 32;
hide_window_decorations = "yes";
# Cursor
cursor_shape = "block";
cursor_blink_interval = 1;
# Scrollback
scrollback_lines = 3000;
# Selection
copy_on_select = "yes";
strip_trailing_spaces = "smart";
# Tab bar
tab_bar_style = "powerline";
tab_bar_align = "left";
tab_bar_edge = "top";
# Shell integration
shell_integration = "enabled";
};
keybindings = {
"ctrl+shift+n" = "new_window";
"ctrl+t" = "new_tab";
"ctrl+plus" = "change_font_size all +1.0";
"ctrl+minus" = "change_font_size all -1.0";
"ctrl+0" = "change_font_size all 0";
};
};
}
+38
View File
@@ -0,0 +1,38 @@
{ lib, ... }:
{
options.theme.colors = lib.mkOption {
type = lib.types.attrsOf lib.types.str;
description = "Named color palette";
default = {
# Gruvbox Dark Medium
bg = "#282828";
bg0_h = "#1d2021";
bg0_s = "#32302f";
bg1 = "#3c3836";
bg2 = "#504945";
bg3 = "#665c54";
bg4 = "#7c6f64";
fg = "#ebdbb2";
fg1 = "#ebdbb2";
fg2 = "#d5c4a1";
fg3 = "#bdae93";
fg4 = "#a89984";
red = "#cc241d";
red_b = "#fb4934";
green = "#98971a";
green_b = "#b8bb26";
yellow = "#d79921";
yellow_b = "#fabd2f";
blue = "#458588";
blue_b = "#83a598";
purple = "#b16286";
purple_b = "#d3869b";
aqua = "#689d6a";
aqua_b = "#8ec07c";
orange = "#d65d0e";
orange_b = "#fe8019";
gray = "#928374";
};
};
}
+33
View File
@@ -0,0 +1,33 @@
{ config, pkgs, ... }:
let
c = config.theme.colors;
in
{
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
history = {
size = 50000;
save = 50000;
ignoreDups = true;
share = true;
};
# new
initContent = ''
PROMPT="%F{${c.green_b}}%n@%m%f %F{${c.yellow_b}}%~%f %F{${c.fg4}}»%f "
'';
shellAliases = {
ls = "eza --icons";
ll = "eza -la --icons";
cat = "bat";
grep = "rg";
};
};
}
+7
View File
@@ -0,0 +1,7 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
obs-studio
];
}
+8
View File
@@ -0,0 +1,8 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
powertop
acpi
];
}
+8
View File
@@ -0,0 +1,8 @@
{ pkgs, ... }:
{
# Minimal — no GUI packages
home.packages = with pkgs; [
neovim
];
}
Symlink
+1
View File
@@ -0,0 +1 @@
/nix/store/n49kz1y416s4a4qvivxskwr65pxyvh6y-home-manager-generation