Skip to content

✨ feat(mangowm): organize Waybar by zones with quick settings and an updates counter - #9

Merged
anthonyportugal merged 5 commits into
mainfrom
feat/waybar-redesign
Nov 14, 2026
Merged

anthonyportugal merged 5 commits into
mainfrom
feat/waybar-redesign

Conversation

@anthonyportugal

Copy link
Copy Markdown
Owner

Reorganizes the MangoWM Waybar into zones and makes the right side lighter. This is the first part of the F6c visual polish; fastfetch follows in a separate PR.

Layout

  • Left: launcher · layout · workspaces · music. The layout sits before the workspaces, so opening or emptying a workspace no longer moves anything. Empty workspaces stay hidden (mango/workspaces with hide-empty).
  • Centre: the clock. A click still shows the date. The REC chip appears next to it only while recording.
  • Right: night light and screen-always-on show only while they are on. Then come the updates counter, a bell, volume, network, bluetooth, the keyboard (only with several layouts), battery and power.
  • Two bars from one modules.json: laptop panels (eDP-1, eDP-2) get a compact bar, with music, network and bluetooth as icons only, plus brightness. External monitors get the full bar.

Modules

  • Layouts: each of the 14 mango layouts has its own icon. Tiling layouts have an accent outline, scrolling layouts (S, VS) a teal outline, and stacking layouts (M, K, VK) are filled.
  • Network: distinct states for wifi off, on but not connected, connected (signal icon and ESSID), and connected without an IP. With a cable, ethernet is shown as the active route.
  • Bluetooth:
    • hidden without an adapter;
    • dim when off and neutral when on;
    • connected shows the device alias and its battery when reported.
  • Bell:
    • a click opens quick settings: night light, screen always on, do not disturb, power profile and the last notification;
    • a right click toggles mako's do-not-disturb mode, which still lets critical alerts through;
    • hovering reveals the tray.
  • Updates:
    • checkupdates runs 2 minutes after login and every 3 hours, retrying 3 times if the sync fails;
    • it recounts without downloading after every pacman transaction (a path unit on db.lck);
    • it is hidden at 0 and a click opens shelly upgrade.
    • Adds pacman-contrib.
  • Power profile: leaves the bar. It stays in quick settings and on Super+Shift+P.
  • Styling: every clickable module shares the same hover background. Removes the undefined @blue colour.

Portability guard

hooks/validate rejected eDP-N. It now accepts only the output line of the bars in waybar/config.json with eDP-N selectors. Any other output name still fails, and a test pins this.

Testing

  • New layers/wm/mangowm/tests/waybar-smoke.sh (smoke stage 5) covers:
    • the bar contract and module states;
    • quick settings, do not disturb and the updates counter, including retries, a failed write and separate temporary files per writer;
    • the narrowed guard.
  • Scaffold and session smoke tests updated for the split config.
  • Waybar 0.16 loads the real config and CSS without errors.
  • systemd-run accepts the transient timer and path units on the host.
  • tests/smoke.sh passes.

After merging

Run dotfiles sync, which installs pacman-contrib, then systemctl --user restart mangowm-waybar mangowm-mako. The updates timer starts at the next login.

…ates counter

Night light, screen-always-on and the keyboard layout now hide from the bar when they have nothing to show. A bell opens a quick settings menu and toggles mako's do-not-disturb mode. checkupdates runs 2 minutes after login and every 3 hours, and recounts without downloading after each pacman transaction.
… selectors

Waybar needs eDP-N to give laptop panels a compact bar. The guard accepts only that output line in waybar/config.json; any other output name still fails.
Left holds the layout, workspaces and music so new workspaces never move anything; the centre holds the clock; the right is lighter. Each of the 14 mango layouts has its own icon, styled by family, and network and bluetooth show distinct states. Modules live in modules.json, shared by a full bar and an eDP compact bar.
…t and show the keyboard when layouts are unknown

A check without network at login now retries 3 times, 5 minutes apart, instead of waiting 3 hours. Each counter writer uses its own temporary file, so a timer check and a pacman refresh can overlap. With no xkb_rules_layout in mango's config the keyboard indicator stays visible.
store runs under && and ||, where errexit is off, so a failed mktemp, write or rename reported success. Each step now fails explicitly and the temporary file is removed.
@anthonyportugal
anthonyportugal merged commit 64b4177 into main Nov 14, 2026
6 checks passed
@anthonyportugal
anthonyportugal deleted the feat/waybar-redesign branch November 14, 2026 02:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant