-
-
Notifications
You must be signed in to change notification settings - Fork 47
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
Hiding the mouse cursor does not work #2676
Comments
If this were enabled, would it allow a single compromised VM to "DoS" the whole system by hiding the cursor system-wide? @marmarek: What do you think? Feature or bug? |
Hiding mouse cursor system-wide is no-go, exactly for the reason @andrewdavidwong said. But there may be an option to hide a cursor when mouse is inside that [requesting] VM window. Probably can be useful together with allowing fullscreen windows. Related to #1551, with similar impact security-wise. Actually #1551 could be used to implement this one - set cursor "shape" to fully transparent one. One more thing requiring substantial knowledge of X11 protocol... |
Same here on Qubes R.4.0 |
could there be a keyboard shortcut for hiding/unhiding cursor, coming from dom0? apparently there is a there is also a rewrite here: https://github.com/Airblader/unclutter-xfixes and a program called |
(
|
Is this really a security vulnerability to allow hidden cursor? X11 cursors are per-window, and if your cursor is invisible in one window, shaking your mouse will make the cursor appear. The problem is currently how to intercept XFixes requests for hiding the cursor. Some applications want to set a transparent image as cursor, which is harder to handle. |
Per-window, probably not.
That is indeed the hard part. It would require modifications to both the GUI agent and GUI daemon. Would you be interested in making a PR? |
PR:
|
Here is xfixes events processing: https://github.com/QubesOS/qubes-gui-agent-linux/blob/master/gui-agent/vmside.c#L354-L378 |
Found a bit concerning stuff. Documentation for XFixes §7.2 says the cursor name field is for XFixes version 2 only, so maybe the field is not to be used. Also, the documentation is for xfixes version 5, but the latest header file is on major version 6 ( |
From the same documentation for XFixes, there isn't a way to check if the cursor is visible or not. No event, no function call. We have to either amend XFixes or intercept traffic to X server to check cursor visibility. Or maybe there is a way to listen to X requests? We might as well ship Unrelated questions:
|
Interesting, although it works in practice... (with some exceptions).
Indeed, I don't see anything either.
Neither of those sound good...
I guess that's the way to go, sadly.
I understand why it's tempting, but those parts have significantly different trust level and we'd like to keep them separate (gui-agent doesn't need to be that resistant against malicious gui-daemon than the other way around; and we'd like to avoid not-so-careful change to gui-agent compromising gui-daemon by accident). Plus, there is one gui-daemon, while a few gui-agents (linux-x11, windows, and in progress linux-wayland).
Yes, it's in progress #3366 |
Patch the X server? |
Let me repeat more clearly: no. |
I still feel like this is the correct way to fix this problem. The easiest way is to patch
use |
What about applications using XCB? |
Hope for Wayland support? |
Another solution : a keyboard shortcut hides your cursor (by switching to a blank/invisible cursor). Install a blank cursor to your cursor theme (here Adwaita):
Test switching to the blank cursor and go back to the default cursor:
Add the keyboard shortcuts: XFCE setting > Keyboard > shortcuts
Usage:
I daily use this solution. Related forum topic : https://forum.qubes-os.org/t/how-to-get-the-mouse-cursor-disappear-when-playing-a-video/17578/2 |
Qubes OS version (e.g.,
R3.2
):3.2
Affected TemplateVMs (e.g.,
fedora-23
, if applicable):Expected behavior:
if a program requests the mouse cursor is hidden (very useful for slideshows, viewing videos or even in the terminal (rxvt with pointerBlank))
Actual behavior:
mouse pointer still visible
Steps to reproduce the behavior:
use any progranm that tries to hide the pointer
General notes:
this may be a security feature but i don't know why this would increase security so i assume it's more a missing feature like #2642?
The text was updated successfully, but these errors were encountered: