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

@@ -1,6 +1,6 @@
# Application bindings
bindd = SUPER, RETURN, Terminal, exec, uwsm-app -- xdg-terminal-exec --dir="$(nomarchy-cmd-terminal-cwd)"
bindd = SUPER ALT, RETURN, Tmux, exec, uwsm-app -- xdg-terminal-exec --dir="$(nomarchy-cmd-terminal-cwd)" bash -c "tmux attach || tmux new -s Work"
bindd = SUPER, RETURN, Terminal, exec, uwsm-app -- xdg-terminal-exec || uwsm-app -- alacritty
bindd = SUPER ALT, RETURN, Tmux, exec, uwsm-app -- xdg-terminal-exec bash -c "tmux attach || tmux new -s Work"
bindd = SUPER SHIFT, RETURN, Browser, exec, nomarchy-launch-browser
bindd = SUPER SHIFT, F, File manager, exec, uwsm-app -- nautilus --new-window
bindd = SUPER ALT SHIFT, F, File manager (cwd), exec, uwsm-app -- nautilus --new-window "$(nomarchy-cmd-terminal-cwd)"

View File

@@ -9,6 +9,7 @@
source = ~/.config/nomarchy/default/hypr/envs.conf
# Keybindings
source = ~/.config/hypr/bindings.conf
source = ~/.config/nomarchy/default/hypr/bindings/media.conf
source = ~/.config/nomarchy/default/hypr/bindings/clipboard.conf
source = ~/.config/nomarchy/default/hypr/bindings/tiling-v2.conf
@@ -31,7 +32,6 @@ source = ~/.config/nomarchy/default/hypr/looknfeel.conf
# ============================================================================
# Theme colors - loaded from the currently active theme
source = ~/.config/nomarchy/current/theme/hyprland.conf
# ============================================================================
# USER OVERRIDES
# ============================================================================
@@ -39,9 +39,7 @@ source = ~/.config/nomarchy/current/theme/hyprland.conf
source = ~/.config/hypr/monitors.conf
source = ~/.config/hypr/input.conf
source = ~/.config/hypr/bindings.conf
source = ~/.config/hypr/looknfeel.conf
source = ~/.config/hypr/autostart.conf
# Add any other personal Hyprland configuration below
# windowrule = workspace 5, match:class qemu

View File

@@ -1,8 +1,8 @@
{ config, pkgs, lib, ... }:
let
nomarchyLib = import ../lib { inherit lib; };
assetsPath = ../../assets/themes;
nomarchyLib = import ../../../lib { inherit lib; };
assetsPath = ../../../themes/palettes;
# Use shared wallpaper resolver
activeWallpaper = nomarchyLib.resolveWallpaper {
@@ -21,6 +21,7 @@ in
wayland.windowManager.hyprland = {
enable = lib.mkDefault true;
systemd.enable = lib.mkDefault false;
settings = lib.mkDefault {
"debug" = {
"disable_logs" = false;
@@ -41,4 +42,12 @@ in
source = ~/.config/hypr/nomarchy.conf
'';
};
# Deploy Hyprland configuration files
xdg.configFile."hypr/nomarchy.conf".source = ./config/nomarchy.conf;
xdg.configFile."hypr/monitors.conf".source = lib.mkDefault ./config/monitors.conf;
xdg.configFile."hypr/input.conf".source = lib.mkDefault ./config/input.conf;
xdg.configFile."hypr/bindings.conf".source = lib.mkDefault ./config/bindings.conf;
xdg.configFile."hypr/looknfeel.conf".source = lib.mkDefault ./config/looknfeel.conf;
xdg.configFile."hypr/autostart.conf".source = lib.mkDefault ./config/autostart.conf;
}

View File

@@ -138,13 +138,13 @@
},
"custom/screenrecording-indicator": {
"on-click": "nomarchy-cmd-screenrecord",
"exec": "$OMARCHY_PATH/default/waybar/indicators/screen-recording.sh",
"exec": "~/.config/nomarchy/default/waybar/indicators/screen-recording.sh",
"signal": 8,
"return-type": "json"
},
"custom/idle-indicator": {
"on-click": "nomarchy-toggle-idle",
"exec": "$OMARCHY_PATH/default/waybar/indicators/idle.sh",
"exec": "~/.config/nomarchy/default/waybar/indicators/idle.sh",
"signal": 9,
"return-type": "json"
},

View File

@@ -0,0 +1,14 @@
@define-color background #2e3440;
@define-color foreground #d8dee9;
@define-color accent #88c0d0;
/* Base style for Nord */
* {
font-family: JetBrainsMono Nerd Font, FontAwesome;
font-size: 13px;
}
window#waybar {
background-color: @background;
color: @foreground;
}

View File

@@ -7,9 +7,9 @@
"layer": "top",
"position": "top",
"spacing": 15,
"modules-left": ["custom/launcher", "clock", "clock#date"],
"modules-left": ["custom/nomarchy", "clock", "clock#date"],
"modules-center": ["hyprland/workspaces"],
"modules-right": ["idle_inhibitor", "pulseaudio", "custom/battery", "backlight", "tray", "custom/powermenu"],
"modules-right": ["custom/update", "custom/voxtype", "custom/screenrecording-indicator", "custom/idle-indicator", "custom/notification-silencing-indicator", "idle_inhibitor", "pulseaudio", "custom/battery", "backlight", "tray", "custom/powermenu"],
"hyprland/workspaces": {
"disable-scroll": true,
@@ -36,13 +36,57 @@
"spacing": 5
},
"custom/launcher": {
"custom/nomarchy": {
"interval": "once",
"format": "",
"on-click": "pkill rofi || rofi -show drun",
"format": "<span font='nomarchy'>a</span>",
"on-click": "nomarchy-menu",
"tooltip-format": "Application Launcher"
},
"custom/update": {
"format": "",
"exec": "nomarchy-update-available",
"on-click": "nomarchy-launch-floating-terminal-with-presentation nomarchy-update",
"tooltip-format": "Nomarchy update available",
"signal": 7,
"interval": 21600
},
"custom/screenrecording-indicator": {
"on-click": "nomarchy-cmd-screenrecord",
"exec": "~/.config/nomarchy/default/waybar/indicators/screen-recording.sh",
"signal": 8,
"return-type": "json"
},
"custom/idle-indicator": {
"on-click": "nomarchy-toggle-idle",
"exec": "~/.config/nomarchy/default/waybar/indicators/idle.sh",
"signal": 9,
"return-type": "json"
},
"custom/notification-silencing-indicator": {
"on-click": "nomarchy-toggle-notification-silencing",
"exec": "~/.config/nomarchy/default/waybar/indicators/notification-silencing.sh",
"signal": 10,
"return-type": "json"
},
"custom/voxtype": {
"exec": "nomarchy-voxtype-status",
"return-type": "json",
"format": "{icon}",
"format-icons": {
"idle": "",
"recording": "󰍬",
"transcribing": "󰔟"
},
"tooltip": true,
"on-click-right": "nomarchy-voxtype-config",
"on-click": "nomarchy-voxtype-model"
},
"backlight": {
"max-length": "4",
"format": "{icon} {percent}%",
@@ -83,8 +127,8 @@
"car": "",
"default": ["", "", ""]
},
"on-click": "mute-vol",
"on-click-middle": "audio-menu",
"on-click": "pamixer -t",
"on-click-middle": "nomarchy-launch-audio",
"on-click-right": "pavucontrol",
"tooltip-format": "{icon} {desc} | {volume}%"
},
@@ -93,14 +137,14 @@
"format-wifi": " {signalStrength}%",
"format-ethernet": " {signalStrength}%",
"format-disconnected": "󰤭",
"on-click": ""
"on-click": "nomarchy-launch-wifi"
},
"custom/battery": {
"interval": 30,
"format": "{}",
"exec": "waybar-battery-status",
"on-click": "power-menu"
"exec": "nomarchy-battery-status",
"on-click": "nomarchy-menu power"
},
"clock": {