From 74e2dc34e3dea83e3e20da40ac9a3452f48fd203 Mon Sep 17 00:00:00 2001 From: Bernardo Magri Date: Mon, 4 May 2026 21:44:31 +0100 Subject: [PATCH] chore: complete OOTB QA audit Fixes identified during the thorough distro review: - Restore automatic wallpaper switching by removing image filters from deployed themes. - Fix broken 'Style' menu entries by creating missing about.txt and screensaver.txt branding files. - Clean up conflicting keybindings by removing deprecated tiling.conf and updating doc generator. - Remove legacy Nord theme hack from nomarchy-theme-set. - Fix JSON parse error in summer-day waybar theme. --- bin/utils/nomarchy-docs-keybindings | 3 +- core/branding/about.txt | 16 ++++ core/branding/screensaver.txt | 11 +++ .../nomarchy/default/hypr/bindings.conf | 2 +- .../default/hypr/bindings/tiling.conf | 74 ------------------- docs/KEYBINDINGS.md | 57 -------------- docs/ROADMAP.md | 3 +- .../waybar/themes/summer-day/config.jsonc | 4 +- themes/engine/files.nix | 14 +--- themes/engine/scripts/nomarchy-theme-set | 2 +- 10 files changed, 37 insertions(+), 149 deletions(-) create mode 100644 core/branding/about.txt create mode 100644 core/branding/screensaver.txt delete mode 100644 core/home/config/nomarchy/default/hypr/bindings/tiling.conf diff --git a/bin/utils/nomarchy-docs-keybindings b/bin/utils/nomarchy-docs-keybindings index f1d8f14..d6eb1d6 100755 --- a/bin/utils/nomarchy-docs-keybindings +++ b/bin/utils/nomarchy-docs-keybindings @@ -15,8 +15,7 @@ repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" sources=( "core/home/config/nomarchy/default/hypr/bindings/utilities.conf|Utilities" - "core/home/config/nomarchy/default/hypr/bindings/tiling.conf|Tiling" - "core/home/config/nomarchy/default/hypr/bindings/tiling-v2.conf|Tiling (v2)" + "core/home/config/nomarchy/default/hypr/bindings/tiling-v2.conf|Tiling" "core/home/config/nomarchy/default/hypr/bindings/clipboard.conf|Clipboard" "core/home/config/nomarchy/default/hypr/bindings/media.conf|Media keys" "features/desktop/hyprland/config/bindings.conf|Apps & web shortcuts" diff --git a/core/branding/about.txt b/core/branding/about.txt new file mode 100644 index 0000000..caf7c78 --- /dev/null +++ b/core/branding/about.txt @@ -0,0 +1,16 @@ +# About Nomarchy + +Nomarchy is a highly curated, NixOS-based distribution designed for power users. +It features a customized Hyprland desktop environment with a declarative +theming engine and a suite of integrated utility scripts. + +Built on a foundation of: +- NixOS (Linux) +- Hyprland (Window Manager) +- Waybar (Status Bar) +- Walker (Application Launcher & Menu) +- Stylix (Theming Engine) + +Version: 2026.05.04 +Docs: https://github.com/nomarchy/nomarchy/docs +Manual: nomarchy-manual (Command) diff --git a/core/branding/screensaver.txt b/core/branding/screensaver.txt new file mode 100644 index 0000000..5489450 --- /dev/null +++ b/core/branding/screensaver.txt @@ -0,0 +1,11 @@ +# Nomarchy Screensaver Configuration + +Nomarchy uses hyprlock for locking and hypridle for idle management. +To configure the screensaver/lock screen visuals, edit: +~/.config/hypr/hyprlock.conf + +To configure idle timeouts and actions, edit: +~/.config/hypr/hypridle.conf + +You can also toggle the screensaver/idle management via the Nomarchy Menu: +Trigger > Toggle > Idle Lock diff --git a/core/home/config/nomarchy/default/hypr/bindings.conf b/core/home/config/nomarchy/default/hypr/bindings.conf index 0f74b71..200fbc3 100644 --- a/core/home/config/nomarchy/default/hypr/bindings.conf +++ b/core/home/config/nomarchy/default/hypr/bindings.conf @@ -12,5 +12,5 @@ bindd = SUPER, O, Obsidian, exec, obsidian -disable-gpu bindd = SUPER, SLASH, Password manager, exec, $passwordManager source = ~/.config/nomarchy/default/hypr/bindings/media.conf -source = ~/.config/nomarchy/default/hypr/bindings/tiling.conf +source = ~/.config/nomarchy/default/hypr/bindings/tiling-v2.conf source = ~/.config/nomarchy/default/hypr/bindings/utilities.conf diff --git a/core/home/config/nomarchy/default/hypr/bindings/tiling.conf b/core/home/config/nomarchy/default/hypr/bindings/tiling.conf deleted file mode 100644 index 03c217c..0000000 --- a/core/home/config/nomarchy/default/hypr/bindings/tiling.conf +++ /dev/null @@ -1,74 +0,0 @@ -# This is now a deprecated file meant for those who did not wish to learn the latest Nomarchy hotkeys. -# Do not make changes here, but bring them to tiling-v2.conf instead. - -# Close windows -bindd = SUPER, Q, Close window, killactive, -bindd = CTRL ALT, DELETE, Close all windows, exec, nomarchy-hyprland-window-close-all - -# Control tiling -bindd = SUPER, J, Toggle window split, togglesplit, # dwindle -bindd = SUPER, P, Pseudo window, pseudo, # dwindle -bindd = SUPER SHIFT, V, Toggle window floating/tiling, togglefloating, -bindd = SHIFT, F11, Force full screen, fullscreen, 0 -bindd = ALT, F11, Full width, fullscreen, 1 - -# Move focus with SUPER + arrow keys -bindd = SUPER, LEFT, Move focus left, movefocus, l -bindd = SUPER, RIGHT, Move focus right, movefocus, r -bindd = SUPER, UP, Move focus up, movefocus, u -bindd = SUPER, DOWN, Move focus down, movefocus, d - -# Switch workspaces with SUPER + [0-9] -bindd = SUPER, code:10, Switch to workspace 1, workspace, 1 -bindd = SUPER, code:11, Switch to workspace 2, workspace, 2 -bindd = SUPER, code:12, Switch to workspace 3, workspace, 3 -bindd = SUPER, code:13, Switch to workspace 4, workspace, 4 -bindd = SUPER, code:14, Switch to workspace 5, workspace, 5 -bindd = SUPER, code:15, Switch to workspace 6, workspace, 6 -bindd = SUPER, code:16, Switch to workspace 7, workspace, 7 -bindd = SUPER, code:17, Switch to workspace 8, workspace, 8 -bindd = SUPER, code:18, Switch to workspace 9, workspace, 9 -bindd = SUPER, code:19, Switch to workspace 10, workspace, 10 - -# Move active window to a workspace with SUPER + SHIFT + [0-9] -bindd = SUPER SHIFT, code:10, Move window to workspace 1, movetoworkspace, 1 -bindd = SUPER SHIFT, code:11, Move window to workspace 2, movetoworkspace, 2 -bindd = SUPER SHIFT, code:12, Move window to workspace 3, movetoworkspace, 3 -bindd = SUPER SHIFT, code:13, Move window to workspace 4, movetoworkspace, 4 -bindd = SUPER SHIFT, code:14, Move window to workspace 5, movetoworkspace, 5 -bindd = SUPER SHIFT, code:15, Move window to workspace 6, movetoworkspace, 6 -bindd = SUPER SHIFT, code:16, Move window to workspace 7, movetoworkspace, 7 -bindd = SUPER SHIFT, code:17, Move window to workspace 8, movetoworkspace, 8 -bindd = SUPER SHIFT, code:18, Move window to workspace 9, movetoworkspace, 9 -bindd = SUPER SHIFT, code:19, Move window to workspace 10, movetoworkspace, 10 - -# TAB between workspaces -bindd = SUPER, TAB, Next workspace, workspace, e+1 -bindd = SUPER SHIFT, TAB, Previous workspace, workspace, e-1 -bindd = SUPER CTRL, TAB, Former workspace, workspace, previous - -# Swap active window with the one next to it with SUPER + SHIFT + arrow keys -bindd = SUPER SHIFT, LEFT, Swap window to the left, swapwindow, l -bindd = SUPER SHIFT, RIGHT, Swap window to the right, swapwindow, r -bindd = SUPER SHIFT, UP, Swap window up, swapwindow, u -bindd = SUPER SHIFT, DOWN, Swap window down, swapwindow, d - -# Cycle through applications on active workspace -bindd = ALT, TAB, Cycle to next window, cyclenext -bindd = ALT SHIFT, TAB, Cycle to prev window, cyclenext, prev -bindd = ALT, TAB, Reveal active window on top, bringactivetotop -bindd = ALT SHIFT, TAB, Reveal active window on top, bringactivetotop - -# Resize active window -bindd = SUPER, code:20, Expand window left, resizeactive, -100 0 # - key -bindd = SUPER, code:21, Shrink window left, resizeactive, 100 0 # = key -bindd = SUPER SHIFT, code:20, Shrink window up, resizeactive, 0 -100 -bindd = SUPER SHIFT, code:21, Expand window down, resizeactive, 0 100 - -# Scroll through existing workspaces with SUPER + scroll -bindd = SUPER, MOUSE_DOWN, Scroll active workspace forward, workspace, e+1 -bindd = SUPER, MOUSE_UP, Scroll active workspace backward, workspace, e-1 - -# Move/resize windows with mainMod + LMB/RMB and dragging -bindmd = SUPER, mouse:272, Move window, movewindow -bindmd = SUPER, mouse:273, Resize window, resizewindow diff --git a/docs/KEYBINDINGS.md b/docs/KEYBINDINGS.md index 31852ef..d74f042 100644 --- a/docs/KEYBINDINGS.md +++ b/docs/KEYBINDINGS.md @@ -59,63 +59,6 @@ _Source: `core/home/config/nomarchy/default/hypr/bindings/utilities.conf`_ ## Tiling -_Source: `core/home/config/nomarchy/default/hypr/bindings/tiling.conf`_ - -| Modifiers | Key | Action | -| --- | --- | --- | -| SUPER | Q | Close window | -| CTRL ALT | DELETE | Close all windows | -| SUPER | J | Toggle window split | -| SUPER | P | Pseudo window | -| SUPER SHIFT | V | Toggle window floating/tiling | -| SHIFT | F11 | Force full screen | -| ALT | F11 | Full width | -| SUPER | LEFT | Move focus left | -| SUPER | RIGHT | Move focus right | -| SUPER | UP | Move focus up | -| SUPER | DOWN | Move focus down | -| SUPER | 1 | Switch to workspace 1 | -| SUPER | 2 | Switch to workspace 2 | -| SUPER | 3 | Switch to workspace 3 | -| SUPER | 4 | Switch to workspace 4 | -| SUPER | 5 | Switch to workspace 5 | -| SUPER | 6 | Switch to workspace 6 | -| SUPER | 7 | Switch to workspace 7 | -| SUPER | 8 | Switch to workspace 8 | -| SUPER | 9 | Switch to workspace 9 | -| SUPER | 0 | Switch to workspace 10 | -| SUPER SHIFT | 1 | Move window to workspace 1 | -| SUPER SHIFT | 2 | Move window to workspace 2 | -| SUPER SHIFT | 3 | Move window to workspace 3 | -| SUPER SHIFT | 4 | Move window to workspace 4 | -| SUPER SHIFT | 5 | Move window to workspace 5 | -| SUPER SHIFT | 6 | Move window to workspace 6 | -| SUPER SHIFT | 7 | Move window to workspace 7 | -| SUPER SHIFT | 8 | Move window to workspace 8 | -| SUPER SHIFT | 9 | Move window to workspace 9 | -| SUPER SHIFT | 0 | Move window to workspace 10 | -| SUPER | TAB | Next workspace | -| SUPER SHIFT | TAB | Previous workspace | -| SUPER CTRL | TAB | Former workspace | -| SUPER SHIFT | LEFT | Swap window to the left | -| SUPER SHIFT | RIGHT | Swap window to the right | -| SUPER SHIFT | UP | Swap window up | -| SUPER SHIFT | DOWN | Swap window down | -| ALT | TAB | Cycle to next window | -| ALT SHIFT | TAB | Cycle to prev window | -| ALT | TAB | Reveal active window on top | -| ALT SHIFT | TAB | Reveal active window on top | -| SUPER | code:20 | Expand window left | -| SUPER | code:21 | Shrink window left | -| SUPER SHIFT | code:20 | Shrink window up | -| SUPER SHIFT | code:21 | Expand window down | -| SUPER | MOUSE_DOWN | Scroll active workspace forward | -| SUPER | MOUSE_UP | Scroll active workspace backward | -| SUPER | mouse:272 | Move window | -| SUPER | mouse:273 | Resize window | - -## Tiling (v2) - _Source: `core/home/config/nomarchy/default/hypr/bindings/tiling-v2.conf`_ | Modifiers | Key | Action | diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 5cf86ee..1156c96 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -19,7 +19,7 @@ Guardrails (apply when adding anything): ### Now (ready to pick up) -- **Thorough Out-of-the-Box QA Audit.** A complete and thorough review of the distro to identify and fix anything broken or not working as intended in a fresh installation (including the `nomarchy-live` ISO) without any manual configuration. Focus areas: theme engine and switching, script execution, menu mappings, and overall default desktop polish. +- (Empty for now) ### Next (bigger lifts that build on Now) @@ -136,6 +136,7 @@ Nomarchy is moving away from being a "flavor" of Omarchy to its own distinct ide (Move items here when they land — keep them brief, link the commit/PR.) +- _2026-05-04_ — Thorough Out-of-the-Box QA Audit. (1) Restored automatic wallpaper switching by removing image filters from deployed themes; (2) Fixed broken "Style" menu entries by creating missing `about.txt` and `screensaver.txt` branding files; (3) Cleaned up conflicting keybindings by removing deprecated `tiling.conf` and updating the doc generator; (4) Removed legacy Nord theme hack from `nomarchy-theme-set`; (5) Fixed JSON parse error in `summer-day` waybar theme. - _2026-05-03_ — Fixed multi-disk LUKS/BTRFS boot hang. (1) Moved temporary LUKS keyfile to `/tmp/` so Disko correctly omits it from the runtime configuration; (2) Injected `x-systemd.requires` and `x-systemd.device-timeout=0` into BTRFS mount options to ensure all LUKS drives are decrypted before mounting. - _2026-05-03_ — Fixed CLI wrappers and removed obsolete code. (1) Updated `nomarchy-font`, `nomarchy-theme`, and `nomarchy-wallpaper` CLI wrappers to use modern Walker menus; (2) Removed the obsolete and broken `themes/engine/switcher.nix` and its associated Nix-inlined scripts; (3) Cleaned up remaining `$NOMARCHY_PATH` references from the Omarchy era. - _2026-05-03_ — Fixed `/etc/nixos` ownership after installation. Added a `chown -R $USERNAME:users /etc/nixos` step via `nixos-enter` at the end of `installer/install.sh` so the main user owns their configuration and can run `home-manager` commands without `sudo`. diff --git a/features/desktop/waybar/themes/summer-day/config.jsonc b/features/desktop/waybar/themes/summer-day/config.jsonc index a9e6362..a4ec88f 100755 --- a/features/desktop/waybar/themes/summer-day/config.jsonc +++ b/features/desktop/waybar/themes/summer-day/config.jsonc @@ -29,7 +29,7 @@ "8": [], "9": [], "10": [] - }, + } }, "custom/launcher": { @@ -79,7 +79,7 @@ "default": ["", "", ""] }, "on-click-right": "pavucontrol", - "on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle", + "on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle" }, "network": { diff --git a/themes/engine/files.nix b/themes/engine/files.nix index a8d6b3b..fdd204f 100644 --- a/themes/engine/files.nix +++ b/themes/engine/files.nix @@ -74,21 +74,13 @@ in xdg.configFile."nomarchy/branding/logo.svg".source = ../../core/branding/logo.svg; xdg.configFile."nomarchy/branding/icon.png".source = ../../core/branding/icon.png; xdg.configFile."nomarchy/branding/icon.txt".source = ../../core/branding/icon.txt; + xdg.configFile."nomarchy/branding/screensaver.txt".source = ../../core/branding/screensaver.txt; + xdg.configFile."nomarchy/branding/about.txt".source = ../../core/branding/about.txt; # Expose all themes to the system via local share for script accessibility - # We filter out images to prevent Nix Store bloat xdg.dataFile."nomarchy/themes".source = builtins.path { - name = "nomarchy-themes-no-images"; + name = "nomarchy-themes"; path = ../palettes; - filter = path: type: - let - baseName = baseNameOf path; - in - ! (type == "regular" && ( - lib.hasSuffix ".jpg" baseName || - lib.hasSuffix ".png" baseName || - lib.hasSuffix ".jpeg" baseName - )); }; # Nautilus python extensions diff --git a/themes/engine/scripts/nomarchy-theme-set b/themes/engine/scripts/nomarchy-theme-set index 7af68a6..e067dc7 100755 --- a/themes/engine/scripts/nomarchy-theme-set +++ b/themes/engine/scripts/nomarchy-theme-set @@ -29,7 +29,7 @@ fi mkdir -p "$STATE_DIR" [[ ! -f $STATE_FILE ]] && echo "{}" > "$STATE_FILE" -if [ ! -d "$THEMES_DIR/$THEME_NAME" ] && ! [[ "$THEME_NAME" == "nord" ]]; then +if [ ! -d "$THEMES_DIR/$THEME_NAME" ]; then echo "Theme '$THEME_NAME' not found in $THEMES_DIR" fi