AvengeMedia / AvengeMedia/DankMaterialShell

[MangoWC][Frame Mode] Connected breaks Dash IPC/keybind; Separate causes incorrect window gaps

Open
#2,956 1 comment 0 reactions 0 assignees View on GitHub
bug
Dominant language
QML
Stars
8.1k
Forks
515
Avg merge
1d 8h
Merged PRs (30d)
102

Description

### Compositor

MangoWC (dwl)

### Distribution

Arch Linux

### If Other, please specify

_No response_

### Select your Installation Method

Source

### Was this your original Installation method?

Yes

### If no, specify

AUR

### dms doctor -vC

## DMS Doctor Report

**System**
- [ok] Operating System: Arch Linux
- ID: arch, Version: rolling, Arch: amd64
- [ok] Architecture: amd64
- [ok] Display Server: Wayland
- WAYLAND_DISPLAY=wayland-0

**Versions**
- [ok] DMS CLI: dms v1.5.0-208-g64461c53
- /usr/bin/dms
- [ok] Quickshell: Quickshell 0.3.0 (revision 43d4fa9e883cb03239b3d578c9c57070f4fbd281, distributed by AUR (package: quickshell-git))
- /usr/bin/qs
- [ok] DMS Shell: v1.6-beta
- /run/user/1000/danklinux-shell/a0a07d4bb99dd9db

**Installation**
- [ok] DMS Configuration: Found
- /run/user/1000/danklinux-shell/a0a07d4bb99dd9db
- [ok] shell.qml: Present
- /run/user/1000/danklinux-shell/a0a07d4bb99dd9db/shell.qml
- [info] Install Type: Unknown
- /run/user/1000/danklinux-shell/a0a07d4bb99dd9db

**Compositor**
- [ok] mangowc: 0.15.5
- /usr/bin/mango
- [info] Active: MangoWC
- [warn] Background Blur: Unsupported
- Compositor does not support ext-background-effect-v1

**Quickshell Features**
- [ok] Polkit: Available
- Authentication prompts
- [ok] IdleMonitor: Available
- Idle detection
- [ok] IdleInhibitor: Available
- Prevent idle/sleep
- [ok] ShortcutInhibitor: Available
- Allow shortcut management (niri)
- [ok] BackgroundBlur: Available
- Background blur API support in Quickshell

**Optional Features**
- [ok] accountsservice: Available
- User accounts
- [ok] power-profiles-daemon: Available
- Power profile management
- [ok] logind: Available
- Session management
- [ok] cups-pk-helper: Available
- Printer management
- [ok] I2C/DDC: 1 monitor(s) detected
- External monitor brightness control
- [ok] qt6-imageformats: Installed (5 formats)
- Formats: WebP, TIFF, GIF, JP2, ICNS (/usr/lib/qt6/plugins/imageformats:/usr/lib64/qt6/plugins/imageformats)
- [ok] kimageformats: Installed (4 formats)
- Formats: AVIF, HEIF, JXL, EXR (/usr/lib/qt6/plugins/imageformats:/usr/lib64/qt6/plugins/imageformats)
- [ok] Terminal: ghostty, kitty, alacritty
- [ok] Network: NetworkManager
- NetworkManager present. Using NM API.
- [ok] matugen: Installed
- Dynamic theming
- [ok] dgop: Installed
- System monitoring
- [ok] cava: Installed
- Audio visualizer
- [info] khal: Not installed
- Calendar events
- [info] danksearch: Not installed
- File search
- [info] dankcalendar: Not installed
- Calendar app
- [ok] fprintd: Installed
- Fingerprint auth

**Config Files**
- [ok] settings.json: Present
- /home/ozpr4y/.config/DankMaterialShell/settings.json
- [info] clsettings.json: Not yet created
- /home/ozpr4y/.config/DankMaterialShell/clsettings.json
- [ok] plugin_settings.json: Present
- /home/ozpr4y/.config/DankMaterialShell/plugin_settings.json
- [ok] session.json: Present
- /home/ozpr4y/.local/state/DankMaterialShell/session.json
- [ok] dms-colors.json: Present
- /home/ozpr4y/.cache/DankMaterialShell/dms-colors.json

**Services**
- [warn] dms.service: Disabled
- [ok] greetd: enabled

**Environment**
- [info] QT_QPA_PLATFORMTHEME: gtk3
- [info] QS_ICON_THEME: Not set
- [info] XDG_MENU_PREFIX: plasma-

**Fonts**
- [ok] Normal Font: Inter Variable
- Available
- [ok] Monospace Font: Fira Code
- Available

---
**Summary:** 0 error(s), 2 warning(s), 34 ok

### Description

Frame Mode presents two different problems under MangoWC depending on the selected `Surface Behavior`.

#### Connected mode

When Frame Mode is enabled and `Surface Behavior` is set to `Connected`, Dank Dash no longer opens through its MangoWC keybind or through the Dash IPC command.

My MangoWC keybind is:

```ini
bind=SUPER,s,spawn,dms ipc call dash toggle overview
```

Pressing `SUPER + S` produces no visible result.

Running the same command directly in a terminal returns:

```text
DASH_TOGGLE_FAILED
```

However, Dank Dash itself is still functional. Clicking the clock widget with the mouse opens the dashboard normally while Connected mode is active.

This suggests that the problem affects the IPC/keybind opening path rather than the dashboard itself.

#### Separate mode

Changing `Surface Behavior` to `Separate` restores the Dash keybind and IPC command.

However, application windows become incorrectly inset from the Frame. Large unused gaps or visible wallpaper strips appear between the client windows and the outer Frame, and the usable window area no longer aligns correctly with the display.

In summary:

- `Connected`: mouse click works, but the Dash IPC and keybind fail.
- `Separate`: Dash IPC and keybind work, but client window geometry and gaps are incorrect.

### Expected Behavior

When Frame Mode is enabled, both Surface Behavior modes should remain fully functional.

#### Connected mode

Dank Dash should open through all supported methods:

- MangoWC keybind
- Direct IPC command
- Clicking the clock widget

The following command should open or close Dank Dash successfully:

```sh
dms ipc call dash toggle overview
```

#### Separate mode

Switching to `Separate` should only change how DMS popouts and surfaces are positioned relative to the Frame.

It should not:

- push application windows too far inward;
- create large unused gaps around client windows;
- leave visible wallpaper strips between windows and the Frame;
- incorrectly reduce or offset the usable workspace area.

Client windows should continue to fit correctly inside the available workspace in both Frame modes.

### Steps to Reproduce

1. Start DMS under MangoWC.

2. Make sure Dank Dash is assigned to a MangoWC keybind:

```ini
bind=SUPER,s,spawn,dms ipc call dash toggle overview
```

3. Open DMS Settings.

4. Go to:

```text
Dank Bar > Frame
```

5. Enable Frame Mode.

6. Set `Surface Behavior` to `Separate`.

7. Press `SUPER + S`.

8. Confirm that Dank Dash opens.

9. Run the IPC command directly:

```sh
dms ipc call dash toggle overview
```

10. Confirm that the IPC command works.

11. Observe the application windows while Separate mode is active.

12. Notice that client windows are incorrectly inset and that large gaps or wallpaper strips appear between the windows and the outer Frame.

13. Change `Surface Behavior` to `Connected`.

14. Press `SUPER + S`.

15. Observe that Dank Dash does not open and there is no visible response.

16. Run the IPC command directly:

```sh
dms ipc call dash toggle overview
```

17. Observe that it returns:

```text
DASH_TOGGLE_FAILED
```

18. Click the clock widget with the mouse.

19. Observe that Dank Dash opens normally through the clock widget, despite the IPC and keybind failure.

20. Change the mode back to `Separate`.

21. Confirm that the IPC and keybind work again, while the incorrect client window gaps return.

### Error Messages/Logs

### IPC output in Connected mode

```text
$ dms ipc call dash toggle overview
DASH_TOGGLE_FAILED
```

The direct open command also fails:

```text
$ dms ipc call dash open ""
DASH_OPEN_FAILED
```

The close command returned:

```text
$ dms ipc call dash close
DASH_CLOSE_FAILED
```

The `DASH_CLOSE_FAILED` result may be secondary, because no Dash surface was created by the failed IPC open attempt.

Clicking the clock widget with the mouse still opens Dank Dash successfully.

### Versions

```text
Operating System: Arch Linux
Display Server: Wayland
Compositor: MangoWC 0.15.5

DMS CLI: v1.5.0-208-g64461c53
DMS Shell: v1.6-beta

Quickshell: 0.3.0
Quickshell revision: 43d4fa9e883cb03239b3d578c9c57070f4fbd281
```

### DMS Doctor summary

```text
0 error(s), 2 warning(s), 34 ok
```

Warnings:

```text
Background Blur: Unsupported
Compositor does not support ext-background-effect-v1

dms.service: Disabled
```

The disabled service warning is expected because DMS is started directly from the MangoWC configuration:

```ini
exec-once=dms run
```

The DMS Doctor report otherwise shows a healthy installation with no errors.

### Screenshots/Recordings

Image

Image

Contributor guide

Open the contributing guide

Research direction

Reproduce the two paths using the MangoWC keybind and the `dms ipc call dash toggle overview` command with Frame Mode enabled, then compare Connected and Separate behavior under MangoWC. Use the Dank Bar > Frame settings and the reported `DASH_TOGGLE_FAILED` result as starting points; done means both surface modes open Dash through the keybind, IPC, and clock click without incorrect client-window gaps.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.