Interface changes
Arbinel makes these smaller changes to Forgejo’s interface. None of them needs a setting unless the section says otherwise. The inbox and the themes have their own pages.
Repository switcher
Section titled “Repository switcher”A caret next to the owner / repository name in the repository header opens the Switch repository menu.
It lists the owner’s other repositories, most recently updated first, and the current one in bold.
Type in Find a repository… to filter the list by name.
| Key | Action |
|---|---|
| ↓ / ↑ | Move through the list |
| Enter | Open the highlighted repository |
| Esc | Close the menu |
The menu shows up to 100 repositories, and only those you can see. When the owner has more, Search all repositories at the bottom opens the owner’s profile. Repositories the owner only collaborates on are not listed.
Release outline
Section titled “Release outline”The release list and each release’s page show an All releases outline beside the releases.
It lists the five newest releases with their status and date.
Select Show all to list every release, grouped by major version, such as v3.x.
When the tags are not version numbers, the outline groups releases by year.
Type in Find a tag to search all releases by tag or title.
Selecting a release jumps to it on the page of the release list that shows it. While you scroll, the outline highlights the release you are reading. On narrow screens the outline is behind a Jump to a release button that stays at the top of the page.
The outline lists up to 500 releases. The newest stable release also carries a Latest label.
Search as you type
Section titled “Search as you type”The search box on these pages updates the results while you type, without a page reload:
- Explore: repositories, users and organizations
- an organization’s repositories
- a user profile’s repositories and starred repositories
- your watched repositories
Results update after a 300 ms pause in typing. The address bar keeps the query, so you can share or bookmark the results. Enter and the search button still work, and the form works without JavaScript. The repository list in the site administration keeps the plain form.
Markdown outline
Section titled “Markdown outline”Rendered Markdown files and READMEs have an Outline button in the file header. It opens a list of the document’s headings, nested by level. Type in Filter headings to narrow the list, and select a heading to jump to it.
The button shows only in the rendered view and only when the document has headings. Front matter controls it:
include_toc: falsehides the button.include_toc: mainkeeps Forgejo’s table of contents inside the document and hides the button.
Wrap a selection in the editor
Section titled “Wrap a selection in the editor”In the Markdown editor for comments and descriptions, select text and type one of these characters to wrap the selection instead of replacing it:
| Type | Result |
|---|---|
| ` * _ ~ ” ’ | The same character on both sides |
| ( [ { < | The matching pair, such as (text) |
The wrapped text stays selected, so you can type another character to add a second pair, such as ** for bold.
Ctrl+Z undoes the wrap in one step.
Wrapping does not happen when Ctrl, Alt or Meta is held, or when nothing is selected.
The file editor is unchanged, because it already wraps brackets.
Delete several branches
Section titled “Delete several branches”On a repository’s Branches page, tick the checkbox next to each branch to delete, or tick Select all to choose every branch on the page. Select Delete selected and confirm to delete them together. The button shows how many branches are selected.
The checkboxes appear for users who can write to the repository, and not in archived or mirrored repositories. The default branch, protected branches and branches that are already deleted have no checkbox. One request deletes up to 100 branches. Deleted branches stay in the list, and you can restore each one until Arbinel cleans up deleted branches. If a branch cannot be deleted, for example because someone protected it in the meantime, Arbinel deletes the others and names the ones it skipped.
Package pages
Section titled “Package pages”A package version’s page starts with the command to install it, and every command and digest on the page has a copy button.
For a container image, the page shows the docker pull command, or helm pull for a Helm chart, with a Copy button.
The image’s digest follows on the next line with its own copy button.
Images lists one entry per platform, such as linux/arm64, with its size and digest.
Select a platform to open its image page with the description, layers, labels and annotations.
On narrower screens Arbinel shortens long digests in the middle.
Select a shortened digest to show it in full.
For a generic package, each file has its own row with its size, its curl -OJ download command and a copy button.
Copy all copies the commands for every file at once.
The Details sidebar labels each value, such as Type, Repository, Published, Downloads and Last downloaded. The versions list marks the version you are viewing as current. Issues and Settings are buttons next to the package name. Issues shows when the package is linked to a repository you can read, and Settings shows when you can manage the package.
Commit history on phones
Section titled “Commit history on phones”The commit list fits narrow screens.
Author avatars and names stack, commit messages wrap, and dates show in short form, such as 3d ago or 2mo ago.
Hover over a date to see the full timestamp.
API documentation
Section titled “API documentation”The API reference at /api/swagger is rendered with Scalar instead of swagger-ui.
It has a sidebar, search, request examples for several languages and a client to send requests from the page.
/api/forgejo/swagger uses Scalar too.
The page loads nothing from outside the instance.
Scalar’s hosted fonts, its external API client link, its AI and MCP features and its telemetry are turned off.
Site administrators turn the page off with [api] ENABLE_SWAGGER, as described in Forgejo’s configuration cheat sheet.
Pinned issues
Section titled “Pinned issues”A repository can pin up to six issues, where Forgejo allows three.
Pinned issues show as compact cards above the issue list, three per row on wide screens.
Site administrators change the limit with [repository.issue] MAX_PINNED, described under Appearance and defaults.
Avatars in dark themes
Section titled “Avatars in dark themes”An avatar made for a light background can look out of place in a dark theme, such as a black logo on a white square. Arbinel handles this in two ways.
Dark avatar
Section titled “Dark avatar”Users, organizations and repositories can upload a second avatar for dark themes. Arbinel shows it instead of the usual avatar whenever a dark theme is active.
- Open the avatar settings:
- for your account, Settings → Profile
- for an organization, the organization’s Settings
- for a repository, the repository’s Settings
- Under Avatar for dark themes, choose an image and select Update dark avatar.
The image has the same size limits as the usual avatar. Delete dark avatar removes it.
With a dark theme, Arbinel shows the dark avatar.
With a theme that follows the system, such as codefloe-tide-auto, the browser switches between the two avatars when the system switches between light and dark.
With a light theme, Arbinel shows the usual avatar.
The API endpoints are listed under Dark avatars.
Automatic inversion
Section titled “Automatic inversion”Avatars without a dark version are inverted when they are black and white and clash with the theme. A black drawing on a white square becomes a white drawing on a black square in a dark theme. Black lines on a transparent background become white, so they stay visible. A white drawing on a black square is inverted in a light theme.
Avatars in colour are never inverted. Neither are avatars from Gravatar or another service, because the browser does not let the page read their pixels.