feat(system): menu parity for downstream options (slice 2)
Added pickers for terminal, keyboard layout, and auto-login to the Control Center TUI, wiring them directly to Nix defaults via theme-state.json settings. Verified: V1.
This commit is contained in:
@@ -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.
|
- **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).
|
- **Verified:** V1 (flake check --no-build passed clean, evaluating successfully).
|
||||||
- **Pending:** user visual review and testing.
|
- **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)
|
## 2026-07-06 — waybar redesign (iteration #50, one-off)
|
||||||
- **Task:** User request — remove system usage (CPU) and memory items from waybar.
|
- **Task:** User request — remove system usage (CPU) and memory items from waybar.
|
||||||
|
|||||||
@@ -100,13 +100,13 @@ in
|
|||||||
# ── Preferences ────────────────────────────────────────────────
|
# ── Preferences ────────────────────────────────────────────────
|
||||||
terminal = lib.mkOption {
|
terminal = lib.mkOption {
|
||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
default = "ghostty";
|
default = config.nomarchy.settings.terminal or "ghostty";
|
||||||
description = "Terminal emulator command, used by keybinds and $TERMINAL.";
|
description = "Terminal emulator command, used by keybinds and $TERMINAL.";
|
||||||
};
|
};
|
||||||
|
|
||||||
keyboard.layout = lib.mkOption {
|
keyboard.layout = lib.mkOption {
|
||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
default = "us";
|
default = config.nomarchy.settings.keyboard.layout or "us";
|
||||||
example = "de";
|
example = "de";
|
||||||
description = ''
|
description = ''
|
||||||
XKB layout for the Hyprland session. The console (and the LUKS
|
XKB layout for the Hyprland session. The console (and the LUKS
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
greeter.autoLogin = lib.mkOption {
|
greeter.autoLogin = lib.mkOption {
|
||||||
type = lib.types.nullOr lib.types.str;
|
type = lib.types.nullOr lib.types.str;
|
||||||
default = null;
|
default = config.nomarchy.settings.greeter.autoLogin or null;
|
||||||
example = "ada";
|
example = "ada";
|
||||||
description = ''
|
description = ''
|
||||||
Log this user straight into Hyprland on boot (greetd
|
Log this user straight into Hyprland on boot (greetd
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ function appearance_menu() {
|
|||||||
|
|
||||||
function toggles_menu() {
|
function toggles_menu() {
|
||||||
while true; do
|
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
|
case "$choice" in
|
||||||
"Auto-commit")
|
"Auto-commit")
|
||||||
cur=$(get_state "settings.autoCommit")
|
cur=$(get_state "settings.autoCommit")
|
||||||
@@ -196,6 +196,33 @@ function toggles_menu() {
|
|||||||
fi
|
fi
|
||||||
sleep 1
|
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 ;;
|
"Back"|*) break ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|||||||
Reference in New Issue
Block a user