-
Notifications
You must be signed in to change notification settings - Fork 71
feat: add Custom DBus interface for Quickshell SessionLock #421
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
bc48777 to
7e60a4d
Compare
7e60a4d to
7277846
Compare
|
Hello, Sorry for the messy commits. This was my first time working with Qt, and it’s been a long time since I last touched C++. The linter and I spent some time fighting each other along the way. Thanks for your patience! |
|
I think that unconditionally registering the screensaver interface has a lot more considerations than just lock screen - because this would make it so nothing else could own the screensaver interface (like real screensaver apps, idle monitors, compositors)
If this is implemented in quickshell I think it'd make more sense as something that can be conditionally registered, since it wont work all the time anyway (like on niri) Screensaver {
onInhibited
enabled
}idk something like that, that's just my thoughts (not outfoxxed) |
@bbedward Been hard at work. After further inspection you were correct, that was an oversight on my part so instead what I did was make a custom interface for quickshell org.quickshell.SessionLock to bind to that instead so it shuld be free of other traffic as it's now custom :) Just testing it at the moment. then linter fighting. Say any way to install tidyfox on arch linux without having to downloads the tar and unzip and just release and cp myself??? so that when testing my changes and fmt and such might be streamlined? |
…rg.quickshell.SessionLock
1e36575 to
c4efd55
Compare
|
@bbedward DONE, now it's on a custom interface no need to worry about ScreenSaver :) |
Implements custom org.quickshell.SessionLock DBus interface to expose session lock state, allowing external applications (idle managers, system monitors, etc.) to track when quickshell's lock screen is active without conflicting with screensaver inhibitors.
Changes
org.quickshell.SessionLockDBus adaptor insrc/dbus/SessionLockManagerLockedChangedandSecureChangedsignals on lock/unlockGetLocked()andGetSecure()methods to query lock stateInterface Details
org.quickshell.SessionLock/org/quickshell/SessionLockGetLocked()- Returns true if lockedGetSecure()- Returns true if compositor confirmed lockLockedChanged(bool)- Emitted on lock state changeSecureChanged(bool)- Emitted when compositor confirms/releases lockRationale
Uses a custom interface instead of
org.freedesktop.ScreenSaverto avoid conflicts with screensaver daemons, idle monitors, and compositors that need to own that interface for handling screensaver inhibit requests from applications like Firefox.Testing