AvengeMedia / AvengeMedia/DankMaterialShell
Screen freezes after device sleeps
- Dominant language
- QML
- Stars
- 8.1k
- Forks
- 515
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 102
Description
### Compositor
Niri
### Distribution
Arch Linux
### If Other, please specify
_No response_
### Select your Installation Method
DankInstaller
### Was this your original Installation method?
Yes
### If no, specify
_No response_
### dms doctor -vC
Click to expand
## DMS Doctor Report
**System**
- [ok] Operating System: EndeavourOS
- ID: endeavouros, Version: 2025.03.19, Arch: amd64
- [ok] Architecture: amd64
- [ok] Display Server: Wayland
- WAYLAND_DISPLAY=wayland-1
**Versions**
- [ok] DMS CLI: dms v1.5.3
- /usr/bin/dms
- [ok] Quickshell: Quickshell 0.3.1 (revision 1a4716cde794a59928d9d9fc15f2afc7a95de360, distributed by AUR (package: quickshell-git))
- /usr/bin/qs
- [ok] DMS Shell: v1.5.3
- /usr/share/quickshell/dms
**Installation**
- [ok] DMS Configuration: Found
- /usr/share/quickshell/dms
- [ok] shell.qml: Present
- /usr/share/quickshell/dms/shell.qml
- [info] Install Type: System package
- /usr/share/quickshell/dms
**Compositor**
- [ok] niri: 26.04
- /usr/bin/niri
- [info] Active: niri
- [ok] Background Blur: Supported
- Compositor supports 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
- [warn] cups-pk-helper: Not available (install cups-pk-helper)
- Printer management
- [info] I2C/DDC: No monitors 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)
- [warn] kimageformats: Not installed
- AVIF, HEIF, JXL support
- [ok] Terminal: kitty, wezterm
- [ok] Network: NetworkManager
- NetworkManager present. Using NM API.
- [ok] matugen: Installed
- Dynamic theming
- [ok] dgop: Installed
- System monitoring
- [warn] cava: Missing
- 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/drewl/.config/DankMaterialShell/settings.json
- [info] clsettings.json: Not yet created
- /home/drewl/.config/DankMaterialShell/clsettings.json
- [ok] plugin_settings.json: Present
- /home/drewl/.config/DankMaterialShell/plugin_settings.json
- [ok] session.json: Present
- /home/drewl/.local/state/DankMaterialShell/session.json
- [ok] dms-colors.json: Present
- /home/drewl/.cache/DankMaterialShell/dms-colors.json
**Services**
- [ok] dms.service: enabled, active
- [ok] greetd: enabled
**Environment**
- [info] QT_QPA_PLATFORMTHEME: qt6ct
- [info] QS_ICON_THEME: Not set
- [info] XDG_MENU_PREFIX: Not set
**Fonts**
- [ok] Normal Font: Noto Sans Mro
- Available
- [ok] Monospace Font: Source Code Pro
- Available
---
**Summary:** 0 error(s), 3 warning(s), 32 ok
### Description
I'm on a Framework 13 laptop with an AMD CPU.
This happens every time my laptop goes to sleep, whether through a timeout or through pressing the power button. When I turn the screen back on, it is frozen. The only way to un-freeze it is to 1) restart the laptop or 2) type my password while the screen is frozen, log in, and use a keybind to restart DMS.
Additionally, if an external monitor is connected, *only* the laptop screen is frozen, not the monitor.
Any help to troubleshoot would be appreciated!
### Expected Behavior
_No response_
### Steps to Reproduce
1. Use ArchLinux with Niri. You may also need to be on a Framework 13, I'm not sure if the issue is specific to my laptop.
2. Enable the lock screen in the settings.
3. Press the power button or let the laptop go to sleep.
4. Wait a few seconds (maybe 30?)
5. Click with the mouse cursor/wake up the laptop some other way
6. The screen is now frozen
7. Type in the password and press enter
8. Restart DMS somehow (I have a keybind)
9. The screen will unfreeze
Note that in steps 6-8, the screen is fully frozen, so you have to do it all blind. Keystrokes and audio still register though
### Error Messages/Logs
```
Aug 27 15:16:22 framework dms[21984]: INFO go: Clipboard manager initialized successfully
Aug 27 15:16:22 framework dms[21984]: INFO go: Wayland event dispatcher started
Aug 27 15:16:22 framework dms[21984]: INFO go: Screensaver name org.freedesktop.ScreenSaver already owned by another process (e.g. hypridle/swayidle)
Aug 27 15:16:22 framework dms[21984]: INFO go: Claimed org.gnome.ScreenSaver on session bus
Aug 27 15:16:22 framework dms[21984]: INFO go: Screensaver listener initialized
Aug 27 15:16:22 framework dms[21984]: INFO go: Freedesktop manager initialized
Aug 27 15:16:22 framework dms[21984]: INFO go: Loginctl manager initialized
Aug 27 15:16:22 framework dms[21984]: INFO go: TrayRecovery manager initialized
Aug 27 15:16:22 framework dms[21984]: INFO go: Spawning quickshell with -p /usr/share/quickshell/dms
Aug 27 15:16:22 framework dms[22006]: INFO: Launching config: "/usr/share/quickshell/dms/shell.qml"
Aug 27 15:16:22 framework dms[22006]: INFO: Shell ID: "85ecfc916fcda75f6106502e8dabb0ab" Path ID "85ecfc916fcda75f6106502e8dabb0ab"
Aug 27 15:16:22 framework dms[22006]: INFO: Saving logs to "/run/user/1000/quickshell/by-id/azgar5gkt/log.qslog"
Aug 27 15:16:22 framework dms[21984]: INFO go: Using IP location
Aug 27 15:16:22 framework dms[21984]: INFO go: Location manager initialized
Aug 27 15:16:22 framework dms[21984]: INFO go: [SecretAgent] Registered with NetworkManager (id=com.danklinux.NMAgent, unique name=:1.738, fixed path=>
Aug 27 15:16:22 framework dms[21984]: INFO go: Network manager initialized
Aug 27 15:16:22 framework dms[21984]: INFO go: Evdev manager initialized
Aug 27 15:16:24 framework dms[21984]: INFO go: DDC backend initialized
Aug 27 15:16:24 framework dms[22006]: INFO: Configuration Loaded
Aug 27 15:16:24 framework dms[22006]: WARN qml: [I18n:117] Falling back to built-in English strings
Aug 27 15:16:24 framework dms[22006]: WARN qt.qpa.services: Failed to register with host portal QDBusError("org.freedesktop.portal.Error.Failed", "Coul>
Aug 27 15:16:24 framework dms[22006]: INFO qml: [BlurService:53] Compositor supports ext-background-effect-v1
Aug 27 15:16:24 framework dms[22006]: INFO qml: [CompositorService:958] Detected niri from Wayland socket owner: niri
Aug 27 15:16:24 framework dms[22006]: INFO qml: [NiriService:171] Generated wpblur config at /home/drewl/.config/niri/dms/wpblur.kdl
Aug 27 15:16:24 framework dms[22006]: INFO qml: [NiriService:233] Loaded 1 outputs
Aug 27 15:16:24 framework dms[22006]: INFO qml: [CompositorService:958] Detected niri from Wayland socket owner: niri
Aug 27 15:16:24 framework dms[22006]: INFO qml: [NiriService:138] Generated layout config at /home/drewl/.config/niri/dms/layout.kdl
Aug 27 15:16:24 framework dms[22006]: INFO qml: [NiriService:158] Generated alttab config at /home/drewl/.config/niri/dms/alttab.kdl
Aug 27 15:16:24 framework dms[22006]: INFO qml: [NiriService:171] Generated wpblur config at /home/drewl/.config/niri/dms/wpblur.kdl
Aug 27 15:16:24 framework dms[22006]: INFO qml: [DMSService:343] Connected (API v28, CLI v1.5.3) - ["plugins","network","loginctl","freedesktop","gamma>
Aug 27 15:16:24 framework dms[22006]: INFO qml: [WlrOutputService:58] wlr-output-management capability detected
Aug 27 15:16:24 framework systemd[1057]: Started Dank Material Shell (DMS).
Aug 27 15:16:24 framework dms[22006]: WARN quickshell.I3.ipc: $I3SOCK is unset. Trying $SWAYSOCK.
Aug 27 15:16:24 framework dms[22006]: WARN quickshell.I3.ipc: $SWAYSOCK and I3SOCK are unset. Cannot connect to socket.
Aug 27 15:16:24 framework dms[22006]: WARN: $HYPRLAND_INSTANCE_SIGNATURE is unset. Cannot connect to hyprland.
Aug 27 15:16:24 framework dms[22006]: INFO qml: [NetworkService:108] Initializing...
Aug 27 15:16:24 framework dms[22006]: INFO qml: [NetworkService:115] Network capability already available, using DMSNetworkService
Aug 27 15:16:24 framework dms[22006]: INFO qml: [NetworkService:144] Switched to DMSNetworkService, networkAvailable: true
Aug 27 15:16:24 framework dms[22006]: WARN qml: [MultimediaService:19] QtMultimedia not available
Aug 27 15:16:25 framework dms[22006]: INFO qml: [DgopService:766] Detected distribution: EndeavourOS
Aug 27 15:16:28 framework dms[22006]: INFO qml: [DankBarWindow:683] DankBar: Plugin loaded: calculator
Aug 27 15:16:28 framework dms[22006]: INFO qml: [DankBarWindow:683] DankBar: Plugin loaded: dankBatteryAlerts
```
### Screenshots/Recordings
_No response_
Contributor guide
Research direction
Reproduce the sleep-and-wake sequence with Dank Material Shell on niri and Wayland, then start by reviewing /usr/share/quickshell/dms/shell.qml and the Quickshell log at /run/user/1000/quickshell/by-id/azgar5gkt/log.qslog. Compare behavior with and without an external monitor and verify that the laptop display redraws after wake without restarting DMS.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- arch-linux, go, linux
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100