feat: keymap/locale + form factor in installer; nm-applet visible by default
- Installer prompts for keyboard layout (with optional variant) and locale
via curated short list + Other… fallback into the full localectl list;
applies to the live session immediately (loadkeys + hyprctl) so the
rest of the install types correctly. Generated system.nix emits
console.keyMap, i18n.defaultLocale, and services.xserver.xkb.{layout,
variant}.
- New nomarchy.{system,}.formFactor enum (laptop|desktop, default laptop).
Installer auto-detects via /sys/class/power_supply/BAT* and lets the
user flip the answer. Waybar drops the battery widget on desktop;
battery-monitor service is gated on the same option.
- Lift waybar tray out of the collapsed group/tray-expander in the default
theme so nm-applet's icon is visible without expanding the drawer.
- Live ISOs (TTY + graphical) get baseline mkDefault keyMap/locale so the
installer's runtime override always wins.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
"modules-left": ["custom/nomarchy", "hyprland/workspaces"],
|
||||
"modules-center": ["clock", "custom/update", "custom/voxtype", "custom/screenrecording-indicator", "custom/idle-indicator", "custom/notification-silencing-indicator"],
|
||||
"modules-right": [
|
||||
"group/tray-expander",
|
||||
"tray",
|
||||
"bluetooth",
|
||||
"network",
|
||||
"pulseaudio",
|
||||
@@ -120,22 +120,6 @@
|
||||
"default": ["", "", ""]
|
||||
}
|
||||
},
|
||||
"group/tray-expander": {
|
||||
"orientation": "inherit",
|
||||
"drawer": {
|
||||
"transition-duration": 600,
|
||||
"children-class": "tray-group-item"
|
||||
},
|
||||
"modules": ["custom/expand-icon", "tray"]
|
||||
},
|
||||
"custom/expand-icon": {
|
||||
"format": "",
|
||||
"tooltip": false,
|
||||
"on-scroll-up": "",
|
||||
"on-scroll-down": "",
|
||||
"on-scroll-left": "",
|
||||
"on-scroll-right": ""
|
||||
},
|
||||
"custom/screenrecording-indicator": {
|
||||
"on-click": "nomarchy-cmd-screenrecord",
|
||||
"exec": "~/.config/nomarchy/default/waybar/indicators/screen-recording.sh",
|
||||
|
||||
@@ -15,14 +15,31 @@ let
|
||||
# Selected files
|
||||
configFile = if hasThemeConfig then (themeDir + "/config.jsonc") else defaultConfig;
|
||||
styleFile = if hasThemeStyle then (themeDir + "/style.css") else defaultStyle;
|
||||
|
||||
|
||||
rawSettings = builtins.fromJSON (builtins.readFile configFile);
|
||||
|
||||
# Modules that only make sense on a laptop. Filtered out of any
|
||||
# `modules-*` slot when nomarchy.formFactor != "laptop" so a desktop
|
||||
# build doesn't ship a permanently-empty battery indicator.
|
||||
laptopOnlyModules = [ "battery" "custom/battery" ];
|
||||
filterModules = mods:
|
||||
if config.nomarchy.formFactor == "laptop"
|
||||
then mods
|
||||
else builtins.filter (m: !(builtins.elem m laptopOnlyModules)) mods;
|
||||
|
||||
settings = rawSettings // {
|
||||
modules-left = filterModules (rawSettings.modules-left or []);
|
||||
modules-center = filterModules (rawSettings.modules-center or []);
|
||||
modules-right = filterModules (rawSettings.modules-right or []);
|
||||
};
|
||||
|
||||
in
|
||||
{
|
||||
programs.waybar = {
|
||||
enable = lib.mkDefault true;
|
||||
systemd.enable = lib.mkDefault true;
|
||||
|
||||
settings = lib.mkDefault [ (builtins.fromJSON (builtins.readFile configFile)) ];
|
||||
|
||||
settings = lib.mkDefault [ settings ];
|
||||
style = lib.mkDefault (builtins.readFile styleFile);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user