-
-
Notifications
You must be signed in to change notification settings - Fork 80
Cache GUIVM keyboard layout in qvm-start-daemon
#393
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
Cache GUIVM keyboard layout in qvm-start-daemon
#393
Conversation
qvm-start-daemonqvm-start-daemon
On XFCE systems with multiple keyboard layouts and with XFCE Keyboard Layout widget, X raises two `XKLAVIER_ALLOW_SECONDARY` events shortly after each other (see 1st issue). The current intended behaviour is to ignore the 2nd event by checking if the GUIVMs current layout is similar to the new requested layout. Unfortunately, after setting the GUIVM's keyboard layout, Qubes Core goes to this loop to propagate the new layout to all child qubes: https://github.com/QubesOS/qubes-core-admin/blob/main/qubes/ext/gui.py#L162-L170 And even if we move the condition after that loop just before it, it is still too slow to report back the new layout via qubesdb for `qvm-stat-daemon` use. In order to avoid this race condition, it would be better to cache the layout within `qvm-start-daemon` itself. fixes: QubesOS/qubes-issues#8441 fixes: QubesOS/qubes-issues#6517
d04605f to
1510d25
Compare
|
PipelineRetryFailed |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #393 +/- ##
==========================================
- Coverage 76.17% 76.16% -0.01%
==========================================
Files 53 53
Lines 9250 9251 +1
==========================================
Hits 7046 7046
- Misses 2204 2205 +1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
OpenQA test summaryComplete test suite and dependencies: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2025110513-4.3&flavor=pull-requests Test run included the following:
Upload failures
New failures, excluding unstableCompared to: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2025081011-4.3&flavor=update
Failed tests24 failures
Fixed failuresCompared to: https://openqa.qubes-os.org/tests/149225#dependencies 81 fixed
Unstable testsPerformance TestsPerformance degradation:18 performance degradations
Remaining performance tests:157 tests
|
On XFCE systems with multiple keyboard layouts and with XFCE Keyboard Layout widget, X raises two
XKLAVIER_ALLOW_SECONDARYevents shortly after each other (see 1st issue).The current intended behaviour is to ignore the 2nd event by checking if the GUIVMs current layout is similar to the new requested layout. Unfortunately, after setting the GUIVM's keyboard layout, Qubes Core goes to this loop to propagate the new layout to all child qubes: https://github.com/QubesOS/qubes-core-admin/blob/main/qubes/ext/gui.py#L162-L170
And even if we move the condition after that loop just before it, it is still too slow to report back the new layout via qubesdb for
qvm-stat-daemonuse.In order to avoid this race condition, it would be better to cache the layout within
qvm-start-daemonitself.fixes: QubesOS/qubes-issues#8441
fixes: QubesOS/qubes-issues#6517