noctalia owns app theming (stylix -> matugen), app by app #101

Merged
lament merged 6 commits from noctalia-theming into main 2026-07-20 22:59:52 -05:00
Owner
  • stylix dropped entirely - migrated to the old config repo, so the input + profiles/stylix.nix come out and the base16/tinted-*/nur/gnome-shell follow-deps drop from the lock

    • noctalia's matugen owns colors on ishtar now; the plain defaults stylix used to set are ported as-is so nothing shifts visually
    • fonts -> static/ishtar/theming.nix (fonts.packages + fontconfig.defaultFonts, system scope): JetBrains Mono / Fira Sans / Crimson Pro
    • cursor -> HM pointerCursor in lament's desktop profile (numix, per-user/wayland concern); opacity -> kitty rice.conf + the niri backdrop rule below
  • lament's home-manager split to standalone on ishtar - homeConfigurations."lament@ishtar", applied with just home (home-manager switch), decoupled from nixos-rebuild

    • the whole point: daily-driving nvim means frequent editor-config churn, and a user tweak shouldn't cost a system eval + sudo + bootloader. just home re-applies in seconds
    • users/lament.nix split into the NixOS account (stays integrated) + reusable flake.homeModules.lamentHome/lamentDesktop that both paths consume
    • new modules.lament.standalone gates the integrated home-manager.users.lament off; servers keep integrated HM unchanged (fleet deploy stays one-step), only ishtar sets it
    • persistence is free - HM gcroots + state ride the existing persistent @nix/@home subvols, no new impermanence entries
    • home.stateVersion hardcoded "26.05" in the standalone path (no config.system there); integrated path still derives it from the system
  • nvf moved into ishtar's HM scope, shared config across both

    • settings.vim body extracted to flake.myLib.nvfModule - programs.nvf.settings is the same option in nvf's NixOS and HM modules, so one source feeds both
    • fleet-wide NixOS nvf (the SSH editor everywhere) consumes it unchanged; ishtar disables it (programs.nvf.enable = mkForce false) and runs nvf via standalone HM, so nvim tweaks are a just home away
    • behaviourally identical day one, grows independently via HM merge later
  • niri + kitty configs land in-repo but stay mutable via mkOutOfStoreSymlink - ~/.config points at the work-tree, so edits hot-reload with no rebuild while jj tracks them and borg backs them up

    • dotfiles/niri/config.kdl: the raw phase-0 config codified (binds, dual-head layout, noctalia spawn), plus numlock-at-startup, a swayidle DPMS timer (monitors off after 5 min idle), and a draw-border-with-background false rule for kitty
      • prefer-no-csd paints a solid backdrop behind decoration-less windows, which showed THROUGH kitty's translucency as solid - the rule kills the fill so the wallpaper shows
    • dotfiles/kitty/rice.conf: the visual config (opacity, decorations, cursor trail); package/terminfo/zsh-integration stay typed in homeModules/apps/kitty.nix
  • numix-cursor-theme nixpkgs pin extracted from nixconf.nix into flake.overlays.pinned, shared by the system overlays and the standalone pkgs - one pin, no cursor rebuild drift between the two

  • discord wrapped: --enable-features=WebRTCPipeWireCapturer (Go Live / screen-share over the Wayland portal - it's native Wayland already) --no-sandbox

  • left for later:

    • first switch on ishtar is ordered: nixos-rebuild switch (drops integrated lament HM, disables NixOS nvf) then just home (brings up standalone) - otherwise a window with no user env
    • codify the raw niri/kitty dotfiles into typed programs.niri.settings later only if wanted - mutable-symlink is deliberate for now
- `stylix` dropped entirely - migrated to the old config repo, so the input + `profiles/stylix.nix` come out and the `base16`/`tinted-*`/`nur`/`gnome-shell` follow-deps drop from the lock - noctalia's matugen owns colors on `ishtar` now; the plain defaults stylix used to set are ported as-is so nothing shifts visually - fonts -> `static/ishtar/theming.nix` (`fonts.packages` + `fontconfig.defaultFonts`, system scope): JetBrains Mono / Fira Sans / Crimson Pro - cursor -> HM `pointerCursor` in `lament`'s desktop profile (numix, per-user/wayland concern); opacity -> kitty `rice.conf` + the niri backdrop rule below - `lament`'s home-manager split to **standalone** on `ishtar` - `homeConfigurations."lament@ishtar"`, applied with `just home` (`home-manager switch`), decoupled from `nixos-rebuild` - the whole point: daily-driving nvim means frequent editor-config churn, and a user tweak shouldn't cost a system eval + sudo + bootloader. `just home` re-applies in seconds - `users/lament.nix` split into the NixOS account (stays integrated) + reusable `flake.homeModules.lamentHome`/`lamentDesktop` that both paths consume - new `modules.lament.standalone` gates the integrated `home-manager.users.lament` off; **servers keep integrated HM unchanged** (fleet deploy stays one-step), only `ishtar` sets it - persistence is free - HM gcroots + state ride the existing persistent `@nix`/`@home` subvols, no new impermanence entries - `home.stateVersion` hardcoded `"26.05"` in the standalone path (no `config.system` there); integrated path still derives it from the system - `nvf` moved into `ishtar`'s HM scope, shared config across both - `settings.vim` body extracted to `flake.myLib.nvfModule` - `programs.nvf.settings` is the same option in nvf's NixOS and HM modules, so one source feeds both - fleet-wide NixOS `nvf` (the SSH editor everywhere) consumes it unchanged; `ishtar` disables it (`programs.nvf.enable = mkForce false`) and runs nvf via standalone HM, so nvim tweaks are a `just home` away - behaviourally identical day one, grows independently via HM merge later - niri + kitty configs land in-repo but stay **mutable** via `mkOutOfStoreSymlink` - `~/.config` points at the work-tree, so edits hot-reload with no rebuild while jj tracks them and borg backs them up - `dotfiles/niri/config.kdl`: the raw phase-0 config codified (binds, dual-head layout, noctalia spawn), plus numlock-at-startup, a `swayidle` DPMS timer (monitors off after 5 min idle), and a `draw-border-with-background false` rule for kitty - `prefer-no-csd` paints a solid backdrop behind decoration-less windows, which showed THROUGH kitty's translucency as solid - the rule kills the fill so the wallpaper shows - `dotfiles/kitty/rice.conf`: the visual config (opacity, decorations, cursor trail); package/terminfo/zsh-integration stay typed in `homeModules/apps/kitty.nix` - `numix-cursor-theme` nixpkgs pin extracted from `nixconf.nix` into `flake.overlays.pinned`, shared by the system overlays and the standalone `pkgs` - one pin, no cursor rebuild drift between the two - `discord` wrapped: `--enable-features=WebRTCPipeWireCapturer` (Go Live / screen-share over the Wayland portal - it's native Wayland already) `--no-sandbox` - left for later: - first switch on `ishtar` is ordered: `nixos-rebuild switch` (drops integrated `lament` HM, disables NixOS nvf) **then** `just home` (brings up standalone) - otherwise a window with no user env - codify the raw niri/kitty dotfiles into typed `programs.niri.settings` later only if wanted - mutable-symlink is deliberate for now
kitty+noctalia
All checks were successful
CI / check (pull_request) Successful in 1m8s
CI / deploy (pull_request) Has been skipped
CI / build (pull_request) Successful in 2m34s
CI / dry-activate (pull_request) Successful in 56s
afcf680e56
lament force-pushed noctalia-theming from afcf680e56
All checks were successful
CI / check (pull_request) Successful in 1m8s
CI / deploy (pull_request) Has been skipped
CI / build (pull_request) Successful in 2m34s
CI / dry-activate (pull_request) Successful in 56s
to f35810b041
All checks were successful
CI / check (pull_request) Successful in 1m7s
CI / deploy (pull_request) Has been skipped
CI / build (pull_request) Successful in 2m35s
CI / dry-activate (pull_request) Successful in 40s
2026-07-19 23:23:17 -05:00
Compare
lament force-pushed noctalia-theming from f35810b041
All checks were successful
CI / check (pull_request) Successful in 1m7s
CI / deploy (pull_request) Has been skipped
CI / build (pull_request) Successful in 2m35s
CI / dry-activate (pull_request) Successful in 40s
to e0f0bd2391
All checks were successful
CI / check (pull_request) Successful in 1m1s
CI / deploy (pull_request) Has been skipped
CI / build (pull_request) Successful in 2m39s
CI / dry-activate (pull_request) Successful in 40s
2026-07-19 23:52:46 -05:00
Compare
lament force-pushed noctalia-theming from e0f0bd2391
All checks were successful
CI / check (pull_request) Successful in 1m1s
CI / deploy (pull_request) Has been skipped
CI / build (pull_request) Successful in 2m39s
CI / dry-activate (pull_request) Successful in 40s
to 4f27c7ae02
All checks were successful
CI / check (pull_request) Successful in 1m5s
CI / deploy (pull_request) Has been skipped
CI / build (pull_request) Successful in 2m42s
CI / dry-activate (pull_request) Successful in 1m17s
2026-07-20 11:26:39 -05:00
Compare
mutable files
All checks were successful
CI / check (pull_request) Successful in 1m5s
CI / deploy (pull_request) Has been skipped
CI / build (pull_request) Successful in 2m32s
CI / dry-activate (pull_request) Successful in 44s
87097897d6
hm-seperation
All checks were successful
CI / check (pull_request) Successful in 1m15s
CI / deploy (pull_request) Has been skipped
CI / build (pull_request) Successful in 2m21s
CI / dry-activate (pull_request) Successful in 1m18s
6a0ab0ed07
iteration time
All checks were successful
CI / check (pull_request) Successful in 1m23s
CI / deploy (pull_request) Has been skipped
CI / build (pull_request) Successful in 2m31s
CI / dry-activate (pull_request) Successful in 2m14s
0adf39b57b
lament force-pushed noctalia-theming from 0adf39b57b
All checks were successful
CI / check (pull_request) Successful in 1m23s
CI / deploy (pull_request) Has been skipped
CI / build (pull_request) Successful in 2m31s
CI / dry-activate (pull_request) Successful in 2m14s
to e390b7104b
Some checks failed
CI / check (pull_request) Successful in 1m2s
CI / deploy (pull_request) Has been skipped
CI / build (pull_request) Successful in 2m43s
CI / dry-activate (pull_request) Successful in 1m10s
CI / check (push) Has been skipped
CI / build (push) Has been skipped
CI / dry-activate (push) Has been skipped
CI / deploy (push) Has been cancelled
2026-07-20 22:48:00 -05:00
Compare
lament changed title from WIP: noctalia owns app theming (stylix -> matugen), app by app to noctalia owns app theming (stylix -> matugen), app by app 2026-07-20 22:58:07 -05:00
lament merged commit e390b7104b into main 2026-07-20 22:59:52 -05:00
lament deleted branch noctalia-theming 2026-07-20 22:59:52 -05:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
lament/pantheon!101
No description provided.