Skip to content

Appmenu folders for organizing qubes#71

Open
amrosia wants to merge 8 commits into
QubesOS:mainfrom
amrosia:main
Open

Appmenu folders for organizing qubes#71
amrosia wants to merge 8 commits into
QubesOS:mainfrom
amrosia:main

Conversation

@amrosia

@amrosia amrosia commented Apr 3, 2026

Copy link
Copy Markdown

Summary

When users have many qubes, the Applications pane becomes difficult to scan and navigate quickly. Related qubes are mixed in one long list, which makes common workflows slower.

This change adds folder-based organization to the VM list in the appmenu, so users can group related qubes and reduce visual clutter.

What this PR adds

  • Folder grouping for qubes in the Applications pane
  • Collapsible folder sections for faster navigation
  • Per-scope organization (Apps/Templates/Service each keep independent folder layout)
  • Folder management actions from context menus (move qube, create folder, rename/delete folder, reorder folders)
  • Folder ordering controls (move up/down)

Persistence model

Appmenu folder state is stored in qvm-features:

  • VM-level feature keys store per-qube folder assignment
  • Behavior remains backward-compatible for users without folder features configured.

Warning: AI-generated code
This change set was written with AI, then tested manually.

Screenshot_20260403_104717 Screenshot_20260403_105005 Screenshot_20260403_105120

@marmarta

marmarta commented Apr 7, 2026

Copy link
Copy Markdown
Member

I think this is promising, but tests fail (the fail on desktop-linux-manager is known, but there is a bunch of fails for menu tests too).

amrosia added 7 commits April 9, 2026 21:55
Introduce folder rows and folder assignment actions.
Add VM feature hooks and tests for folder updates.
Separate Apps, Templates, and Service folder scopes.
Store ordering and collapse state per scope for predictable UX.
Keep VM list state stable while assigning folder membership.
Avoid refresh ordering that can clear visible selection/state.
Handle feature access errors gracefully and keep folder state

consistent on delete events. Update app page tests to skip folder

header rows when asserting VM ordering/state.
Extend app-page tests for folder create/assign/rename/delete,

ordering, collapse behavior, scope-specific persistence, and menu

entries. Add VM manager test for folder scope feature events.

Adjust tests to avoid mock qubesd feature-set calls by using local

feature dict/mocks where needed.
@amrosia

amrosia commented Apr 9, 2026

Copy link
Copy Markdown
Author

Thanks for the review. I fixed the menu test failures.

In my tests, the result was: 31 passed, 1 skipped, 7 warnings.

I also added 5 tests for folder functionality in test_app_page.py and test_vmmanager.py

Coverage includes create/assign/rename/delete, ordering and collapse behavior, scope-specific state handling, submenu entries, and VM feature-event refresh behavior.

@marmarta

Copy link
Copy Markdown
Member

PipelineRetryFailed

@marmarek

marmarek commented May 5, 2026

Copy link
Copy Markdown
Member

PipelineRetry

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants