feat: Nomarchy ground-up rewrite on NixOS 26.05

Full replacement of the previous iteration, rebuilt around three ideas:

- Pure evaluation: theme-state.json lives inside the flake and is read
  via the nomarchy.stateFile option — no --impure, ever.
- All-Home-Manager theming: `nomarchy-theme-sync apply` writes the JSON
  and runs `home-manager switch`; every theme change is one atomic,
  rollbackable generation. Wallpaper (swww) is the sole runtime piece.
- Flat, downstream-first layout: modules/{nixos,home} with one
  options.nix each, exported as nixosModules/homeModules + overlay +
  flake template; system (nixos-rebuild) and desktop (home-manager
  switch) rebuild paths are fully split.

Ships 21 themes imported from the previous iteration (palettes,
wallpapers, btop themes, six whole-swap Waybar identities), Stylix for
the GTK/Qt/cursor long tail, a live ISO target with offline theme
switching, and docs/TESTING.md with the QEMU verification workflow.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Bernardo Magri
2026-06-10 10:59:13 +01:00
commit f211ef0d09
131 changed files with 4844 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 MiB

View File

@@ -0,0 +1,86 @@
# Main background, empty for terminal default, need to be empty if you want transparent background
theme[main_bg]="#2d353b"
# Main text color
theme[main_fg]="#d3c6aa"
# Title color for boxes
theme[title]="#d3c6aa"
# Highlight color for keyboard shortcuts
theme[hi_fg]="#e68183"
# Background color of selected items
theme[selected_bg]="#3c474d"
# Foreground color of selected items
theme[selected_fg]="#d9bb80"
# Color of inactive/disabled text
theme[inactive_fg]="#2d353b"
# Color of text appearing on top of graphs, i.e uptime and current network graph scaling
theme[graph_text]="#d3c6aa"
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
theme[proc_misc]="#a7c080"
# Cpu box outline color
theme[cpu_box]="#3c474d"
# Memory/disks box outline color
theme[mem_box]="#3c474d"
# Net up/down box outline color
theme[net_box]="#3c474d"
# Processes box outline color
theme[proc_box]="#3c474d"
# Box divider line and small boxes line color
theme[div_line]="#3c474d"
# Temperature graph colors
theme[temp_start]="#a7c080"
theme[temp_mid]="#d9bb80"
theme[temp_end]="#e68183"
# CPU graph colors
theme[cpu_start]="#a7c080"
theme[cpu_mid]="#d9bb80"
theme[cpu_end]="#e68183"
# Mem/Disk free meter
theme[free_start]="#e68183"
theme[free_mid]="#d9bb80"
theme[free_end]="#a7c080"
# Mem/Disk cached meter
theme[cached_start]="#83b6af"
theme[cached_mid]="#87c095"
theme[cached_end]="#a7c080"
# Mem/Disk available meter
theme[available_start]="#e68183"
theme[available_mid]="#d9bb80"
theme[available_end]="#a7c080"
# Mem/Disk used meter
theme[used_start]="#a7c080"
theme[used_mid]="#d9bb80"
theme[used_end]="#e68183"
# Download graph colors
theme[download_start]="#a7c080"
theme[download_mid]="#87c095"
theme[download_end]="#83b6af"
# Upload graph colors
theme[upload_start]="#d9bb80"
theme[upload_mid]="#d39bb6"
theme[upload_end]="#e68183"
# Process box color gradient for threads, mem and cpu usage
theme[process_start]="#a7c080"
theme[process_mid]="#e68183"
theme[process_end]="#e68183"

View File

@@ -0,0 +1,123 @@
@define-color bg_dim #232a2e;
@define-color bg0 #2d353b;
@define-color bg1 #343f44;
@define-color bg2 #3d484d;
@define-color bg3 #475258;
@define-color bg4 #4f585e;
@define-color bg5 #56635f;
@define-color bg_visual #543a48;
@define-color bg_red #514045;
@define-color bg_green #425047;
@define-color bg_blue #3a515d;
@define-color bg_yellow #4d4c43;
@define-color fg #d3c6aa;
@define-color red #e67e80;
@define-color orange #e69875;
@define-color yellow #dbbc7f;
@define-color green #a7c080;
@define-color aqua #83c092;
@define-color blue #7fbbb3;
@define-color purple #d699b6;
@define-color grey0 #7a8478;
@define-color grey1 #859289;
@define-color grey2 #9da9a0;
/* margin: top right bottom left */
/* Spacing outside the element */
/* padding: top right bottom left */
/* Spacing inside the element */
* {
font-family: JetBrainsMono Nerd Font, FontAwesome;
font-size: 13px;
font-weight: bold;
}
window#waybar {
background-color: @fg;
color: @bg0;
transition-property: background-color;
transition-duration: 0.5s;
border-radius: 0px 0px 15px 15px;
transition-duration: .5s;
border-bottom-width: 5px;
border-bottom-color: #7d6a40;
border-bottom-style: solid;
}
#backlight,
#tray,
#custom-nomarchy,
#clock,
#clock.date,
#workspaces,
#pulseaudio,
#idle_inhibitor,
#custom-battery,
#custom-powermenu {
background-color: @bg0;
color: @fg;
padding-left: 10px;
padding-right: 10px;
margin-top: 7px;
margin-bottom: 12px;
border-radius: 10px;
border-bottom-width: 5px;
border-bottom-color: #161a1d;
border-bottom-style: solid;
}
#tray > .active {
color: @fg;
}
#tray > .needs-attention {
color: @green;
}
#workspaces {
padding: 0px;
}
#workspaces button.active {
background-color: @blue;
color: @bg0;
border-radius: 10px;
margin-bottom: -5px;
border-bottom-width: 5px;
border-bottom-color: #366660;
border-bottom-style: solid;
}
#custom-nomarchy {
background-color: @green;
color: @bg0;
border-bottom-color: #556a35;
margin-left: 15px;
padding-left: 20px;
padding-right: 21px;
font-family: Nomarchy;
font-size: 20px;
}
#custom-powermenu {
background-color: @red;
color: @bg0;
border-bottom-color: #951c1f;
margin-right: 15px;
padding-left: 20px;
padding-right: 23px;
}
#custom-battery.preservation {
color: @green;
}
#idle_inhibitor {
padding-left: 10px;
padding-right: 10px;
font-size: 20px;
}