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.
This commit is contained in:
Bernardo Magri
2026-05-04 21:44:31 +01:00
parent 3510a51492
commit 74e2dc34e3
10 changed files with 37 additions and 149 deletions

View File

@@ -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"

16
core/branding/about.txt Normal file
View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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 |

View File

@@ -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`.

View File

@@ -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": {

View File

@@ -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

View File

@@ -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