fix(desktop): unfree CLI default, bar icon spacing, unified clock
All checks were successful
Check / eval (push) Successful in 3m0s

Hardware findings on Latitude: nix-shell blocked unfree; whole-swap
bars collided icon+percentage; clock needed calcurse + one module.

- Export NIXPKGS_ALLOW_UNFREE=1 + ~/.config/nixpkgs/config.nix
- Mono Nerd face + trailing spaces on battery/volume icons (all bars)
- Single clock `HH:MM · Day DD Mon`; calcurse ships with waybar
- V3 queue entries for laptop re-check

Verification: V0 — nix flake check --no-build green; V2/V3 pending on
session (user-visible bar + CLI unfree).
This commit is contained in:
2026-07-10 12:58:37 +01:00
parent eb951569cf
commit d547393e7b
13 changed files with 143 additions and 130 deletions

View File

@@ -8,6 +8,16 @@ the failure as a NOW bug in BACKLOG.md. Machines: the **AMD dev box**
QA machine), the **T14s** (webcam case). QA machine), the **T14s** (webcam case).
## Any machine (dev box is fine) ## Any machine (dev box is fine)
- [ ] **Unfree CLI default (2026-07-10)** — after `sys-rebuild` + new
shell/login: `echo $NIXPKGS_ALLOW_UNFREE``1`; `nix-shell -p
vscode --run 'code --version'` (or another unfree pkg) succeeds
without a manual export; `cat ~/.config/nixpkgs/config.nix` has
`allowUnfree = true`. (Flake-pure `nix shell nixpkgs#…` still may
need `--impure` — that is expected.)
- [ ] **Waybar icon+percentage spacing (2026-07-10)** — switch to
executive-slate (and spot-check boreal/summer): battery glyph and
capacity% do not collide; volume glyph and volume% do not collide.
Unified clock reads as one module (`HH:MM · Day DD Mon`).
- [ ] **Charge-limit live apply (2026-07-10)** — on a laptop with - [ ] **Charge-limit live apply (2026-07-10)** — on a laptop with
`charge_control_end_threshold`: System Battery limit → 80%; `charge_control_end_threshold`: System Battery limit → 80%;
confirm `cat …/charge_control_end_threshold` is 80 without rebuild; confirm `cat …/charge_control_end_threshold` is 80 without rebuild;
@@ -331,16 +341,16 @@ QA machine), the **T14s** (webcam case).
night, executive-slate, boreal) behave the same and their shutdown night, executive-slate, boreal) behave the same and their shutdown
power-button (if present) still opens the lock/logout menu. power-button (if present) still opens the lock/logout menu.
- [ ] **Calendar on the clock click** (iteration #68, item 42) — after - [ ] **Calendar on the unified clock click** (iteration #68 + 2026-07-10
`home-update` + relogin: left-click the Waybar date/clock → calcurse bar polish) — after `home-update` + relogin: the bar shows **one**
opens in a **floating, centered** ghostty window (~60×65% of screen), clock module (`HH:MM · Day DD Mon`, not separate date/time modules);
showing the month calendar; closing calcurse (`q`) closes the window. left-click it → calcurse opens in a **floating, centered** ghostty
The `--class=com.nomarchy.calendar` must match the windowrule (if it window (~60×65% of screen); closing calcurse (`q`) closes the window.
calcurse is a bar package (no template line required). The
`--class=com.nomarchy.calendar` must match the windowrule (if it
tiles, run `hyprctl clients` while open and check the real app-id). tiles, run `hyprctl clients` while open and check the real app-id).
Hover the clock → tooltip shows the long date + zone + month grid. Hover the clock → tooltip shows the long date + zone + month grid.
Same on a whole-swap bar (summer/boreal/executive-slate). If calcurse Same on a whole-swap bar (summer/boreal/executive-slate).
was removed from home.packages, the click toasts "calcurse isn't
installed" instead of doing nothing.
- [ ] **Screenshot annotation (satty)** (iteration #73) — after `home-update`: - [ ] **Screenshot annotation (satty)** (iteration #73) — after `home-update`:
hit SUPER+SHIFT+Print (or Tools ▸ Capture ▸ Annotate region) → a region hit SUPER+SHIFT+Print (or Tools ▸ Capture ▸ Annotate region) → a region
select (slurp) appears, then the `satty` UI opens in fullscreen with the select (slurp) appears, then the `satty` UI opens in fullscreen with the

View File

@@ -66,6 +66,9 @@
home.sessionVariables = { home.sessionVariables = {
TERMINAL = config.nomarchy.terminal; TERMINAL = config.nomarchy.terminal;
NIXOS_OZONE_WL = "1"; # Electron/Chromium native Wayland NIXOS_OZONE_WL = "1"; # Electron/Chromium native Wayland
# Same gate as modules/nixos: CLI nix-shell/shell/run for unfree pkgs
# (system nixpkgs.config alone does not cover those entry points).
NIXPKGS_ALLOW_UNFREE = "1";
# Where the Nomarchy flake (and therefore theme-state.json) lives on # Where the Nomarchy flake (and therefore theme-state.json) lives on
# disk. nomarchy-theme-sync writes its state here; rebuilds read from # disk. nomarchy-theme-sync writes its state here; rebuilds read from
@@ -73,5 +76,12 @@
NOMARCHY_PATH = "$HOME/.nomarchy"; NOMARCHY_PATH = "$HOME/.nomarchy";
}; };
# Classic nix-shell / nix-env read this; pairs with NIXPKGS_ALLOW_UNFREE
# above so "allow unfree" is the default desktop experience, not a
# per-command export the user has to remember.
xdg.configFile."nixpkgs/config.nix".text = ''
{ allowUnfree = true; }
'';
programs.home-manager.enable = true; programs.home-manager.enable = true;
} }

View File

@@ -94,9 +94,9 @@ let
# A distinct --class gives the window a matchable app-id for the # A distinct --class gives the window a matchable app-id for the
# float+center+size windowrule (hyprland.nix); --gtk-single-instance=false # float+center+size windowrule (hyprland.nix); --gtk-single-instance=false
# forces a fresh standalone window (ghostty defaults single-instance on). # forces a fresh standalone window (ghostty defaults single-instance on).
# calcurse ships uncommented in the downstream template (opt-out), so # calcurse is installed with the bar (home.packages below); the gate is
# self-gate with a helpful notify if it's been removed. ghostty is always # only for someone who force-removed it. ghostty is always installed
# installed (ghostty.nix), so it can be relied on for the --class window. # (ghostty.nix), so it can be relied on for the --class window.
calendarLauncher = pkgs.writeShellScriptBin "nomarchy-calendar" '' calendarLauncher = pkgs.writeShellScriptBin "nomarchy-calendar" ''
if ! command -v calcurse >/dev/null 2>&1; then if ! command -v calcurse >/dev/null 2>&1; then
notify-send "Calendar" "calcurse isn't installed (removed from home.packages?)." 2>/dev/null notify-send "Calendar" "calcurse isn't installed (removed from home.packages?)." 2>/dev/null
@@ -200,10 +200,12 @@ let
}; };
clock = { clock = {
format = "{:%H:%M}"; # Single module: time + short date (whole-swaps used to split these
# into clock + clock#date — one click surface for the calendar).
format = "{:%H:%M · %a %d %b}";
# Left-click → the calendar (nomarchy-calendar → calcurse in a floating # Left-click → the calendar (nomarchy-calendar → calcurse in a floating
# ghostty). Replaces the old format-alt date toggle; the long date now # ghostty). Long weekday/month name + zone + month grid ride in the
# rides in the tooltip's first line, so nothing is lost on hover. # tooltip so the bar stays compact.
on-click = "nomarchy-calendar"; on-click = "nomarchy-calendar";
# The zone line stays live under auto-timezone (the tz-watch SIGUSR2 # The zone line stays live under auto-timezone (the tz-watch SIGUSR2
# reload keeps it showing the currently *detected* zone). # reload keeps it showing the currently *detected* zone).
@@ -218,9 +220,12 @@ let
}; };
pulseaudio = { pulseaudio = {
format = "<span size='${toString (t.fonts.size + 2)}pt'>{icon}</span> {volume}%"; # Trailing spaces on icons (not only between span and text): Nerd Font
# glyphs often have tight right bearings and otherwise collide with
# the percentage digits.
format = "<span size='${toString (t.fonts.size + 2)}pt'>{icon}</span> {volume}%";
format-muted = "󰝟"; format-muted = "󰝟";
format-icons.default = [ "󰕿" "󰖀" "󰕾" ]; format-icons.default = [ "󰕿 " "󰖀 " "󰕾 " ];
on-click = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; on-click = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
# Right-click → the full mixer (per-app volumes) in a floating window # Right-click → the full mixer (per-app volumes) in a floating window
# (item 35). pwvucontrol ships in the template suite; the Hyprland # (item 35). pwvucontrol ships in the template suite; the Hyprland
@@ -246,9 +251,10 @@ let
battery = { battery = {
states = { warning = 25; critical = 10; }; states = { warning = 25; critical = 10; };
# Same icon-bearing fix as pulseaudio (see format-icons note there).
format = "<span size='${toString (t.fonts.size + 2)}pt'>{icon}</span> {capacity}%"; format = "<span size='${toString (t.fonts.size + 2)}pt'>{icon}</span> {capacity}%";
format-charging = "<span size='${toString (t.fonts.size + 2)}pt'>󰂄</span> {capacity}%"; format-charging = "<span size='${toString (t.fonts.size + 2)}pt'>󰂄 </span>{capacity}%";
format-icons = [ "󰁺" "󰁼" "󰁾" "󰂀" "󰁹" ]; format-icons = [ "󰁺 " "󰁼 " "󰁾 " "󰂀 " "󰁹 " ];
# Click either the battery or the power-profile icon → the combined # Click either the battery or the power-profile icon → the combined
# power menu (profile + charge cap). The granular System rows stay. # power menu (profile + charge cap). The granular System rows stay.
on-click = "nomarchy-menu powermgmt"; on-click = "nomarchy-menu powermgmt";
@@ -498,7 +504,8 @@ in
# The power-profile helpers on PATH, so both the generated bar and the # The power-profile helpers on PATH, so both the generated bar and the
# whole-swap themes' static waybar.jsonc can exec them by name — plus # whole-swap themes' static waybar.jsonc can exec them by name — plus
# the supervisor hyprland.nix exec-onces. # the supervisor hyprland.nix exec-onces. calcurse is the clock-click
# calendar (feature dependency of the bar, not an opt-in app).
home.packages = lib.optionals config.nomarchy.waybar.enable home.packages = lib.optionals config.nomarchy.waybar.enable
[ waybarSupervisor powerProfileStatus powerProfileCycle vpnStatus doctorStatus calendarLauncher ]; [ waybarSupervisor powerProfileStatus powerProfileCycle vpnStatus doctorStatus calendarLauncher pkgs.calcurse ];
} }

View File

@@ -69,7 +69,11 @@ in
# GPU/wifi drivers, firmware, fonts, …). The custom nixpkgs-config # GPU/wifi drivers, firmware, fonts, …). The custom nixpkgs-config
# type can't carry a nested mkDefault; disagree with # type can't carry a nested mkDefault; disagree with
# `nixpkgs.config = lib.mkForce { allowUnfree = false; }`. # `nixpkgs.config = lib.mkForce { allowUnfree = false; }`.
# `NIXPKGS_ALLOW_UNFREE` covers CLI `nix-shell` / `nix shell` /
# `nix run` (those ignore the system `nixpkgs.config`); pure flake
# eval still needs `--impure` when the env var is the only gate.
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
environment.variables.NIXPKGS_ALLOW_UNFREE = "1";
# ── One keyboard layout everywhere, incl. the LUKS prompt ──────── # ── One keyboard layout everywhere, incl. the LUKS prompt ────────
# services.xserver.xkb.layout is the single source of truth for the # services.xserver.xkb.layout is the single source of truth for the

View File

@@ -86,7 +86,7 @@
mpv # media player mpv # media player
amberol # music player (local library; streaming → spotify below) amberol # music player (local library; streaming → spotify below)
pwvucontrol # PipeWire volume mixer (right-click the Waybar volume) pwvucontrol # PipeWire volume mixer (right-click the Waybar volume)
calcurse # TUI calendar — click the Waybar clock to open it # calcurse ships with the Waybar clock (modules/home/waybar.nix)
# ── More apps — uncomment to add ───────────────────────────────── # ── More apps — uncomment to add ─────────────────────────────────
# Web browsers # Web browsers

View File

@@ -24,7 +24,9 @@
@define-color bad #E2818A; @define-color bad #E2818A;
* { * {
font-family: "GeistMono Nerd Font", "Symbols Nerd Font"; /* Mono Nerd face for status glyphs (tight right bearings on the
proportional Symbols face make icon+percentage collide). */
font-family: "GeistMono Nerd Font", "Symbols Nerd Font Mono";
font-size: 13px; font-size: 13px;
font-weight: 500; font-weight: 500;
border: none; border: none;
@@ -85,13 +87,12 @@ window#waybar {
} }
#custom-nomarchy:hover { color: @accentAlt; } #custom-nomarchy:hover { color: @accentAlt; }
/* ── Clock — mono digits align; date recedes to frost-grey ───────────*/ /* ── Clock — unified time · date ─────────────────────────────────────*/
#clock { #clock {
color: @text; color: @text;
font-weight: 600; font-weight: 600;
padding-left: 4px; padding-left: 4px;
} }
#clock.date { color: @subtext; font-weight: 500; }
/* ── Workspaces — dots that bloom to an aurora pill when active ───────*/ /* ── Workspaces — dots that bloom to an aurora pill when active ───────*/
#workspaces { padding: 0 2px; } #workspaces { padding: 0 2px; }

View File

@@ -10,8 +10,7 @@
"reload_style_on_change": true, "reload_style_on_change": true,
"modules-left": [ "modules-left": [
"custom/nomarchy", "custom/nomarchy",
"clock", "clock"
"clock#date"
], ],
"modules-center": [ "modules-center": [
"hyprland/workspaces" "hyprland/workspaces"
@@ -38,14 +37,10 @@
"tooltip-format": "Nomarchy menu" "tooltip-format": "Nomarchy menu"
}, },
"clock": { "clock": {
"format": "{:%H:%M}", "format": "{:%H:%M · %a %d %b}",
"on-click": "nomarchy-calendar", "on-click": "nomarchy-calendar",
"tooltip": true, "tooltip": true,
"tooltip-format": "{:%Z (UTC%z)}\n<tt><small>{calendar}</small></tt>" "tooltip-format": "{:%A %d %B %Y}\n{:%Z (UTC%z)}\n<tt><small>{calendar}</small></tt>"
},
"clock#date": {
"format": "{:%a %d %b}",
"tooltip": false
}, },
"hyprland/workspaces": { "hyprland/workspaces": {
"disable-scroll": true, "disable-scroll": true,
@@ -101,21 +96,21 @@
}, },
"pulseaudio": { "pulseaudio": {
"scroll-step": 5, "scroll-step": 5,
"format": "<span size='13pt'>{icon}</span> {volume}%", "format": "<span size='13pt'>{icon}</span>{volume}%",
"format-bluetooth": "<span size='13pt'>{icon}</span> {volume}%", "format-bluetooth": "<span size='13pt'>{icon} </span>{volume}%",
"format-bluetooth-muted": " {icon}", "format-bluetooth-muted": " {icon}",
"format-muted": "<span size='13pt'></span> muted", "format-muted": "<span size='13pt'> </span>muted",
"format-icons": { "format-icons": {
"headphone": "", "headphone": " ",
"hands-free": "", "hands-free": " ",
"headset": "", "headset": " ",
"phone": "", "phone": " ",
"portable": "", "portable": " ",
"car": "", "car": " ",
"default": [ "default": [
"", " ",
"", " ",
"" " "
] ]
}, },
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle", "on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",
@@ -128,15 +123,15 @@
"warning": 25, "warning": 25,
"critical": 10 "critical": 10
}, },
"format": "<span size='13pt'>{icon}</span> {capacity}%", "format": "<span size='13pt'>{icon}</span>{capacity}%",
"format-charging": "<span size='13pt'></span> {capacity}%", "format-charging": "<span size='13pt'> </span>{capacity}%",
"format-plugged": "<span size='13pt'></span> {capacity}%", "format-plugged": "<span size='13pt'> </span>{capacity}%",
"format-icons": [ "format-icons": [
"", " ",
"", " ",
"", " ",
"", " ",
"" " "
], ],
"on-click": "nomarchy-menu powermgmt", "on-click": "nomarchy-menu powermgmt",
"tooltip-format": "Battery status" "tooltip-format": "Battery status"

View File

@@ -22,7 +22,9 @@
@define-color bad #D06B71; @define-color bad #D06B71;
* { * {
font-family: "Inter", "Symbols Nerd Font", "JetBrainsMono Nerd Font", sans-serif; /* Mono Nerd face first for status glyphs: proportional "Symbols Nerd
Font" has tight right bearings that make icon+percentage collide. */
font-family: "Symbols Nerd Font Mono", "Inter", "JetBrainsMono Nerd Font", sans-serif;
font-size: 13px; font-size: 13px;
font-weight: 500; font-weight: 500;
border: none; border: none;
@@ -114,10 +116,11 @@ window#waybar {
border-bottom: 2px solid @bad; border-bottom: 2px solid @bad;
} }
/* ── Clock — time (center) and date (left) share the #clock id ───── */ /* ── Clock — unified time · date in one module ───────────────────── */
#clock { #clock {
color: @text; color: @text;
font-weight: 600; font-weight: 600;
font-family: "Inter", "Symbols Nerd Font Mono", sans-serif;
} }
/* ── Status cluster: neutral by default, semantic on state ───────── */ /* ── Status cluster: neutral by default, semantic on state ───────── */

View File

@@ -10,8 +10,7 @@
"reload_style_on_change": true, "reload_style_on_change": true,
"modules-left": [ "modules-left": [
"custom/nomarchy", "custom/nomarchy",
"hyprland/workspaces", "hyprland/workspaces"
"clock#date"
], ],
"modules-center": [ "modules-center": [
"clock" "clock"
@@ -45,14 +44,10 @@
"on-scroll-down": "hyprctl dispatch workspace r-1" "on-scroll-down": "hyprctl dispatch workspace r-1"
}, },
"clock": { "clock": {
"format": "{:%H:%M}", "format": "{:%H:%M · %a %d %b}",
"on-click": "nomarchy-calendar", "on-click": "nomarchy-calendar",
"tooltip": true, "tooltip": true,
"tooltip-format": "{:%Z (UTC%z)}\n<tt><small>{calendar}</small></tt>" "tooltip-format": "{:%A %d %B %Y}\n{:%Z (UTC%z)}\n<tt><small>{calendar}</small></tt>"
},
"clock#date": {
"format": "{:%a %d %b}",
"tooltip": false
}, },
"custom/recording": { "custom/recording": {
"return-type": "json", "return-type": "json",
@@ -87,21 +82,21 @@
}, },
"pulseaudio": { "pulseaudio": {
"scroll-step": 5, "scroll-step": 5,
"format": "<span size='13pt'>{icon}</span> {volume}%", "format": "<span size='13pt'>{icon}</span>{volume}%",
"format-bluetooth": "<span size='13pt'>{icon}</span> {volume}%", "format-bluetooth": "<span size='13pt'>{icon} </span>{volume}%",
"format-bluetooth-muted": " {icon}", "format-bluetooth-muted": " {icon}",
"format-muted": "<span size='13pt'></span> muted", "format-muted": "<span size='13pt'> </span>muted",
"format-icons": { "format-icons": {
"headphone": "", "headphone": " ",
"hands-free": "", "hands-free": " ",
"headset": "", "headset": " ",
"phone": "", "phone": " ",
"portable": "", "portable": " ",
"car": "", "car": " ",
"default": [ "default": [
"", " ",
"", " ",
"" " "
] ]
}, },
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle", "on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",
@@ -120,15 +115,15 @@
"warning": 25, "warning": 25,
"critical": 10 "critical": 10
}, },
"format": "<span size='13pt'>{icon}</span> {capacity}%", "format": "<span size='13pt'>{icon}</span>{capacity}%",
"format-charging": "<span size='13pt'></span> {capacity}%", "format-charging": "<span size='13pt'> </span>{capacity}%",
"format-plugged": "<span size='13pt'></span> {capacity}%", "format-plugged": "<span size='13pt'> </span>{capacity}%",
"format-icons": [ "format-icons": [
"", " ",
"", " ",
"", " ",
"", " ",
"" " "
], ],
"on-click": "nomarchy-menu powermgmt", "on-click": "nomarchy-menu powermgmt",
"tooltip-format": "Battery status" "tooltip-format": "Battery status"

View File

@@ -48,7 +48,6 @@ window#waybar {
#custom-recording, #custom-recording,
#idle_inhibitor, #idle_inhibitor,
#clock, #clock,
#clock-date,
#workspaces, #workspaces,
#pulseaudio, #pulseaudio,
#custom-powerprofile, #custom-powerprofile,

View File

@@ -9,7 +9,7 @@
"spacing": 15, "spacing": 15,
"reload_style_on_change": true, "reload_style_on_change": true,
"modules-left": ["custom/launcher", "clock", "clock#date"], "modules-left": ["custom/launcher", "clock"],
"modules-center": ["hyprland/workspaces"], "modules-center": ["hyprland/workspaces"],
"modules-right": ["custom/recording", "idle_inhibitor", "pulseaudio", "custom/powerprofile", "custom/nightlight", "hyprland/language", "custom/updates", "battery", "tray", "custom/vpn", "custom/doctor", "custom/notification", "custom/powermenu"], "modules-right": ["custom/recording", "idle_inhibitor", "pulseaudio", "custom/powerprofile", "custom/nightlight", "hyprland/language", "custom/updates", "battery", "tray", "custom/vpn", "custom/doctor", "custom/notification", "custom/powermenu"],
@@ -37,18 +37,18 @@
}, },
"pulseaudio": { "pulseaudio": {
"format": "<span size='13pt'>{icon}</span> {volume}%", "format": "<span size='13pt'>{icon}</span>{volume}%",
"format-bluetooth": "<span size='13pt'>{icon} </span> {volume}%", "format-bluetooth": "<span size='13pt'>{icon}  </span>{volume}%",
"format-bluetooth-muted": "  muted", "format-bluetooth-muted": "  muted",
"format-muted": "<span size='13pt'></span> muted", "format-muted": "<span size='13pt'> </span>muted",
"format-icons": { "format-icons": {
"headphone": "", "headphone": " ",
"hands-free": "", "hands-free": " ",
"headset": "", "headset": " ",
"phone": "", "phone": " ",
"portable": "", "portable": " ",
"car": "", "car": " ",
"default": ["", "", ""] "default": [" ", " ", " "]
}, },
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle", "on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",
"on-click-right": "pwvucontrol", "on-click-right": "pwvucontrol",
@@ -58,26 +58,21 @@
"battery": { "battery": {
"interval": 60, "interval": 60,
"states": { "warning": 25, "critical": 10 }, "states": { "warning": 25, "critical": 10 },
"max-length": 10, "max-length": 14,
"format": "<span size='13pt'>{icon}</span> {capacity}%", "format": "<span size='13pt'>{icon}</span>{capacity}%",
"format-charging": "<span size='13pt'></span> {capacity}%", "format-charging": "<span size='13pt'> </span>{capacity}%",
"format-plugged": "<span size='13pt'></span> {capacity}%", "format-plugged": "<span size='13pt'> </span>{capacity}%",
"format-full": " 100%", "format-full": " 100%",
"format-icons": ["", "", "", "", ""], "format-icons": [" ", " ", " ", " ", " "],
"on-click": "nomarchy-menu powermgmt", "on-click": "nomarchy-menu powermgmt",
"tooltip-format": "Battery status" "tooltip-format": "Battery status"
}, },
"clock": { "clock": {
"format": " {:%H:%M}", "format": " {:%H:%M · %a %d %b}",
"on-click": "nomarchy-calendar", "on-click": "nomarchy-calendar",
"tooltip": true, "tooltip": true,
"tooltip-format": "{:%Z (UTC%z)}\n<tt><small>{calendar}</small></tt>" "tooltip-format": "{:%A %d %B %Y}\n{:%Z (UTC%z)}\n<tt><small>{calendar}</small></tt>"
},
"clock#date": {
"format": " {:%A, %B %d, %Y}",
"tooltip": false
}, },
"tray": { "spacing": 8 }, "tray": { "spacing": 8 },

View File

@@ -53,7 +53,6 @@ window#waybar {
#custom-nomarchy, #custom-nomarchy,
#custom-recording, #custom-recording,
#clock, #clock,
#clock.date,
#workspaces, #workspaces,
#pulseaudio, #pulseaudio,
#custom-powerprofile, #custom-powerprofile,

View File

@@ -9,7 +9,7 @@
"spacing": 15, "spacing": 15,
"reload_style_on_change": true, "reload_style_on_change": true,
"modules-left": ["custom/nomarchy", "clock", "clock#date"], "modules-left": ["custom/nomarchy", "clock"],
"modules-center": ["hyprland/workspaces"], "modules-center": ["hyprland/workspaces"],
"modules-right": ["custom/recording", "idle_inhibitor", "pulseaudio", "custom/powerprofile", "custom/nightlight", "hyprland/language", "custom/updates", "battery", "tray", "custom/vpn", "custom/doctor", "custom/notification", "custom/powermenu"], "modules-right": ["custom/recording", "idle_inhibitor", "pulseaudio", "custom/powerprofile", "custom/nightlight", "hyprland/language", "custom/updates", "battery", "tray", "custom/vpn", "custom/doctor", "custom/notification", "custom/powermenu"],
@@ -38,18 +38,18 @@
"pulseaudio": { "pulseaudio": {
"scroll-step": 5, "scroll-step": 5,
"format": "<span size='13pt'>{icon}</span> {volume}%", "format": "<span size='13pt'>{icon}</span>{volume}%",
"format-bluetooth": "<span size='13pt'>{icon}</span> {volume}%", "format-bluetooth": "<span size='13pt'>{icon} </span>{volume}%",
"format-bluetooth-muted": " {icon}", "format-bluetooth-muted": " {icon}",
"format-muted": "<span size='13pt'></span> muted", "format-muted": "<span size='13pt'> </span>muted",
"format-icons": { "format-icons": {
"headphone": "", "headphone": " ",
"hands-free": "", "hands-free": " ",
"headset": "", "headset": " ",
"phone": "", "phone": " ",
"portable": "", "portable": " ",
"car": "", "car": " ",
"default": ["", "", ""] "default": [" ", " ", " "]
}, },
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle", "on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",
"on-click-right": "pwvucontrol", "on-click-right": "pwvucontrol",
@@ -59,24 +59,19 @@
"battery": { "battery": {
"interval": 30, "interval": 30,
"states": { "warning": 25, "critical": 10 }, "states": { "warning": 25, "critical": 10 },
"format": "<span size='13pt'>{icon}</span> {capacity}%", "format": "<span size='13pt'>{icon}</span>{capacity}%",
"format-charging": "<span size='13pt'></span> {capacity}%", "format-charging": "<span size='13pt'> </span>{capacity}%",
"format-plugged": "<span size='13pt'></span> {capacity}%", "format-plugged": "<span size='13pt'> </span>{capacity}%",
"format-icons": ["", "", "", "", ""], "format-icons": [" ", " ", " ", " ", " "],
"on-click": "nomarchy-menu powermgmt", "on-click": "nomarchy-menu powermgmt",
"tooltip-format": "Battery status" "tooltip-format": "Battery status"
}, },
"clock": { "clock": {
"format": " {:%H:%M}", "format": " {:%H:%M · %a %d %b}",
"on-click": "nomarchy-calendar", "on-click": "nomarchy-calendar",
"tooltip": true, "tooltip": true,
"tooltip-format": "{:%Z (UTC%z)}\n<tt><small>{calendar}</small></tt>" "tooltip-format": "{:%A %d %B %Y}\n{:%Z (UTC%z)}\n<tt><small>{calendar}</small></tt>"
},
"clock#date": {
"format": " {:%A, %B %d, %Y}",
"tooltip": false
}, },
"tray": { "spacing": 8 }, "tray": { "spacing": 8 },