feat(system): menu parity for downstream options (slice 1)

Added toggles for updates, battery limit, bluetooth, and printing to the Control Center. Wired default values to read from theme-state.json settings. Verified: V1.
This commit is contained in:
2026-07-06 18:20:00 +01:00
parent eecc214ca9
commit 28e21af206
6 changed files with 57 additions and 9 deletions

View File

@@ -1,6 +1,6 @@
# User-level `nomarchy.*` options — the full surface downstream users
# configure in their home.nix. Kept small on purpose.
{ lib, pkgs, ... }:
{ config, lib, pkgs, ... }:
let
# One output's layout — turned into a Hyprland `monitor` rule in
@@ -224,7 +224,7 @@ in
against upstream and when Flatpak is enabled counts Flatpak
updates, surfacing a Waybar indicator + a notification when something
is available. It never changes anything; you still run sys-update /
home-update / flatpak update yourself'';
home-update / flatpak update yourself'' // { default = config.nomarchy.settings.updates.enable or false; };
interval = lib.mkOption {
type = lib.types.str;

View File

@@ -3,7 +3,7 @@
# Deliberately small: only things a downstream user plausibly disagrees
# with get a toggle. Everything else in the system module is set with
# lib.mkDefault, so plain NixOS options override it natively.
{ lib, ... }:
{ config, lib, ... }:
{
options.nomarchy.system = {
@@ -44,7 +44,7 @@
option'' // { default = true; };
audio.enable = lib.mkEnableOption "the Pipewire audio stack" // { default = true; };
bluetooth.enable = lib.mkEnableOption "Bluetooth support with blueman" // { default = true; };
bluetooth.enable = lib.mkEnableOption "Bluetooth support with blueman" // { default = config.nomarchy.settings.bluetooth.enable or true; };
autoTimezone.enable = lib.mkEnableOption ''
automatic timezone detection (geoclue + automatic-timezoned): the
@@ -102,7 +102,7 @@
batteryChargeLimit = lib.mkOption {
type = lib.types.nullOr (lib.types.ints.between 50 100);
default = null;
default = config.nomarchy.settings.power.batteryChargeLimit or null;
example = 80;
description = ''
Stop charging at this percentage to extend battery lifespan,

View File

@@ -77,7 +77,7 @@ in
printing.enable = lib.mkEnableOption ''
CUPS printing with Avahi/mDNS, so network printers are auto-discovered
(add vendor drivers via `services.printing.drivers`); the menu's
System Printers entry opens the system-config-printer GUI'';
System Printers entry opens the system-config-printer GUI'' // { default = config.nomarchy.settings.printing.enable or false; };
openrgb.enable = lib.mkEnableOption ''
the OpenRGB daemon and GUI for controlling RGB lighting on peripherals