From 9adfac969af75a09054f1eb6f1894ab6bdf8b2a5 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Tue, 15 Sep 2026 16:53:34 +0200 Subject: feat: split the bar in two on DP-3 DP-3 is rotated, so a bar there is 1080px wide rather than 1920, and one bar holding every module was too crowded. Status sits on top now, the desktop itself along the bottom: workspaces on the left, open windows on the right. Both bars are one waybar process reading one stylesheet, because waybar takes a top-level array of bars, so the two cannot drift apart. Presentation mode is the statusctl-backed module the DP-1 bar already runs, rather than the wb-idle module written for this bar. It talks to files under XDG_RUNTIME_DIR instead of to quickshell, so it keeps working while the shell is down, and it already emits a state class, so the glyphs are simply dropped and the icon chosen in CSS. wb-idle and its module are gone. The module needs a format of one space. It defaults to "{text}", statusctl emits an empty text, and waybar draws no widget at all for a custom module whose formatted output is empty: not an empty pill, no pill. That is the same trap the launcher hit, and it cost a wrong diagnosis on the way: a min-height was added first on the theory that the pill was collapsing, which was treating a symptom of a widget that did not exist. A forced red background proved it was never drawn at all. Co-Authored-By: Claude Opus 5 --- config.jsonc | 111 +++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 69 insertions(+), 42 deletions(-) (limited to 'config.jsonc') diff --git a/config.jsonc b/config.jsonc index 0c9dbc6..a7c5ff9 100644 --- a/config.jsonc +++ b/config.jsonc @@ -1,49 +1,76 @@ -// waybar-theme-udt: the bar on DP-3. +// waybar-theme-udt: two bars on DP-3. // Copyright (C) 2026 Danilo M. // Licensed under the GNU General Public License v2 only. // +// A top-level array is how waybar takes more than one bar. Both bars are one +// process reading one stylesheet, so the pills stay consistent between them. +// +// DP-3 is rotated, so the bar is 1080px rather than 1920: one bar holding +// everything was too crowded at that width. Status lives on top, the desktop +// (workspaces and open windows) along the bottom. +// // One file per module, included explicitly: wildcard `include` has been broken // since waybar v0.14.0, so every module file has to be listed by name. -{ - "include": [ - "$HOME/.config/waybar-udt/modules/image/launcher.jsonc", - "$HOME/.config/waybar-udt/modules/clock.jsonc", - "$HOME/.config/waybar-udt/modules/hyprland/workspaces.jsonc", - "$HOME/.config/waybar-udt/modules/custom/vmdot.jsonc", - "$HOME/.config/waybar-udt/modules/extras/taskbar.jsonc", - "$HOME/.config/waybar-udt/modules/custom/privacy_dots.jsonc", - "$HOME/.config/waybar-udt/modules/image/volume.jsonc", - "$HOME/.config/waybar-udt/modules/extras/tray.jsonc", - "$HOME/.config/waybar-udt/modules/image/idle_inhibitor.jsonc", - "$HOME/.config/waybar-udt/modules/image/language.jsonc", - ], +[ + { + "include": [ + "$HOME/.config/waybar-udt/modules/clock.jsonc", + "$HOME/.config/waybar-udt/modules/custom/vmdot.jsonc", + "$HOME/.config/waybar-udt/modules/image/launcher.jsonc", + "$HOME/.config/waybar-udt/modules/custom/privacy_dots.jsonc", + "$HOME/.config/waybar-udt/modules/image/volume.jsonc", + "$HOME/.config/waybar-udt/modules/extras/tray.jsonc", + "$HOME/.config/waybar-udt/modules/custom/presentation.jsonc", + "$HOME/.config/waybar-udt/modules/image/language.jsonc", + ], + + "modules-left": [ + "clock#date", + "clock#time", + "custom/vmdot" + ], + "modules-center": [ + "image#launcher" + ], + "modules-right": [ + "custom/privacy_dots", + "group/volume", + "tray", + "custom/presentation", + "image#lang" + ], + + "layer": "top", + "output": "DP-3", + "position": "top", + "height": 0, + "width": 0, + "margin": 0, + "spacing": 0, + "mode": "dock", + "reload_style_on_change": true + }, + { + "include": [ + "$HOME/.config/waybar-udt/modules/hyprland/workspaces.jsonc", + "$HOME/.config/waybar-udt/modules/extras/taskbar.jsonc", + ], - // Clusters, not a continuous strip: the stylesheet welds neighbours - // together and leaves gaps between groups. - "modules-left": [ - "image#launcher", - "clock#date", - "clock#time", - "hyprland/workspaces", - "custom/vmdot" - ], - "modules-center": [ - "wlr/taskbar" - ], - "modules-right": [ - "custom/privacy_dots", - "group/volume", - "tray", - "image#idle", - "image#lang" - ], + "modules-left": [ + "hyprland/workspaces" + ], + "modules-right": [ + "wlr/taskbar" + ], - "layer": "top", - "output": "DP-3", - "height": 0, - "width": 0, - "margin": 0, - "spacing": 0, - "mode": "dock", - "reload_style_on_change": true -} + "layer": "top", + "output": "DP-3", + "position": "bottom", + "height": 0, + "width": 0, + "margin": 0, + "spacing": 0, + "mode": "dock", + "reload_style_on_change": true + } +] -- cgit v1.2.3