diff --git a/agent/JOURNAL.md b/agent/JOURNAL.md index 02c5b42..16ce43d 100644 --- a/agent/JOURNAL.md +++ b/agent/JOURNAL.md @@ -22,7 +22,12 @@ Template: - **Did:** Audited options and implemented the first slice of missing toggles in the TUI Control Center (`Updates`, `Battery Limit`, `Bluetooth`, `Printing`). Wired `modules/home/options.nix` and `modules/nixos/options.nix` to use `config.nomarchy.settings.*` as defaults. - **Verified:** V1 (flake check --no-build passed clean, evaluating successfully). - **Pending:** user visual review and testing. -- **Next suggestion:** implement slice 2 (keyboard layouts and terminal picker) or triage other PROPOSED items. +- **Next suggestion:** triage other PROPOSED items. + +## 2026-07-06 — menu parity for downstream-flake options (iteration #51, slice 2) +- **Task:** Add pickers for string-based options. +- **Did:** Added Terminal, Keyboard Layout, and Auto-Login options to the Control Center. Wired them to the Nix options via `config.nomarchy.settings.*`. +- **Verified:** V1 (flake check --no-build). ## 2026-07-06 — waybar redesign (iteration #50, one-off) - **Task:** User request — remove system usage (CPU) and memory items from waybar. diff --git a/modules/home/options.nix b/modules/home/options.nix index a47405a..f637d8a 100644 --- a/modules/home/options.nix +++ b/modules/home/options.nix @@ -100,13 +100,13 @@ in # ── Preferences ──────────────────────────────────────────────── terminal = lib.mkOption { type = lib.types.str; - default = "ghostty"; + default = config.nomarchy.settings.terminal or "ghostty"; description = "Terminal emulator command, used by keybinds and $TERMINAL."; }; keyboard.layout = lib.mkOption { type = lib.types.str; - default = "us"; + default = config.nomarchy.settings.keyboard.layout or "us"; example = "de"; description = '' XKB layout for the Hyprland session. The console (and the LUKS diff --git a/modules/nixos/options.nix b/modules/nixos/options.nix index 843a6c6..5f656c3 100644 --- a/modules/nixos/options.nix +++ b/modules/nixos/options.nix @@ -11,7 +11,7 @@ greeter.autoLogin = lib.mkOption { type = lib.types.nullOr lib.types.str; - default = null; + default = config.nomarchy.settings.greeter.autoLogin or null; example = "ada"; description = '' Log this user straight into Hyprland on boot (greetd diff --git a/pkgs/nomarchy-control-center/nomarchy-control-center.sh b/pkgs/nomarchy-control-center/nomarchy-control-center.sh index 46db500..f048ab0 100644 --- a/pkgs/nomarchy-control-center/nomarchy-control-center.sh +++ b/pkgs/nomarchy-control-center/nomarchy-control-center.sh @@ -122,7 +122,7 @@ function appearance_menu() { function toggles_menu() { while true; do - choice=$(gum choose "Auto-commit" "Auto-timezone" "Night Light" "Updates" "Battery Limit" "Bluetooth" "Printing" "Back") + choice=$(gum choose "Auto-commit" "Auto-timezone" "Night Light" "Updates" "Battery Limit" "Bluetooth" "Printing" "Terminal" "Keyboard Layout" "Auto-Login" "Back") case "$choice" in "Auto-commit") cur=$(get_state "settings.autoCommit") @@ -196,6 +196,33 @@ function toggles_menu() { fi sleep 1 ;; + "Terminal") + term=$(gum choose "ghostty" "kitty" "alacritty" "wezterm" "foot") + if [ -n "$term" ]; then + set_state "settings.terminal" "\"$term\"" + echo "Terminal set to $term (requires rebuild)." + fi + sleep 1 + ;; + "Keyboard Layout") + layout=$(gum input --prompt "Enter keyboard layout (e.g. us, de, es): " --placeholder "$(get_state settings.keyboard.layout | tr -d '"')") + if [ -n "$layout" ]; then + set_state "settings.keyboard.layout" "\"$layout\"" + echo "Keyboard layout set to $layout (requires rebuild)." + fi + sleep 1 + ;; + "Auto-Login") + user=$(gum input --prompt "Enter auto-login username (or empty to disable): " --placeholder "$(get_state settings.greeter.autoLogin | tr -d '"')") + if [ -n "$user" ]; then + set_state "settings.greeter.autoLogin" "\"$user\"" + echo "Auto-login set to $user (requires rebuild)." + else + set_state "settings.greeter.autoLogin" "null" + echo "Auto-login disabled (requires rebuild)." + fi + sleep 1 + ;; "Back"|*) break ;; esac done