-
-
Notifications
You must be signed in to change notification settings - Fork 3
[WIP] add session lock support #5
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: main
Are you sure you want to change the base?
Conversation
|
|
Ok so just to keep track of things, here are the problems I encountered when trying to implement hyprlocks password input field.
|
There is an element prop for that it's just not exposed. I'm fine with exposing it (containsChildren clipChildren or something liek that)
Simple fix
Why not? You can add an event fd to the loop. See pwcenter it uses pw_loop's fd.
Yes, shaders have that feature already as I copied them from HL. Just needs an impl in the C++ part. I'd say get session lock to work in this MR, we'll merge it, then deal with those four issues in subsequent MRs. Is the lock part gtg? |
|
All of that sounds nice. Thanks! Lock part needed the denied event. Now I think it would be gtg. |
Lock screens need to know when to exit without an unlock.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
xoxo
|
|
||
| Hyprutils::Memory::CSharedPointer<CPalette> getPalette(); | ||
|
|
||
| void unlockSession(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This kinda sucks. I'd rather you'd make some lock state controller.
ILockState that you can get from the backend if you have a lockscreen, and will return nullptr if you dont.
This would play nicely with making Lock Surfaces -> you can only make them once you obtain the lockstate.
std::expected<SP<ILockState>, eLockError> createSystemLock();
| /* | ||
| Sent when the compositor denies us as the exclusive lock screen client. | ||
| */ | ||
| Hyprutils::Signal::CSignalT<> lockDenied; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this could be moved to the ILockState mentioned above
|
|
||
| std::optional<WP<CWaylandOutput>> CWaylandPlatform::outputForHandle(uint32_t handle) { | ||
| for (const auto& o : m_outputs) { | ||
| if (o->m_id == handle) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no {} max
| return nullptr; | ||
| } | ||
|
|
||
| std::optional<WP<CWaylandOutput>> CWaylandPlatform::outputForHandle(uint32_t handle) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
optional WP makes no sense, just return nullptr on fail
| std::optional<Hyprutils::Math::Vector2D> maxSize; | ||
| std::string title = "Hyprtoolkit App"; | ||
| std::string class_ = "hyprtoolkit-app"; | ||
| uint32_t prefferedOutputId; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
who forgor to initialize a primitive
This is a first proposal for session-lock in hyprtoolkit.
It is intended for hyprlock to be implemented on top of it.
This version here has almost everything that should be needed.
TODOS:
outputAdded)