DankMaterialShell icon indicating copy to clipboard operation
DankMaterialShell copied to clipboard

Hiding media widget when no media is playing breaks dankbar

Open c0lt0nM opened this issue 3 months ago • 2 comments

Compositor

  • [X] niri

Distribution

Arch

dms version

v0.4.3

Description

With a specific order of operations it is possible to mess up dankbar

Expected Behavior

Hiding media controls from dankbar should not cause widgets to disappear / re-order

Steps to Reproduce

  1. Reorder middle widgets to Clock, Media Controls, Weather
  2. Close any media so that the media controls hide themselves (empty space will be displayed between Clock and Weather)
  3. Hide the media widget in settings using the eyeball icon
  4. Clock and Weather suddenly shift to the far left of the bar

Error Messages/Logs

██████╗ █████╗ ███╗ ██╗██╗ ██╗ ██╔══██╗██╔══██╗████╗ ██║██║ ██╔╝ ██║ ██║███████║██╔██╗ ██║█████╔╝ ██║ ██║██╔══██║██║╚██╗██║██╔═██╗ ██████╔╝██║ ██║██║ ╚████║██║ ██╗ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝ INFO go: DMS API Server listening on: /run/user/1000/danklinux-31752.sock INFO go: API Version: 15 INFO go: Protocol: JSON over Unix socket INFO go: Request format: {"id": , "method": "...", "params": {...}} INFO go: Response format: {"id": , "result": {...}} or {"id": , "error": "..."} INFO go: INFO go: Initializing managers... INFO go: INFO go: Attempting to initialize Wayland gamma control... INFO go: setupRegistry: starting registry setup INFO go: setupRegistry: found zwlr_gamma_control_manager_v1 INFO go: setupRegistry: gamma control manager bound successfully INFO go: Bound wl_output id=5 registry_name=42 INFO go: Output 5 name: HDMI-A-1 INFO go: setupRegistry: discovered gamma_manager=true, outputs=1 INFO go: setupRegistry: filtered 1 physical outputs from 1 total outputs INFO go: setupRegistry: completed successfully (gamma controls will be initialized when enabled) INFO go: D-Bus monitoring for suspend/resume events enabled INFO go: Wayland gamma control initialized successfully INFO go: Attempting to initialize DWL IPC... INFO go: DWL: starting registry setup INFO go: Network backend detection: NetworkManager present. Using NM API. INFO go: DWL: Bound wl_output id=9 registry_name=42 INFO go: DWL: manager not found in registry INFO go: Wayland event dispatcher started INFO go: INFO go: Ready! Capabilities: [plugins gamma] INFO go: Brightness manager initialized INFO go: Sysfs backend initialized with 1 devices INFO go: [BluezManager] found adapter: /org/bluez/hci0 INFO go: Logind backend initialized - will use for brightness control INFO go: [BluezAgent] registered at /com/danklinux/bluez/agent with capability KeyboardDisplay INFO go: Bluez manager initialized INFO go: Freedesktop manager initialized INFO go: Loginctl manager initialized INFO go: [SecretAgent] Registered with NetworkManager (id=com.danklinux.NMAgent, unique name=:1.163, fixed path=/org/freedesktop/NetworkManager/SecretAgent) INFO go: Network manager initialized [32m INFO[0m: Launching config: "/usr/share/quickshell/dms/shell.qml" [32m INFO[0m: Shell ID: "85ecfc916fcda75f6106502e8dabb0ab" Path ID "85ecfc916fcda75f6106502e8dabb0ab" [32m INFO[0m: Saving logs to "/run/user/1000/quickshell/by-id/8io9deh5t/log.qslog" INFO go: DDC backend initialized [32m INFO[97m qml[0m: AudioService: Sound effects enabled [32m INFO[97m qml[0m: NetworkService: Initializing... [32m INFO[97m qml[0m: PolkitService: Initialized successfully [32m INFO[97m qml[0m: IdleService: Initialized with idle monitoring support [33m WARN[97m quickshell.I3.ipc[0m: $I3SOCK is unset. Trying $SWAYSOCK. [33m WARN[97m quickshell.I3.ipc[0m: $SWAYSOCK and I3SOCK are unset. Cannot connect to socket. [32m INFO[0m: Configuration Loaded [32m INFO[97m qt.multimedia.ffmpeg[0m: Using Qt multimedia with FFmpeg version n8.0 GPL version 3 or later [33m WARN[0m: parseSamplingRates: parse error "Object: size 136, type Spa:Pod:Object:Param:Format (262147), id Spa:Enum:ParamId:EnumFormat (3)" " Prop: key Spa:Pod:Object:Param:Format:mediaType (1), flags 00000000" " Id 1 (Spa:Enum:MediaType:audio)" " Prop: key Spa:Pod:Object:Param:Format:mediaSubtype (2), flags 00000000" " Id 1 (Spa:Enum:MediaSubtype:raw)" " Prop: key Spa:Pod:Object:Param:Format:Audio:format (65537), flags 00000000" " Id 518 (Spa:Enum:AudioFormat:F32P)" " Prop: key Spa:Pod:Object:Param:Format:Audio:channels (65540), flags 00000000" " Int 1" " Prop: key Spa:Pod:Object:Param:Format:Audio:position (65541), flags 00000000" " Array: child.size 4, child.type Spa:Id" " Id 2 (Spa:Enum:AudioChannel:MONO)" [33m WARN[97m scene[0m: QML FileView at @Common/SettingsData.qml[897:5]: Read of /home/redacted/.config/DankMaterialShell/plugin_settings.json failed: File does not exist. Input #0, wav, from '/usr/share/quickshell/dms/assets/sounds/freedesktop/audio-volume-change.wav': Metadata: encoder : Lavf62.3.100 Duration: 00:00:00.06, bitrate: 1420 kb/s Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s [33m WARN[97m qml[0m: I18n: Falling back to built-in English strings Input #0, wav, from '/usr/share/quickshell/dms/assets/sounds/freedesktop/message.wav': Metadata: encoder : Lavf62.3.100 Duration: 00:00:00.31, bitrate: 1413 kb/s Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s Input #0, wav, from '/usr/share/quickshell/dms/assets/sounds/freedesktop/message-new-instant.wav': Metadata: encoder : Lavf62.3.100 Duration: 00:00:01.03, bitrate: 1411 kb/s Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s Input #0, wav, from '/usr/share/quickshell/dms/assets/sounds/plasma/power-plug.wav': Metadata: encoder : Lavf62.3.100 Duration: 00:00:03.00, bitrate: 1411 kb/s Input #0, wav, from '/usr/share/quickshell/dms/assets/sounds/plasma/power-unplug.wav': Metadata: encoder : Lavf62.3.100 Duration: 00:00:03.00, bitrate: 1411 kb/s Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s [33m WARN[97m quickshell.service.polkit.listener[0m: failed to register listener: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: An authentication agent already exists for the given subject [33m WARN[97m quickshell.service.polkit[0m: failed to register listener on path "/org/quickshell/PolkitAgent" [32m INFO[97m qml[0m: Detected distribution: Arch Linux [32m INFO[97m qml[0m: CompositorService: Detected Niri with socket: /run/user/1000/niri.wayland-1.27654.sock [32m INFO[97m qml[0m: Theme: Setting desired theme - hex mode: dark type: undefined [32m INFO[97m qml[0m: NiriService: Generated binds config at /home/redacted/.config/niri/dms/wpblur.kdl [32m INFO[97m qml[0m: NiriService: Generated binds config at /home/redacted/.config/niri/dms/wpblur.kdl [32m INFO[97m qml[0m: NetworkService: Network capability detected, using DMSNetworkService [32m INFO[97m qml[0m: NetworkService: Switched to DMSNetworkService, networkAvailable: true [32m INFO[97m qml[0m: DMSService: Connected (API v15) - ["plugins","network","loginctl","freedesktop","gamma","bluetooth","brightness"] [32m INFO[97m qml[0m: NiriService: Loaded 1 outputs [32m INFO[97m qml[0m: CompositorService: Detected Niri with socket: /run/user/1000/niri.wayland-1.27654.sock [32m INFO[97m qml[0m: NiriService: Generated binds config at /home/redacted/.config/niri/dms/wpblur.kdl [32m INFO[97m qml[0m: NiriService: Generated binds config at /home/redacted/.config/niri/dms/wpblur.kdl [32m INFO[97m qml[0m: SessionService: Native inhibitor available: true [32m INFO[97m qml[0m: NiriService: Generated layout config at /home/redacted/.config/niri/dms/layout.kdl [32m INFO[97m qml[0m: Theme: Matugen worker completed successfully [33m WARN[97m scene[0m: QML QQuickImage at @Widgets/DankCircularImage.qml[21:5]: Cannot open: file:///home/redacted/.face [33m WARN[97m qml[0m: SystemUpdate: No update checker found. Will use package manager.

c0lt0nM avatar Nov 09 '25 23:11 c0lt0nM

I've now realized that the issue also occurs when first logging in, it all seems to be related to the media controls widget being between clock and weather. For what it's worth I reordered it in hopes of achieving a more symmetrical aesthetic. My hope was that when the media controls disappeared because there was no media playing that it would not take up any space, meaning that my clock and weather would be beside each other, and then media would appear between them when I started playing media.

c0lt0nM avatar Nov 10 '25 00:11 c0lt0nM

Testing updates in the following commit: c52483da2ccbc39608207d0b747e256f1e4f5bb7

Purian23 avatar Nov 10 '25 00:11 Purian23