Skip to content
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

_NET_WM_DESKTOP support (jailing of qube windows to specific workspace) #9575

Open
alimirjamali opened this issue Nov 12, 2024 · 6 comments
Open
Labels
P: default Priority: default. Default priority for new issues, to be replaced given sufficient information. T: enhancement Type: enhancement. A new feature that does not yet exist or improvement of existing functionality.

Comments

@alimirjamali
Copy link

How to file a helpful issue

The problem you're addressing (if any)

User might want to force Windows belonging to specific qube to always open in dedicated Window Manager workspace rather than the focused one. For example user could have dedicated workspaces for trusted, untrusted, templates, disposables, ... and they want to be able to force new windows and/or popups belonging to specific qubes to always open in target workspace.

The solution you'd like

  • Allocate a feature for it (e.g. gui-workspace)
  • Validate it in qvm-start-daemon. Pass the number to GUI Daemon. Convert Workspace Names to numbers if necessary.
  • GUI Daemon could set _NET_WM_DESKTOP property in handle_map function. Excluding docked ones.

The above would effectively open new windows in target workspace rather than the current one. I have tested it already and it works well (see video below).

_NET_WM_DESKTOP.mp4

The value to a user, and who that user might be

All users. Users who need this for security enhancement as well as users who needs this feature for better organization of their workflow.

Completion criteria checklist

(This section is for developer use only. Please do not modify it.)

@alimirjamali alimirjamali added P: default Priority: default. Default priority for new issues, to be replaced given sufficient information. T: enhancement Type: enhancement. A new feature that does not yet exist or improvement of existing functionality. labels Nov 12, 2024
@marmarek
Copy link
Member

This is already (quite easily) possibly with 3rd-party tools. Or if you have KDE, it has built-in arranging windows based on various properties, including WM_CLASS.

@alimirjamali
Copy link
Author

This is already (quite easily) possibly with 3rd-party tools. Or if you have KDE, it has built-in arranging windows based on various properties, including WM_CLASS.

I was not aware of this. Could those tools work based on _QUBES_VMNAME? And what about XFCE? I know it was possible in i3 but did not know about KDE.

@marmarek
Copy link
Member

Looks like devilspie2 (which should work in any environment) can use arbitrary property, but I think KDE built-in thing can use only few standard ones.

@alimirjamali
Copy link
Author

When I looked for this back in March (and discussed this on forum), I found original devilspie (which was discontinued). And devilspie2 was not packaged for Fedora 37. Maybe it has changed and is available for Fedora 41.

@DemiMarie
Copy link

I think this is very much a useful feature request. WM_CLASS would work if and only if the GUI daemon can set it to a trusted value.

@marmarek
Copy link
Member

WM_CLASS is already set by the GUI daemon, the first part of it is the qube name.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P: default Priority: default. Default priority for new issues, to be replaced given sufficient information. T: enhancement Type: enhancement. A new feature that does not yet exist or improvement of existing functionality.
Projects
None yet
Development

No branches or pull requests

3 participants