Skip to content

App menu: Fix default order and related issues - #62963

Open
jancborchardt wants to merge 3 commits into
masterfrom
feat/app-menu-default-order
Open

App menu: Fix default order and related issues#62963
jancborchardt wants to merge 3 commits into
masterfrom
feat/app-menu-default-order

Conversation

@jancborchardt

Copy link
Copy Markdown
Member

Summary

The app-menu currently has apps very wildly and inconsistently sorted. Especially now that we have the rows of 4 apps each, like a home screen, it would be good to have the default Nextcloud Hub experience nice and organized.

The sorting is based on this logic, with one bullet point representing a row, and 4 app icons fitting in each row:

  • Basics: Dashboard, Files, Office, Photos
  • Collaboration: Talk, Mail, Calendar, Contacts
  • Productivity: Deck, Collectives, Tables, Teams
  • Other: Activity, all other apps
  • "More apps" (for admins) or "App store" (for users) should always be the last entry, like it is now.

Some things don’t fit the imaginary categories completely, like "Teams" being with Productivity. But Groupware is together as it makes sense. And since the labels don’t show up anywhere I think it’s fine.

Additional menu polishing:

  • Subdued the "More apps" (for admins) / "App store" (for users) entry, especially since the main app icons became less intense with fix(core): improve app icon contrast in the app menu #62931 – but also its name is bolded when active, just like the other apps
  • Removed the "Appstore" entry which duplicated "More apps" for admins. As a result, the logic which provided the header title and icon needed to be reworked. Bonus: "Help & privacy" now also has proper icon and title instead of cog + "Settings".
Before After
Screenshot From 2026-08-06 13-38-50 Screenshot From 2026-08-06 14-00-31

Checklist

AI (if applicable)

  • The content of this PR was partly or fully generated using AI

@jancborchardt jancborchardt added this to the Nextcloud 35 milestone Aug 6, 2026
@jancborchardt jancborchardt self-assigned this Aug 6, 2026
@jancborchardt
jancborchardt requested review from a team as code owners August 6, 2026 12:08
@jancborchardt
jancborchardt requested review from skjnldsv and sorbaugh and removed request for a team August 6, 2026 12:08
@jancborchardt jancborchardt added the design Design, UI, UX, etc. label Aug 6, 2026
@jancborchardt jancborchardt added 3. to review Waiting for reviews papercut Annoying recurring UX issue with possibly simple fix. feature: apps management AI assisted labels Aug 6, 2026
@jancborchardt
jancborchardt requested review from leftybournes, provokateurin and salmart-dev and removed request for a team August 6, 2026 12:08

@kra-mo kra-mo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good from the screenshots/description.

But the app order should probably also be updated downstream to match, no?

@jancborchardt

jancborchardt commented Aug 6, 2026

Copy link
Copy Markdown
Member Author

But the app order should probably also be updated downstream to match, no?

Just in my opinion: The concept of app order defined by apps themselves does not seem to be a good solution – otherwise everyone would just fight for -999. We should just go for hardcoded Hub app order like here, and after that we could go alphabetical or smth of the sort.

@szaimen

szaimen commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Question: wouldnt it be even possible to add some headings into the menu to actuallly separate the apps based on their category inside this menu?

@jancborchardt

Copy link
Copy Markdown
Member Author

Question: wouldnt it be even possible to add some headings into the menu to actuallly separate the apps based on their category inside this menu?

Certainly would be possible and could be considered if Hub grows more, but I think that’s too much at least for now.

@jancborchardt

Copy link
Copy Markdown
Member Author

/compile

Comment thread lib/private/NavigationManager.php Outdated
// Set order from user defined app order, then the default app order.
// The default order is skipped for users that sorted the apps themselves,
// so a newly installed app does not jump to the front of their order.
$defaultOrder = $this->customAppOrder === [] ? (self::DEFAULT_APP_ORDER[$id] ?? null) : null;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this line is needed

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Without the line, when someone installs an app defined inside the default order (e.g. Deck) later on, it would then mess with their custom ordering.
With this line, it gets added to the end, as would be expected if you customized it.

@jancborchardt
jancborchardt force-pushed the feat/app-menu-default-order branch from 5f04ab1 to 1354275 Compare August 6, 2026 12:56
@jancborchardt

Copy link
Copy Markdown
Member Author

Rector fails on master too, so unrelated

@jancborchardt
jancborchardt requested a review from artonge August 6, 2026 13:13
Comment thread apps/appstore/appinfo/info.xml Outdated
Comment on lines +97 to +99
// Sections of the settings app itself. Their names ("Personal settings",
// "Appearance and accessibility", ...) are too long and varied for the header,
// so they all show as "Settings". Other settings entries keep their own name.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI comments like this are pretty bad. They will get outdated - because no one updates such comments - and once someone / something tries to understand whats going on it will just confuse.
Basically the reason why comments explaining the implementation are an anti-pattern, instead implementation should be self explaining.

(this is just an example there are more below - also using // will make them pretty useless as they are not even doc blocks).

Comment thread lib/private/NavigationManager.php Outdated
Comment on lines +31 to +55
/**
* Default app menu order, grouped by topic with four apps per row.
* Apps ship very different orders in their info.xml, so the values are
* negative to keep this group in front of everything else.
* Apps that are not listed keep their own order.
*/
private const DEFAULT_APP_ORDER = [
// Basics
'dashboard' => -100,
'files' => -99,
'office' => -98,
'photos' => -97,
// Collaboration
'spreed' => -96,
'mail' => -95,
'calendar' => -94,
'contacts' => -93,
// Productivity
'deck' => -92,
'collectives' => -91,
'tables' => -90,
'circles' => -89,
// All other apps follow, starting with Activity
'activity' => -88,
];

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why this? We already have default app orders set in the appinfo, of each of those apps.
So this is a breaking change not just visual polishing

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMHO If we really want to introduce this, than we should do this as a separate feature with the ability for the admin to override this instance wide (would then also resolve many requests by admins we received).

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So should this be changed in all the individual apps instead? I can do that, it’s just a mess if we want to change it again at some point.

As said in #62963 (comment), I think app devs themselves deciding the order is not a good default.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMHO If we really want to introduce this, than we should do this as a separate feature with the ability for the admin to override this instance wide (would then also resolve many requests by admins we received).

Ok, then I would do:

  • A section in Admin settings → Theming for App menu sorting
  • Same concept we use for the App menu sorting in Personal settings
  • A checkbox, checked by default, "Allow people to customize their app order"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jancborchardt I agree, but this is done in other places as well, like unified search and I think sharing, given that we don't have things like sandboxing, we assume that admins trust the apps they install to behave in good-faith so fighting for -9999 should not be an issue.

Still, it would probably make sense to have some sane default and then for all new apps to install as the last entry, and just sort them alphabetically on reset. This is what e.g. iOS does, but this would mean properly deprecating app-declared ordering.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this makes sense (what @kra-mo said).
Personally I would like bring up the discussion (not now) to remove the personal settings for app order at some point and instead move the app order adjustment directly to the app menu like its done on gdrive.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, so then what is the best course of action?
From what I understand, best would be to fix the order as individual PRs in each of the Hub apps, ok?

Because we do need a good default regardless, cause only a subset of admins and people will customize.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From my point of view:

  1. split this PR (split off the default order part)
  2. merge this PR with the polishing
  3. either adjust HUB apps or do the default order as a second PR

jancborchardt and others added 3 commits August 6, 2026 22:31
Assisted-by: ClaudeCode:claude-opus-5
Signed-off-by: Jan C. Borchardt <925062+jancborchardt@users.noreply.github.com>
Assisted-by: ClaudeCode:claude-opus-5
Signed-off-by: Jan C. Borchardt <925062+jancborchardt@users.noreply.github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
@jancborchardt
jancborchardt force-pushed the feat/app-menu-default-order branch from 1354275 to 965290e Compare August 6, 2026 21:35
Comment on lines +97 to +99
// Sections of the settings app itself. Their names ("Personal settings",
// "Appearance and accessibility", ...) are too long and varied for the header,
// so they all show as "Settings". Other settings entries keep their own name.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// Sections of the settings app itself. Their names ("Personal settings",
// "Appearance and accessibility", ...) are too long and varied for the header,
// so they all show as "Settings". Other settings entries keep their own name.

Comment on lines +184 to +186
// Trigger label. Sections of the settings app show as "Settings",
// see SETTINGS_SECTION_IDS. All other entries use their own name,
// so the app management page shows "Apps" like in the account menu.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// Trigger label. Sections of the settings app show as "Settings",
// see SETTINGS_SECTION_IDS. All other entries use their own name,
// so the app management page shows "Apps" like in the account menu.

Comment on lines +217 to +218
// On the app management page the "More apps" tile is the current
// entry, so it is marked active like any other app tile.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// On the app management page the "More apps" tile is the current
// entry, so it is marked active like any other app tile.

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

Labels

3. to review Waiting for reviews AI assisted design Design, UI, UX, etc. enhancement feature: apps management papercut Annoying recurring UX issue with possibly simple fix.

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

8 participants