diff --git a/core/home/config/nomarchy/default/bash/envs b/core/home/config/nomarchy/default/bash/envs index bf4e48c..ec23f3d 100644 --- a/core/home/config/nomarchy/default/bash/envs +++ b/core/home/config/nomarchy/default/bash/envs @@ -3,5 +3,4 @@ export SUDO_EDITOR="$EDITOR" export BAT_THEME=ansi # Duplicated from .config/uwsm/env so SSH works too -export NOMARCHY_PATH=$HOME/.local/share/nomarchy -export PATH=$NOMARCHY_PATH/bin:$PATH:$HOME/.local/bin +export PATH=$PATH:$HOME/.local/bin diff --git a/core/home/config/nomarchy/default/elephant/nomarchy_themes.lua b/core/home/config/nomarchy/default/elephant/nomarchy_themes.lua index 8e24b11..2d6a1eb 100644 --- a/core/home/config/nomarchy/default/elephant/nomarchy_themes.lua +++ b/core/home/config/nomarchy/default/elephant/nomarchy_themes.lua @@ -32,8 +32,8 @@ end function GetEntries() local entries = {} local user_theme_dir = os.getenv("HOME") .. "/.config/nomarchy/themes" - local nomarchy_path = os.getenv("NOMARCHY_PATH") or "" - local default_theme_dir = nomarchy_path .. "/themes" + local nomarchy_path = os.getenv("NOMARCHY_PATH") or "/etc/nixos" + local default_theme_dir = nomarchy_path .. "/themes/palettes" local seen_themes = {} diff --git a/core/system/scripts-derivation.nix b/core/system/scripts-derivation.nix index b3ec36f..d5ce767 100644 --- a/core/system/scripts-derivation.nix +++ b/core/system/scripts-derivation.nix @@ -56,7 +56,7 @@ pkgs.stdenv.mkDerivation { if [ -f "$file" ]; then wrapProgram "$file" \ --prefix PATH : "$deps" \ - --set NOMARCHY_PATH "/etc/nixos/nomarchy" + --set NOMARCHY_PATH "/etc/nixos" fi done ''; diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 2125429..9b89eaa 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -136,6 +136,8 @@ 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-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`. - _2026-05-01_ — Installer & Script Audit Polish. (1) Fixed a critical bash dynamic scoping bug in `installer/install.sh` where `rc=0` assignments inside functions (Impermanence, Form Factor) were clobbering the main loop's return code, causing the installer to abort when "No" was selected; (2) Polished `hosts/nomarchy-live.nix` with auto-login for the `nixos` user and passwordless sudo for the `wheel` group; (3) Repurposed `nomarchy-toggle-suspend` to execute `systemctl suspend` directly and updated `nomarchy-menu` to reflect this; (4) Updated `nomarchy-launch-wifi` to use `nmtui` in Alacritty; (5) Regenerated `docs/SCRIPTS.md` to reflect the updated script mappings. - _2026-04-30_ — `set -e` sweep across `nomarchy-*` scripts. Added `set -e` to 142 of 169 bash scripts that lacked it (27 already had it). Halts a class of "command failed silently in the middle of a chain, system left in half-applied state" bugs that produced repeat-fix commits. One deliberate exception: `nomarchy-menu` runs without `set -e` because it's an interactive UX loop where action failures should re-display the menu rather than abort the script. Pre-commit hook now enforces `bash -n` + `shellcheck --severity=error` so future scripts can't regress this. - _2026-04-30_ — Installer disk-phase reliability. Hardened `installer/install.sh` and consolidated the disko configs: (1) `select_disk` now hides the live-ISO boot device(s) so the installer can't format its own boot media (`NOMARCHY_INSTALL_ALLOW_ISO_TARGET=1` to override); (2) added a 10 GiB minimum-capacity preflight; (3) `prewipe_target_drive` enumerates every active dm-crypt mapping backed by the target drive and closes them, drops the silent `|| true` from `wipefs`/`sgdisk`/`dd`, bounds `udevadm settle` to 30s, and refuses to continue if anything is still mounted; (4) wrapped the disko call in `run_disko_with_retry` with last-30-lines + Retry / View full log / Abort dialog on failure; (5) replaced the sed-templated `disko-golden.nix` + `disko-btrfs-multi.nix` pair with a single `disko-config.nix` Nix function called via `--argstr mainDrive … --arg extraDrives '[…]'` — eliminates a class of escaping bugs (cf. `3aadc36`); (6) added an EXIT trap so the tmpfs LUKS key file is removed even on early abort. diff --git a/docs/SCRIPTS.md b/docs/SCRIPTS.md index 4e617d3..b35b5e6 100644 --- a/docs/SCRIPTS.md +++ b/docs/SCRIPTS.md @@ -54,8 +54,8 @@ Phase B (per-batch PRs) refines those into `port-from-omarchy`, | `nomarchy-drive-info` | `features/scripts/utils` | features/scripts/utils/nomarchy-drive-select | `kept` | | | `nomarchy-drive-select` | `features/scripts/utils` | features/scripts/utils/nomarchy-drive-info,features/scripts/utils/nomarchy-drive-set-password | `kept` | | | `nomarchy-drive-set-password` | `features/scripts/utils` | features/scripts/utils/nomarchy-drive-select,features/scripts/utils/nomarchy-menu | `kept` | | -| `nomarchy-env-update` | `features/scripts/utils` | core/home/bash.nix,core/system/scripts/nomarchy-pkg-add, +7 more | `kept` | | -| `nomarchy-font` | `features/scripts/utils` | bin/utils/nomarchy-docs-scripts,core/home/config/nomarchy-skill/SKILL.md, +7 more | `kept` | | +| `nomarchy-env-update` | `core/system/scripts` | core/home/bash.nix,core/system/scripts.nix, +7 more | `kept` | | +| `nomarchy-font` | `features/scripts/utils` | bin/utils/nomarchy-docs-scripts,core/home/config/nomarchy-skill/SKILL.md, +6 more | `kept` | | | `nomarchy-font-current` | `themes/engine/scripts` | core/home/config/nomarchy-skill/SKILL.md,features/scripts/utils/nomarchy-menu | `kept` | | | `nomarchy-font-list` | `themes/engine/scripts` | core/home/config/nomarchy-skill/SKILL.md,features/scripts/utils/nomarchy-font, +2 more | `kept` | | | `nomarchy-font-set` | `themes/engine/scripts` | core/home/config/nomarchy-skill/SKILL.md,features/scripts/utils/nomarchy-font, +4 more | `kept` | | @@ -87,7 +87,7 @@ Phase B (per-batch PRs) refines those into `port-from-omarchy`, | `nomarchy-launch-or-focus-webapp` | `features/scripts/utils` | features/desktop/hyprland/config/bindings.conf | `kept` | | | `nomarchy-launch-screensaver` | `features/scripts/utils` | features/desktop/idle.nix,features/scripts/utils/nomarchy-menu | `kept` | | | `nomarchy-launch-tui` | `features/scripts/utils` | core/home/config/nomarchy/default/hypr/bindings/utilities.conf,features/desktop/hyprland/config/bindings.conf, +2 more | `kept` | | -| `nomarchy-launch-walker` | `features/scripts/utils` | core/home/config/nomarchy/default/hypr/bindings/clipboard.conf,core/home/config/nomarchy/default/hypr/bindings/utilities.conf, +1 more | `kept` | | +| `nomarchy-launch-walker` | `features/scripts/utils` | core/home/config/nomarchy/default/hypr/bindings/clipboard.conf,core/home/config/nomarchy/default/hypr/bindings/utilities.conf, +4 more | `kept` | | | `nomarchy-launch-webapp` | `features/scripts/utils` | core/home/config/nomarchy/default/hypr/plain-bindings.conf,features/desktop/hyprland/config/bindings.conf, +7 more | `kept` | | | `nomarchy-launch-wifi` | `features/scripts/utils` | core/home/config/nomarchy/default/hypr/bindings/utilities.conf,core/home/config/nomarchy/default/mako/core.ini, +4 more | `kept` | | | `nomarchy-lock-screen` | `features/scripts/utils` | core/home/config/nomarchy/default/hypr/bindings/utilities.conf,core/home/config/nomarchy/extensions/menu.sh, +3 more | `kept` | | @@ -104,7 +104,7 @@ Phase B (per-batch PRs) refines those into `port-from-omarchy`, | `nomarchy-pkg-install` | `features/scripts/utils` | core/home/config/nomarchy-skill/SKILL.md | `kept` | | | `nomarchy-pkg-remove` | `core/system/scripts` | features/scripts/utils/nomarchy-pkg-drop | `kept` | | | `nomarchy-powerprofiles-list` | `core/system/scripts` | features/scripts/utils/nomarchy-menu | `kept` | | -| `nomarchy-preflight-migration` | `core/system/scripts` | features/scripts/utils/nomarchy-env-update,features/scripts/utils/nomarchy-migrate-state | `kept` | | +| `nomarchy-preflight-migration` | `core/system/scripts` | core/system/scripts/nomarchy-env-update,features/scripts/utils/nomarchy-migrate-state | `kept` | | | `nomarchy-refresh-config` | `features/scripts/utils` | core/home/config/nomarchy-skill/SKILL.md,features/scripts/utils/nomarchy-refresh-fastfetch | `kept` | | | `nomarchy-refresh-fastfetch` | `features/scripts/utils` | — | `unused?` | | | `nomarchy-refresh-hyprland` | `features/scripts/utils` | core/home/config/nomarchy-skill/SKILL.md | `kept` | | @@ -150,16 +150,16 @@ Phase B (per-batch PRs) refines those into `port-from-omarchy`, | `nomarchy-test-installer` | `features/scripts/utils` | features/scripts/utils/nomarchy-test-vm,README.md | `kept` | | | `nomarchy-test-live-iso` | `features/scripts/utils` | hosts/nomarchy-live.nix | `kept` | | | `nomarchy-test-vm` | `features/scripts/utils` | features/scripts/utils/nomarchy-test-live-iso | `kept` | | -| `nomarchy-theme` | `features/scripts/utils` | bin/utils/nomarchy-docs-scripts,core/home/config/nomarchy/default/elephant/nomarchy_background_selector.lua, +17 more | `kept` | | +| `nomarchy-theme` | `features/scripts/utils` | bin/utils/nomarchy-docs-scripts,core/home/config/nomarchy/default/elephant/nomarchy_background_selector.lua, +16 more | `kept` | | | `nomarchy-theme-bg-install` | `themes/engine/scripts` | — | `unused?` | | | `nomarchy-theme-bg-next` | `themes/engine/scripts` | core/home/config/nomarchy-skill/SKILL.md,features/scripts/utils/nomarchy-wallpaper, +1 more | `kept` | | -| `nomarchy-theme-bg-set` | `themes/engine/scripts` | core/home/config/nomarchy/default/elephant/nomarchy_background_selector.lua | `kept` | | +| `nomarchy-theme-bg-set` | `themes/engine/scripts` | core/home/config/nomarchy/default/elephant/nomarchy_background_selector.lua,features/scripts/utils/nomarchy-wallpaper | `kept` | | | `nomarchy-theme-current` | `themes/engine/scripts` | core/home/config/nomarchy-skill/SKILL.md | `kept` | | | `nomarchy-theme-install` | `themes/engine/scripts` | core/home/config/nomarchy-skill/SKILL.md | `kept` | | | `nomarchy-theme-list` | `themes/engine/scripts` | core/home/config/nomarchy-skill/SKILL.md,features/scripts/utils/nomarchy-theme, +1 more | `kept` | | | `nomarchy-theme-refresh` | `themes/engine/scripts` | — | `unused?` | | | `nomarchy-theme-remove` | `themes/engine/scripts` | — | `unused?` | | -| `nomarchy-theme-set` | `themes/engine/scripts` | core/home/config/nomarchy/default/elephant/nomarchy_themes.lua,core/home/config/nomarchy-skill/SKILL.md, +9 more | `kept` | | +| `nomarchy-theme-set` | `themes/engine/scripts` | core/home/config/nomarchy/default/elephant/nomarchy_themes.lua,core/home/config/nomarchy-skill/SKILL.md, +8 more | `kept` | | | `nomarchy-theme-set-keyboard` | `themes/engine/scripts` | features/scripts/utils/nomarchy-on-boot | `kept` | | | `nomarchy-theme-set-keyboard-asus-rog` | `themes/engine/scripts` | features/scripts/utils/nomarchy-on-boot,themes/engine/scripts/nomarchy-theme-set-keyboard | `kept` | | | `nomarchy-theme-set-keyboard-f16` | `themes/engine/scripts` | features/scripts/utils/nomarchy-on-boot,themes/engine/scripts/nomarchy-theme-set-keyboard | `kept` | | @@ -189,7 +189,7 @@ Phase B (per-batch PRs) refines those into `port-from-omarchy`, | `nomarchy-voxtype-model` | `features/scripts/utils` | features/desktop/waybar/config/config.jsonc,features/desktop/waybar/themes/summer-night/config.jsonc | `kept` | | | `nomarchy-voxtype-remove` | `features/scripts/utils` | — | `unused?` | | | `nomarchy-voxtype-status` | `features/scripts/utils` | features/desktop/waybar/config/config.jsonc,features/desktop/waybar/themes/summer-night/config.jsonc | `kept` | | -| `nomarchy-wallpaper` | `features/scripts/utils` | bin/utils/nomarchy-docs-scripts,core/home/config/nomarchy/default/hypr/autostart.conf, +3 more | `kept` | | +| `nomarchy-wallpaper` | `features/scripts/utils` | bin/utils/nomarchy-docs-scripts,core/home/config/nomarchy/default/hypr/autostart.conf, +2 more | `kept` | | | `nomarchy-webapp-handler-hey` | `features/scripts/utils` | — | `unused?` | | | `nomarchy-webapp-handler-zoom` | `features/scripts/utils` | — | `unused?` | | | `nomarchy-webapp-install` | `features/scripts/utils` | features/scripts/utils/nomarchy-webapp-remove-all | `kept` | | diff --git a/docs/STRUCTURE.md b/docs/STRUCTURE.md index b8a0a56..fe5f91f 100644 --- a/docs/STRUCTURE.md +++ b/docs/STRUCTURE.md @@ -93,7 +93,6 @@ The theming system is the "soul" of Nomarchy, providing dynamic, consistent aest ### `themes/engine/` (The Logic) - **`loader.nix`**: The core theme loader. It reads the active theme from state and selectively deploys app-specific themed configs (e.g., `btop.theme`, `kitty.conf`) to `~/.config/`. - **`stylix.nix`**: Integration with Stylix for base color palette and wallpaper management. -- **`switcher.nix`**: Provides the `nomarchy-theme-selector` and `nomarchy-wallpaper-selector` tools. - **`plymouth.nix`** & **`sddm.nix`**: System-level theming for the boot screen and login manager. ### `themes/palettes/` (The Data) diff --git a/features/apps/walker.nix b/features/apps/walker.nix index 0975570..3862dfb 100644 --- a/features/apps/walker.nix +++ b/features/apps/walker.nix @@ -1,6 +1,8 @@ { config, pkgs, lib, ... }: { + home.packages = [ pkgs.lua ]; + programs.walker = { enable = lib.mkDefault true; runAsService = lib.mkDefault true; diff --git a/features/default.nix b/features/default.nix index af79156..f5962ed 100644 --- a/features/default.nix +++ b/features/default.nix @@ -21,7 +21,6 @@ in ../themes/engine/files.nix ../themes/engine/scripts.nix ../themes/engine/stylix.nix - ../themes/engine/switcher.nix ./apps/alacritty/default.nix ./apps/btop/default.nix ./apps/chromium/default.nix diff --git a/features/scripts/utils/nomarchy-font b/features/scripts/utils/nomarchy-font index 3080153..6bdf84e 100755 --- a/features/scripts/utils/nomarchy-font +++ b/features/scripts/utils/nomarchy-font @@ -15,6 +15,9 @@ case "$COMMAND" in nomarchy-font-list ;; selector|*) - nomarchy-font-selector + theme=$(echo -e "$(nomarchy-font-list)" | nomarchy-launch-walker --dmenu --width 350 -p "Font...") + if [[ -n "$theme" && "$theme" != "CNCLD" ]]; then + nomarchy-font-set "$theme" + fi ;; esac diff --git a/features/scripts/utils/nomarchy-snapshot b/features/scripts/utils/nomarchy-snapshot index 5e32cff..242f5b0 100755 --- a/features/scripts/utils/nomarchy-snapshot +++ b/features/scripts/utils/nomarchy-snapshot @@ -3,7 +3,6 @@ set -e COMMAND="$1" -NOMARCHY_PATH=${NOMARCHY_PATH:-$HOME/.local/share/nomarchy} if [[ -z $COMMAND ]]; then echo "Usage: nomarchy-snapshot " >&2 diff --git a/features/scripts/utils/nomarchy-theme b/features/scripts/utils/nomarchy-theme index 6913ed5..b04bc5d 100755 --- a/features/scripts/utils/nomarchy-theme +++ b/features/scripts/utils/nomarchy-theme @@ -15,6 +15,6 @@ case "$COMMAND" in nomarchy-theme-list ;; selector|*) - nomarchy-theme-selector + nomarchy-launch-walker -m menus:nomarchythemes --width 800 --minheight 400 ;; esac diff --git a/features/scripts/utils/nomarchy-wallpaper b/features/scripts/utils/nomarchy-wallpaper index 6bde562..1c342f5 100755 --- a/features/scripts/utils/nomarchy-wallpaper +++ b/features/scripts/utils/nomarchy-wallpaper @@ -10,14 +10,12 @@ case "$COMMAND" in set) shift # Wallpaper set usually involves writing to state.json and calling swww - # We can reuse the logic from nomarchy-wallpaper-selector if we extract it, - # but for now let's just trigger the selector. - nomarchy-wallpaper-selector + nomarchy-theme-bg-set "$@" ;; next) nomarchy-theme-bg-next ;; selector|*) - nomarchy-wallpaper-selector + nomarchy-launch-walker -m menus:nomarchyBackgroundSelector --width 800 --minheight 400 ;; esac diff --git a/features/scripts/utils/nomarchy-windows-vm b/features/scripts/utils/nomarchy-windows-vm index 000e9ce..e6cd6b2 100755 --- a/features/scripts/utils/nomarchy-windows-vm +++ b/features/scripts/utils/nomarchy-windows-vm @@ -40,12 +40,6 @@ install_windows() { mkdir -p "$HOME/.windows" mkdir -p "$HOME/.config/windows" - mkdir -p "$HOME/.local/share/applications/icons" - - # Install Windows VM icon and desktop file - if [[ -f $NOMARCHY_PATH/applications/icons/windows.png ]]; then - cp "$NOMARCHY_PATH/applications/icons/windows.png" "$HOME/.local/share/applications/icons/windows.png" - fi cat << EOF | tee "$HOME/.local/share/applications/windows-vm.desktop" > /dev/null [Desktop Entry] diff --git a/installer/install.sh b/installer/install.sh index 873abe1..46db20b 100755 --- a/installer/install.sh +++ b/installer/install.sh @@ -1274,6 +1274,11 @@ execute_installation() { info "The system is installed; fix /etc/nixos before rebooting if possible." fi + # 9.10 Set ownership of /etc/nixos to the main user + info "Setting ownership of /etc/nixos for $USERNAME..." + nixos-enter --root /mnt -- chown -R "$USERNAME:users" /etc/nixos + success "Ownership updated" + success "Installation complete!" rm -f "$STATE_FILE" } diff --git a/themes/engine/scripts.nix b/themes/engine/scripts.nix index 51b6464..b8adf42 100644 --- a/themes/engine/scripts.nix +++ b/themes/engine/scripts.nix @@ -41,7 +41,7 @@ let if [ -f "$file" ]; then wrapProgram "$file" \ --prefix PATH : "$deps" \ - --set NOMARCHY_PATH "/etc/nixos/nomarchy" + --set NOMARCHY_PATH "/etc/nixos" fi done ''; diff --git a/themes/engine/scripts/nomarchy-theme-list b/themes/engine/scripts/nomarchy-theme-list index 5fe2e8e..28188e0 100755 --- a/themes/engine/scripts/nomarchy-theme-list +++ b/themes/engine/scripts/nomarchy-theme-list @@ -3,7 +3,7 @@ set -e { find ~/.config/nomarchy/themes/ -mindepth 1 -maxdepth 1 \( -type d -o -type l \) -printf '%f\n' - find "$NOMARCHY_PATH/assets/themes/" -mindepth 1 -maxdepth 1 -type d -printf '%f\n' + find "$NOMARCHY_PATH/themes/palettes/" -mindepth 1 -maxdepth 1 -type d -printf '%f\n' } | sort -u | while read -r name; do echo "$name" | sed -E 's/(^|-)([a-z])/\1\u\2/g; s/-/ /g' done diff --git a/themes/engine/switcher.nix b/themes/engine/switcher.nix deleted file mode 100644 index 2b4cda5..0000000 --- a/themes/engine/switcher.nix +++ /dev/null @@ -1,64 +0,0 @@ -{ config, pkgs, lib, ... }: - -let - nomarchyLib = import ../../lib { inherit lib; }; - themeList = builtins.concatStringsSep "\\n" nomarchyLib.themeNames; - - nomarchy-theme-selector = pkgs.writeShellScriptBin "nomarchy-theme-selector" '' - SELECTED_THEME=$(echo -e "${themeList}" | walker --dmenu) - - if [ -n "$SELECTED_THEME" ]; then - nomarchy-theme-set "$SELECTED_THEME" - fi - ''; - - nomarchy-font-selector = pkgs.writeShellScriptBin "nomarchy-font-selector" '' - STATE_DIR="${config.home.homeDirectory}/.config/nomarchy" - STATE_FILE="$STATE_DIR/state.json" - - mkdir -p "$STATE_DIR" - [[ ! -f $STATE_FILE ]] && echo "{}" > "$STATE_FILE" - - # Simple list of common nerd fonts, could be expanded - FONTS="JetBrainsMono Nerd Font\nRobotoMono Nerd Font\nFiraCode Nerd Font\nUbuntuMono Nerd Font" - SELECTED_FONT=$(echo -e "$FONTS" | walker --dmenu) - - if [ -n "$SELECTED_FONT" ]; then - TMP_JSON=$(mktemp) - jq --arg font "$SELECTED_FONT" '.font = $font' "$STATE_FILE" > "$TMP_JSON" && mv "$TMP_JSON" "$STATE_FILE" - nomarchy-env-update - fi - ''; - - nomarchy-wallpaper-selector = pkgs.writeShellScriptBin "nomarchy-wallpaper-selector" '' - STATE_DIR="${config.home.homeDirectory}/.config/nomarchy" - STATE_FILE="$STATE_DIR/state.json" - THEMES_DIR="${config.xdg.dataHome}/nomarchy/themes" - - mkdir -p "$STATE_DIR" - [[ ! -f $STATE_FILE ]] && echo "{}" > "$STATE_FILE" - - # List all images in all themes backgrounds - # We search in the system-wide flake source for distro wallpapers to avoid Nix Store bloat - WALLPAPERS=$(find "${config.xdg.dataHome}/nomarchy/themes" -type f \( -name "*.jpg" -o -name "*.png" \) 2>/dev/null) - DISTRO_THEMES="/etc/nixos/nomarchy/assets/themes" - if [ -d "$DISTRO_THEMES" ]; then - WALLPAPERS="$WALLPAPERS\n$(find "$DISTRO_THEMES" -type f \( -name "*.jpg" -o -name "*.png" \))" - fi - # Include user themes if they exist - if [ -d "${config.home.homeDirectory}/.config/nomarchy/themes" ]; then - WALLPAPERS="$WALLPAPERS\n$(find "${config.home.homeDirectory}/.config/nomarchy/themes" -type f \( -name "*.jpg" -o -name "*.png" \))" - fi - SELECTED_WP=$(echo -e "$WALLPAPERS" | walker --dmenu) - - if [ -n "$SELECTED_WP" ]; then - TMP_JSON=$(mktemp) - jq --arg wp "$SELECTED_WP" '.wallpaper = $wp' "$STATE_FILE" > "$TMP_JSON" && mv "$TMP_JSON" "$STATE_FILE" - swww img "$SELECTED_WP" --transition-type outer --transition-pos 0.85,0.97 --transition-step 90 & - nomarchy-env-update - fi - ''; -in -{ - home.packages = [ nomarchy-theme-selector nomarchy-font-selector nomarchy-wallpaper-selector ]; -}