Sneak peek of the Qubes Appmenu changes & improvements

Qubes Appmenu (qubes-desktop-linux-menu) has received a major upgrade after a long time (since August 2023). Few months of work by Marmarta. It is currently available in testing branch. Instead of waiting till next Saturday to summarize the changes in my Weekly review, I decided to post the changes, fixes and improvement here since there are many.

From newest change to the oldest since v1.1.5. Original commit message in italic or bold. My comments in regular text.

  • Add test for command line parsing. Also fix a small bug introduced by previous changes that was found by this test. Nothing significant for ordinary users.
  • Use page name instead of page number for initial page Again some internal changes. Nothing ordinary users should worry about.
  • Remove deprecated pkg_resources, replace it with importlib. A very recent minor improvement to code. Removing some old deprecated Python library.
  • Stop building for r4.1. Anyone still on Qubes OS 4.1? :eyes: Maybe you should upgrade.
  • Add tests to menu settings. Some more automatic CI/CD tests.
  • Add a GUI program to manage menu settings. This is something many users would appreciate. You could select either of Search, Applications, Favorites pages as your starting menu page. And the option to show running qubes at the top.
  • Implement menu settings as features. The following features are implemented:
    menu-initial-page is set to the number of page (0 - search, 1 - app, page, 2 - favorites, 3 - settings if you really insist?) that should be shown on menu open
    menu-sort-running - if true, sort running qubes to the top of the menu
    Under the hood technical details on how sorting and default Appmenu page works. There is no config file. You could do qvm-features dom0 menu-initial-page <0|1|2|3> to set the default Appmenu page. And qvm-features dom0 menu-sort-running <True|False|0|1> for sorting running VMs on top. And as Marmarta mentions, is there anyone who wants Appmenu Settings as the default?
  • Search and space/backspace interactions. Space should not launch a selected application. When typing, highlight the first visible application so that it’s clear it’ll be launched on enter. Backspace on the other hand should also move focus to search box. To be honest, I do not remember how the previous search function looked like. But I know that I will tweak the CSS for highlight. Black text on dark blue is not very nice. (BTW, do not pay attention to bordered icons. It is my personal Tweak).
  • Add and update tests for Menu. More CI/CD tests.
  • Move tests to new Mock Qubes object from core-admin-client. More in-line with other tests. You see that a lot of programming work is writing tests for own work :sob:. But it is absolutely necessary.
  • Fix favorites menu in search. The right-click menu wasn’t being setup correctly in the search tab. Moved menu setup to its own class, so that Search and Apps can both work correctly. Self explanatory.
  • Fix pylint complaint about yield from. Making the code analysis overlord robots happy.
  • Use keywords in menu search. If present, also use keywords in .desktop file in search. This is a tricky one to understand from commit message. By looking at the code, it becomes evident. So now you could search e.g. Thunar personal
        # search uses partial matching in search words, those being:
        # application name
        # vm name
        # disposable parent name if applicable
        # "new disposable qube from" if applicable
        # desktop file keywords if applicable
  • Launch first search result on Enter. Nice touch here. I like it very much.
  • Provide a workaround for PageUp / focus chain bug. Fixing this bug.
  • Add explanation how to add things to favorites. If there is no favorite, it will show this text:
    No favorites found. To add an application to favorites, right-click on it in the application list.
  • Make the dispvm child icon an icon, not a background. The workaround for KDE sadly broke the background working correctly, so this is a “gave up, can’t force CSS to behave” version. The icon is now indeed an icon. Fixing this bug.
  • Run tests in CI

Nope, this one is about keywords defined in the desktop file…vm names and application names can already be searched in the previous app menu version. It’s what fixes this issue.

1 Like