Custom effects for Qubes OS Appmenu icons. Provided effects are explained at qubesimgconvertertt page which is a dependency of the above tools. Screenshots and use cases of effects are included at the bottom of this page.
The qubesappmenustt
library is derived from the original
qubesappmenus
library and Appmenus class. The only derived function is the
appicons_create and the rest are inherited. The library checks for an
special ttfilter VM feature and uses it to determine the custom effect per VM.
If the ttfilter key is not present or is invalid, the default tint effect
will be applied.
qvm-appmenus-tt
is the front end to the qubesappmenustt library. It is derived
from the original qubesappmenus code. It could be used as a drop-in
replacement to qvm-appmenus, or could be run independently as follow:
qvm-features VMNAME ttfilter <tint|overlay|thin-border|thick-border|untouched|invert|mirror|flip>
qvm-appmenus-tt VMNAME --update --force
Updating all Appmenu Tweak Tool effect might be necessary after each template update, new package installation etc. It takes 22.875s or my Intel Gen 4 testing laptop.
qvm-appmenus-tt --all --update --force
To install the library & tool at your ~/.local/lib & ~/bin directories, run this command in the current directory:
make install
To remove them from your system, run this command in the current directory:
make remove
These are the currently known limitation with the tool & library:
- Every time user updates their template or adds/removes a single App to VM's AppMenu, the original qubesappmenus & qvm-appmenus are invoked, effectively overwriting Tweak Tool custom icon effects. Proper study of AppMenus service is needed to determine if it would be possible to replace it with our own service or to use a hook to run our tool after it. Ideally all of this should happen in user space without any requirement for root privileges or sudo.
- Launching applications in user defined Workspace/VM could be added to this
tool. This could be done via customizing .desktop files Exec= entry, using
wmctrl(1)
utility. Or an alternative to qvm-run could be written for this purpose.
CAD AppVM with custom label & icons with black thin-border effect:
CAM AppVM with custom label & icons with overlay on gray color effect:
My highly trusted personal VM with untouched Icons:
Invert paranoid icons looks nice for untrusted AppVM:
Wedev AppVM with colorful custom label and bright colored thin-border icons:
The default tint effect:
Appmenu favorite tab after all of these effects: