Load the Nextcloud theme in App navigation and name its core icons.

The shell paints the instance wallpaper by default, and ExApps pick menu icons from NextcloudIcons instead of raw paths.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-28 20:12:02 +02:00
co-authored by Cursor
parent 7a915aee7b
commit d4c18e63bb
4 changed files with 276 additions and 16 deletions
+93
View File
@@ -0,0 +1,93 @@
package gonexapp
// NextcloudIcons are SVG paths served by Nextcloud core under /core/img/.
// The library does not ship the files. Set Item.Icon to one of these.
// Dark mode inverts them with Nextcloud’s --background-invert-if-dark filter.
var NextcloudIcons = nextcloudIcons{
Folder: "/core/img/filetypes/folder.svg",
FolderShared: "/core/img/filetypes/folder-shared.svg",
FolderPublic: "/core/img/filetypes/folder-public.svg",
FolderStarred: "/core/img/filetypes/folder-starred.svg",
FolderEncrypted: "/core/img/filetypes/folder-encrypted.svg",
File: "/core/img/filetypes/file.svg",
Text: "/core/img/filetypes/text.svg",
Image: "/core/img/filetypes/image.svg",
Audio: "/core/img/filetypes/audio.svg",
Video: "/core/img/filetypes/video.svg",
PDF: "/core/img/filetypes/application-pdf.svg",
Document: "/core/img/filetypes/x-office-document.svg",
Spreadsheet: "/core/img/filetypes/x-office-spreadsheet.svg",
Presentation: "/core/img/filetypes/x-office-presentation.svg",
Files: "/core/img/places/files.svg",
Home: "/core/img/places/home.svg",
Calendar: "/core/img/places/calendar.svg",
Contacts: "/core/img/places/contacts.svg",
Add: "/core/img/actions/add.svg",
Delete: "/core/img/actions/delete.svg",
Edit: "/core/img/actions/edit.svg",
Rename: "/core/img/actions/rename.svg",
Download: "/core/img/actions/download.svg",
Upload: "/core/img/actions/upload.svg",
Share: "/core/img/actions/share.svg",
Search: "/core/img/actions/search.svg",
Settings: "/core/img/actions/settings.svg",
Info: "/core/img/actions/info.svg",
History: "/core/img/actions/history.svg",
Password: "/core/img/actions/password.svg",
Confirm: "/core/img/actions/confirm.svg",
Close: "/core/img/actions/close.svg",
Star: "/core/img/actions/star.svg",
User: "/core/img/actions/user.svg",
Group: "/core/img/actions/group.svg",
Mail: "/core/img/actions/mail.svg",
Menu: "/core/img/actions/menu.svg",
External: "/core/img/actions/external.svg",
Filter: "/core/img/actions/filter.svg",
Recent: "/core/img/actions/recent.svg",
Tag: "/core/img/actions/tag.svg",
}
// nextcloudIcons is the named set of core SVGs. Fields are paths, not image bytes.
type nextcloudIcons struct {
Folder string
FolderShared string
FolderPublic string
FolderStarred string
FolderEncrypted string
File string
Text string
Image string
Audio string
Video string
PDF string
Document string
Spreadsheet string
Presentation string
Files string
Home string
Calendar string
Contacts string
Add string
Delete string
Edit string
Rename string
Download string
Upload string
Share string
Search string
Settings string
Info string
History string
Password string
Confirm string
Close string
Star string
User string
Group string
Mail string
Menu string
External string
Filter string
Recent string
Tag string
}