Compare commits

...

8 Commits

Author SHA1 Message Date
231027cd5b add tea (Gitea CLI) to home packages 2026-08-13 13:02:42 +02:00
19e2f737bc Fix stale documentation in CLAUDE.md
- Remove deleted fonts.nix from directory layout
- Update 'Adding a New Program' section to reflect ponytail cleanup: simple packages go in common.nix, per-file only for programs needing real configuration
- Update Rules section to document common.nix and per-file program patterns
2026-08-12 15:57:10 +02:00
6440a4dc70 Remove rofi ssh mode and tmux-navigator cmd block
The ssh rofi mode serves no purpose with no SSH hosts configured.
The cmd block in tmux-navigator only affects lazy loading, which is disabled.
2026-08-12 15:50:52 +02:00
c53829cbb3 Remove dead fonts.nix stub
home/fonts.nix only set fonts.fontconfig.enable = true, which home-manager
enables automatically when font packages are declared. Delete the file and
remove its imports from both host home.nix files.
2026-08-12 15:49:50 +02:00
c9424ffd09 Fix qtile config: consolidate terminal variable and remove unused imports 2026-08-12 15:46:19 +02:00
a569683ea0 Inline one-liner system modules into host defaults
- services.openssh.enable, virtualisation.docker.enable into hivebrain
- services.displayManager.sddm.enable, services.desktopManager.plasma6.enable into nikita-nixos
- Remove four no-longer-needed system modules
2026-08-12 15:43:43 +02:00
9a3f7807e1 Remove empty LazyVim config stubs
LazyVim loads its defaults without these files present, so the empty
stubs are unnecessary overhead.
2026-08-12 15:41:56 +02:00
1d7c4cebeb Collapse 26 trivial single-package programs into home/programs/common.nix
Consolidates alacritty, audacity, blender, blockbench, claude-code, fd,
filezilla, fzf, gcc, godot_4, imv, jdk21, jetbrains-toolbox, lazygit,
lua-language-server, mpv, nil, nixpkgs-fmt, nodejs, obsidian, pkg-config,
prismlauncher, vesktop, xclip, xwallpaper, yt-dlp into a single list.

rustup.nix kept separate due to its configuration (session vars, many deps).

Updates imports:
- hivebrain: all 26 + rustup now via common.nix + rustup.nix
- nikita-nixos: blender.nix → common.nix (gets all lightweight tools)
2026-08-12 15:37:35 +02:00
43 changed files with 55 additions and 191 deletions

View File

@@ -9,8 +9,7 @@ hosts/
nikita-nixos/ # nikita's machine
home/
packages-base.nix # universal packages every host gets (neovim, ripgrep, etc.)
programs/ # one file per installable program
fonts.nix # font config
programs/ # installable programs (common.nix for simple packages, per-file for configured programs)
rofi.nix # rofi config + packages
symlinks.nix # home-manager symlinks
tmux.nix # tmux config
@@ -21,26 +20,29 @@ system/ # NixOS system-level modules
## Adding a New Program
1. Create `home/programs/<name>.nix`:
**For simple packages (no config):** Add the package to `home/programs/common.nix`'s `home.packages` list.
**For programs that need configuration** (session variables, extra options, dependencies): Create `home/programs/<name>.nix`:
```nix
{ pkgs, ... }:
{
home.packages = [ pkgs.<package-name> ];
# configuration + packages
}
```
The filename is the program name; the package attribute can differ (e.g. `godot.nix` uses `pkgs.godot_4`).
2. Add the import to whichever hosts should have it in `hosts/<host>/home.nix`:
Then add the import to `hosts/<host>/home.nix`:
```nix
../../home/programs/<name>.nix
```
Example: `rustup.nix` needs config (session variables) so it gets its own file. Simple packages like `lazygit` go in `common.nix`.
## Rules
- `home/packages-base.nix` — shared baseline, imported by every host. Only add truly universal tools here (shell utilities, editors).
- `home/programs/` — one file per program. Hosts opt in by importing.
- `home/programs/common.nix` — simple packages that just need to be installed (no extra config).
- `home/programs/<name>.nix` — programs that need real configuration beyond just `home.packages`. Hosts opt in by importing.
- `home/<tool>.nix` (tmux, zsh, rofi, etc.) — for programs that need configuration beyond just installing a package. Same opt-in pattern via host imports.
- `system/` modules are NixOS system-level config (not home-manager). Add them to `hosts/<host>/default.nix`.

View File

@@ -1,2 +0,0 @@
-- Autocmds are automatically loaded on the VeryLazy event
-- Default autocmds: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua

View File

@@ -1,2 +0,0 @@
-- Options are automatically loaded before lazy.nvim startup
-- Default options: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua

View File

@@ -2,12 +2,5 @@ return {
{
"christoomey/vim-tmux-navigator",
lazy = false,
cmd = {
"TmuxNavigateLeft",
"TmuxNavigateDown",
"TmuxNavigateUp",
"TmuxNavigateRight",
"TmuxNavigatePrevious",
},
},
}

View File

@@ -1,15 +1,12 @@
from libqtile import bar, extension, hook, layout, qtile, widget
from libqtile.config import Click, Drag, Group, Key, KeyChord, Match, Screen
from libqtile import bar, hook, layout, qtile, widget
from libqtile.config import Click, Drag, Group, Key, Match, Screen
from libqtile.lazy import lazy
from libqtile.utils import guess_terminal
import os
import subprocess
mod = "mod4"
terminal = guess_terminal()
myTerm = "alacritty"
terminal = "alacritty"
keys = [
Key([mod], "h", lazy.layout.left(), desc="Move focus to left"),
@@ -221,14 +218,14 @@ def make_top_bar(primary=False):
widget.CPU(
foreground = colors[4],
padding = 8,
mouse_callbacks = {'Button1': lambda: qtile.cmd_spawn(myTerm + ' -e btop')},
mouse_callbacks = {'Button1': lambda: qtile.cmd_spawn(terminal + ' -e btop')},
format="CPU: {load_percent}%",
),
make_sep(),
widget.Memory(
foreground = colors[8],
padding = 8,
mouse_callbacks = {'Button1': lambda: qtile.cmd_spawn(myTerm + ' -e btop')},
mouse_callbacks = {'Button1': lambda: qtile.cmd_spawn(terminal + ' -e btop')},
format = 'Mem: {MemUsed:.0f}{mm}',
),
make_sep(),

View File

@@ -1,5 +0,0 @@
{ ... }:
{
fonts.fontconfig.enable = true;
}

View File

@@ -5,6 +5,7 @@
neovim
nerd-fonts.jetbrains-mono
ripgrep
tea
unzip
];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.alacritty ];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.audacity ];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.blender ];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.blockbench ];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.claude-code ];
}

31
home/programs/common.nix Normal file
View File

@@ -0,0 +1,31 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
alacritty
audacity
blender
blockbench
claude-code
fd
filezilla
fzf
gcc
godot_4
imv
jdk21
jetbrains-toolbox
lazygit
lua-language-server
mpv
nil
nixpkgs-fmt
nodejs
obsidian
pkg-config
prismlauncher
vesktop
xclip
xwallpaper
yt-dlp
];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.fd ];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.filezilla ];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.fzf ];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.gcc ];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.godot_4 ];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.imv ];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.jdk21 ];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.jetbrains-toolbox ];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.lazygit ];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.lua-language-server ];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.mpv ];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.nil ];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.nixpkgs-fmt ];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.nodejs ];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.obsidian ];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.pkg-config ];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.prismlauncher ];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.vesktop ];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.xclip ];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.xwallpaper ];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.yt-dlp ];
}

View File

@@ -10,7 +10,6 @@
"drun"
"run"
"window"
"ssh"
];
extraConfig = {
show-icons = true;

View File

@@ -10,10 +10,8 @@
../../system/locale.nix
../../system/fonts.nix
../../system/nix.nix
../../system/ssh.nix
../../system/programs.nix
../../system/packages.nix
../../system/docker.nix
# marvin-only
../../system/xserver.nix
@@ -26,5 +24,8 @@
networking.hostName = "hivebrain";
system.stateVersion = "26.05";
services.openssh.enable = true;
virtualisation.docker.enable = true;
programs.steam.enable = true;
}

View File

@@ -3,39 +3,13 @@
{
imports = [
../../home/zsh.nix
../../home/fonts.nix
../../home/rofi.nix
../../home/yazi.nix
../../home/symlinks.nix
../../home/tmux.nix
../../home/packages-base.nix
../../home/programs/alacritty.nix
../../home/programs/audacity.nix
../../home/programs/blender.nix
../../home/programs/blockbench.nix
../../home/programs/claude-code.nix
../../home/programs/fd.nix
../../home/programs/filezilla.nix
../../home/programs/fzf.nix
../../home/programs/gcc.nix
../../home/programs/godot.nix
../../home/programs/imv.nix
../../home/programs/jetbrains-toolbox.nix
../../home/programs/jdk.nix
../../home/programs/lazygit.nix
../../home/programs/lua-language-server.nix
../../home/programs/mpv.nix
../../home/programs/nil.nix
../../home/programs/nixpkgs-fmt.nix
../../home/programs/nodejs.nix
../../home/programs/obsidian.nix
../../home/programs/pkg-config.nix
../../home/programs/prismlauncher.nix
../../home/programs/common.nix
../../home/programs/rustup.nix
../../home/programs/vesktop.nix
../../home/programs/xclip.nix
../../home/programs/xwallpaper.nix
../../home/programs/yt-dlp.nix
];
home.username = "marvin";

View File

@@ -14,11 +14,12 @@
../../system/packages.nix
# nikita-only
../../system/plasma.nix
../../system/display-managers/sddm.nix
../../system/users/nikita.nix
];
networking.hostName = "nikita-nixos";
system.stateVersion = "26.05";
services.displayManager.sddm.enable = true;
services.desktopManager.plasma6.enable = true;
}

View File

@@ -3,11 +3,10 @@
{
imports = [
../../home/zsh.nix
../../home/fonts.nix
../../home/yazi.nix
../../home/symlinks.nix
../../home/packages-base.nix
../../home/programs/blender.nix
../../home/programs/common.nix
];
home.username = "nikita";

View File

@@ -1,5 +0,0 @@
{ ... }:
{
services.displayManager.sddm.enable = true;
}

View File

@@ -1,6 +0,0 @@
{ ... }:
{
virtualisation.docker.enable = true;
}

View File

@@ -1,5 +0,0 @@
{ ... }:
{
services.desktopManager.plasma6.enable = true;
}

View File

@@ -1,5 +0,0 @@
{ ... }:
{
services.openssh.enable = true;
}