Skip to content

Caps lock bindings - #168

Open
krakotay wants to merge 9 commits into
pop-os:masterfrom
krakotay:caps-lock-bindings
Open

Caps lock bindings#168
krakotay wants to merge 9 commits into
pop-os:masterfrom
krakotay:caps-lock-bindings

Conversation

@krakotay

@krakotay krakotay commented Jul 15, 2026

Copy link
Copy Markdown
  • I have disclosed use of any AI generated code in my commit messages.
    • If you are using an LLM, and do not fully understand the changes it is making to the code base, do not create a PR.
    • In our experience, AI generated code often results in overly complex code that lacks enough context for a proper fix or feature inclusion. This results in considerably longer code reviews. Due to this, AI authored or partially authored PRs may be closed without comment.
  • I understand these changes in full and will be able to respond to review comments.
  • My change is accurately described in the commit message.
  • My contribution is tested and working as described.
  • I have read the Developer Certificate of Origin and certify my contribution under its conditions.

This PR is part of two other PRs
cosmic-comp PR
cosmic-settings PR
Together, they make it possible to bind modifier-only keyboard shortcuts, such as changing the input source with Alt+Shift, Ctrl+Shift, Super+Shift, or even Caps Lock.

image

git-f0x and others added 6 commits August 10, 2026 16:30
rustfmt didn't want to format this section at all, so I split up match branches into functions and now it works.
The external brightness thread held Display handles (open /dev/i2c-*
fds) for the daemon's lifetime, only re-enumerating on the next
brightness change >10s after the previous one. An open fd on an i2c
adapter belonging to an unplugged DP-MST monitor blocks the kernel's
MST teardown (drm_dp_delayed_destroy_work waits in i2c_del_adapter),
permanently wedging drm_dp_mst_wq: hung-task warnings, stalled hotplug
handling, and stale connectors that break saved output configurations
on replug.

Keep the handle cache only while brightness changes are actively
arriving: wait on the condvar with a 2s timeout while handles are held,
and drop them once no change has arrived in that window. Bursts of
brightness key repeats still reuse the cached handles; an idle daemon
holds no i2c fds, so MST teardown can complete.

Fixes pop-os#165
Track keycodes in binding identity and remove the pinned Rust toolchain.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants