Programming approaches to Alternative Appmenu icon effects, Setting default workspace per qube, Additional label colors

Update:

I did some minor work on Additional Labels and options to signify VM ownership of windows/widgets/functionality, other than color ideas. I studied Github issues and pending tasks which are currently being worked on by the team, answering some of my own questions in the previous post.

Launching Applications in Workspaces with matching label

This scenario turns out to be extremely easy to implement.
0. User could easily create their own workspaces with matching label names (red, orange, yellow, …) and set the unique background matching label color. This process could be automated with xfconf-query. Qubes provided themes in “/usr/share/backgrounds/qubes” are more than adequate.

  1. We have wmctrl(1) already installed in dom0 (most probably on dedicated GUI Qube). And while we are still on X11 and no sign of Wayland in near future, we could use wmctrl to switch to the workspace dedicated to label color with wmctrl -s and then run the app with qvm-run(1).
  2. Of course qvm-run(1) alone could not do the above at this time. And we would like to avoid touching qvm-appmenus(1). But we could easily modify ~/.local/share/applications/org.qubes-os.vm.*.desktop files. And they can be easily regenerated, reverting to the default status.
  3. I have to see if there is a hook for qvm-appmenu to automate the process.
  4. Another idea is a to open new App Windows in Workspaces matching Qube Name.
  5. Another way to implement this would be a custom tag/pref for Qube (e.g default-workspace). Unfortunately there is no any admin.customtag.add or similar feature in the API. But there are workarounds which are not invasive.
  6. wmctrl is pretty safe. It will ignore missing workspaces and user mistakes.

I will implement this next as it is the least invasive method and pretty easy to implement. And I like the idea for my personal use. Any feedback is appreciated. Specially if anyone has already implemented this, so I could avoid reinventing the wheel.

1 Like