fix: resolve VM startup failures, broken Hyprland functionality, and theme integration

- Fix QEMU syntax and root filesystem conflicts in vm-guest.nix.
- Repair numerous broken relative paths and imports across the codebase.
- Set 'summer-night' as the default distro theme with full branding integration.
- Implement declarative system-wide font installation including the 'nomarchy' font.
- Fix Waybar startup by dynamically generating theme-aware CSS.
- Restore Hyprland keybindings (Super+Return, Super+Space) and wallpaper loading.
- Add missing scripts: nomarchy-launch-walker, nomarchy-toggle-waybar, nomarchy-refresh-config.
- Enable UWSM and correctly disable conflicting Hyprland systemd services.
This commit is contained in:
Bernardo Magri
2026-04-12 20:54:03 +01:00
parent bbdf34ced8
commit a7dbca80a6
32 changed files with 253 additions and 115 deletions

View File

@@ -4,12 +4,17 @@
let
# Import theme palettes once - used by multiple modules
palettes = import ../themes/palettes;
palettes = import ./../themes/palettes;
# Unified state reading function
# Handles both JSON and plain text files with graceful fallbacks
readState = { file, default }:
if builtins.pathExists file then
let
# In pure evaluation mode (like nix build .#vm), absolute paths as strings
# will cause an error in pathExists/readFile.
isFileSafe = ! (builtins.isString file && lib.hasPrefix "/" file);
in
if isFileSafe && builtins.pathExists file then
let
content = builtins.readFile file;
cleanContent = lib.removeSuffix "\n" content;
@@ -31,7 +36,7 @@ let
# Read system state
readSystemState =
readState {
file = /etc/nixos/state.json;
file = "/etc/nixos/state.json";
default = {};
};