You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Browse filesBrowse the repository at this point in the historyBrowse files
BeatLink
committed
feat(halon): replace TAMTheme with Halon, pulled from its own repository
The theme now lives in github.com/BeatLink/Halon and is built there from the
same token set as its GTK, Cinnamon, Qt, VS Code and terminal implementations,
so this addon vendors no copy: the stylesheet note points straight at
trilium/halon.css, pinned to a Halon commit. A published manifest carries an
absolute sourceUrl through untouched and hashes it by its URL rather than its
content, so moving the pin is also what tells TAM there is an update to fetch —
a branch URL would be silently frozen. bump-halon moves it, refusing to write a
commit that does not actually serve the file.
Rebuilding against Halon's specification changed the look in four visible ways:
the navigation frame is the recessed light surface rather than dark navy, so
the theme no longer forces a third on-colour; buttons regain all three weights
instead of every one being an accent ghost; there is no softened accent, so a
row you pick is the accent itself; and dark-mode fills carry dark text, which
is what the palette was always audited for.
The id changes with the name, so TAM cannot match an existing install: this is
an install-and-remove, not an update. The README says so.
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -40,6 +40,7 @@ Or download individual `.zip` files from [Releases](https://github.com/BeatLink/
40
40
|[Expanded](addons/expanded@beatlink/)| widget | Keep selected notes always expanded in the note tree. Tick the promoted 'Always Expanded' checkbox on any note to pin it open permanently, even after restarting Trilium. The label and its promoted definition are configurable in settings. | 2.1.0 |
41
41
|[Font Awesome Icons](addons/font-awesome-icons@hulmgulm/)| iconpack | Font Awesome 7 free solid and brand icons as note icons, under the fa-solid and fa-brands prefixes. | 1.2.1 |
42
42
| [Game Tracker](addons/game-tracker@beatlink/) | widget | A video game tracker for TriliumNext. Your whole library lives in one JSON note created under a library root you choose, so it is a single note you can back up, inspect, or hand-edit. Pick any note as the Library Root and the addon wires it up for you: it becomes a render note showing the tracker, and switching roots reverts the old one. Metadata comes from an ordered list of seven sources -- IGDB, RAWG, Steam, GOG, Lutris, SteamGridDB, and TheGamesDB -- merged FIELD BY FIELD rather than picked one at a time: the first source supplying a value wins that field, and anything it leaves empty falls through to the next, so one game can carry IGDB's platforms, SteamGridDB's cover, and Steam's summary. Reordering changes precedence and untick disables. Three sources (Steam, GOG, Lutris) need no API key at all, so the tracker works with zero setup even where Twitch's two-factor requirement makes IGDB unobtainable. The chain stops as soon as every field is filled, so sources placed lower are only consulted for genuine gaps -- which is how the quota-limited TheGamesDB stays cheap at the end of the order. Each source records which fields it supplied, so provenance is visible per game. The composite is used everywhere metadata is read, not just on import: the library refresh re-merges every enabled source rather than only the first, and the details page is composed the same way -- addressing each source by its own recorded id, the Steam appid, or the title -- so a game with no IGDB id, including a Steam-only or file-imported one, opens and refreshes exactly like any other. Steam is a one-way import source for owned games and playtime, read but never written to; on IGDB, Steam appids are resolved in bulk through the external_games index so a whole library matches in a handful of requests. A library file can also be imported directly: an IGDB GDPR data export, or any CSV/JSON list of games. Because such files carry only titles, every row is matched by name and the result is previewed -- matched, unmatched, and already-tracked counts, with the provider's own spelling shown -- before anything is written. Statuses are fully user-defined -- add, rename, recolour, reorder, or remove them on the Statuses tab. Each status carries a role (backlog / playing / done / abandoned / none) and imports target the role rather than the name, so renaming Beaten to Finished, or adding a Wishlist alongside Backlog, never breaks an import. A game stores a status id, so renaming one touches no data, and removing a status leaves every game still holding it untouched rather than silently reclassifying it. Imports are additive and idempotent: games are keyed by their strongest known id and matched on any shared id so every source converges on one entry, playtime never moves backwards, and your own ratings and status are never overwritten unless you opt in. Nothing is ever marked Beaten by a Steam import -- playtime cannot tell whether a game was finished, so that stays your call. Each import reads the database once and writes once, so it cannot half-apply. Modelled on media-tracker@beatlink, which tracks films and TV. | 1.4.0 |
43
+
|[Halon](addons/halon@beatlink/)| theme | A slate and blue theme built on the TriliumNext next base: a recessed navigation frame, raised content, ghost-first controls and hairline structure, with a matching dark mode. Shares one token set with the Halon desktop, GTK, VS Code and terminal themes. | 0.2.0 |
43
44
|[Hoist Note](addons/hoist-note@beatlink/)| widget | A launchbar button that toggles hoisting on the current note. | 2.1.0 |
44
45
|[Margin Top](addons/margin-top@beatlink/)| css | This simple CSS adds extra padding to any notes with the #cssClass=margin-top label. Useful for headings in the tree view. | 1.0.4 |
45
46
| [Media Tracker](addons/media-tracker@beatlink/) | widget | A movie and TV tracker for TriliumNext. Your whole library lives in one JSON note created under a library root you choose, so it is a single note you can back up, inspect, or hand-edit. Pick any note as the Library Root and the addon wires it up for you: it becomes a render note showing the tracker, and switching roots reverts the old one. TMDB provides search, posters, and episode lists; Trakt and Stremio are one-way import sources, read but never written to. Per-episode progress for shows is a compact run-collapsed string (s01e01-e10,s02e01) rather than a list of every episode, so a fully-watched ten-season show stays a short value. Imports are additive and idempotent: titles are keyed by their strongest known id and matched on any shared id so different sources converge on one entry, episode progress is merged rather than replaced, and your own ratings and status are never overwritten unless you opt in. Each import reads the database once and writes once, so it cannot half-apply. Absorbs and replaces stremio-sync@beatlink. | 1.3.0 |
@@ -50,7 +51,6 @@ Or download individual `.zip` files from [Releases](https://github.com/BeatLink/
50
51
|[Priority Widget](addons/priority-widget@beatlink/)| widget | A right pane dropdown widget for setting the priority of a note, plus a Missing Priorities page that triages every note still lacking one, and configurable search-based filters to exclude specific notes from the picker. | 3.4.0 |
51
52
| [RSS Reader](addons/rss-reader@beatlink/) | widget | A feed reader for TriliumNext that also works as a full FreshRSS client. Subscribe to RSS, Atom, RSS 1.0 and JSON feeds and read them in one list, or point it at a FreshRSS server and get its feeds, folders, articles and read/starred state, with your changes pushed back through the Google Reader API it exposes. Sync is two-way: marking read or starring here reaches the server immediately, subscribing and unsubscribing happen on the server, and a change that fails to push is queued and retried on the next sync. Feeds, articles and state live in one JSON note you can back up, inspect, or hand-edit. Feed bodies are stripped of scripts and other executable markup before they are rendered. Fetching goes through a backend note, since a feed sends no CORS headers, so Trilium's backend scripting has to be enabled; there is no background sync, because parsing a feed needs the browser's XML parser and refreshes therefore happen while the widget is open. | 1.2.0 |
52
53
|[Simple Calendar](addons/simplecalendar@beatlink/)| widget | Shows a FullCalendar day/week/month view of either an external ics feed URL, or notes matching a configurable Trilium search, mapped to start/due date labels. Settings-driven, no manual note setup required. | 1.6.0 |
53
-
|[TAMTheme](addons/tamtheme@beatlink/)| theme | A full Trilium theme carrying the Trilium Addon Manager's own white/slate/blue design language across the whole app, with a matching dark mode. | 0.1.7 |
54
54
| [Template Picker](addons/template-picker@beatlink/) | widget | A right-pane widget for assigning or changing the template of the currently active note, or of a whole tree multi-selection at once, plus a Missing Templates page that triages every note still lacking one, and configurable search-based filters to exclude specific notes from the picker. Ships nine bundled template notes under its own persisted Templates container: eight item types (Ideas / Goal / Routine / Task / Future / Project / Note / Link, the last a Web View note carrying #webViewSrc and #url for a saved web page) and the AreaCollection container template, meant for per-area root notes rather than as an item's own type. It also ships one empty root container note per bundled item template (Ideas / Goals / Routines / Tasks / Future / Projects / Notes / Links), carrying only the template's icon and #viewType=list; as of 1.13.0 they sit beside the templates in the Templates container instead of under the AreaCollection template, so a new Area no longer comes out holding copies of them. Each registry row has a Root Note field so other addons can resolve a template's root. | 1.17.0 |
55
55
|[Timer](addons/timer@beatlink/)| widget | A countdown timer in its own right-pane panel, shown on every note. Pick hours, minutes and seconds from three dropdowns, then start, pause and reset; the remaining time flashes in the accent colour while it runs and in red once it expires. An editable label above the controls names what is being timed. Optional select/start/end sounds ship with the addon as customResourceProvider files and are toggled by the addon's single setting. Split out of agenda-myday@beatlink, which used to embed it in the My Day panel: it shares no code or config with the agenda addons and works on its own. | 1.2.1 |
56
56
|[ToggleNote](addons/togglenotes@beatlink/)| widget | Configurable buttons to quickly add or remove the current note as a child of one or more parent notes. Supports exclusive mode and placement in either the right pane or left pane launchbar. | 1.2.0 |
Copy file name to clipboardExpand all lines: addons/halon@beatlink/_tam_manifest_.json
+9-9Lines changed: 9 additions & 9 deletions
Original file line number
Diff line number
Diff line change
@@ -1,22 +1,22 @@
1
1
{
2
-
"id": "tamtheme@beatlink",
3
-
"name": "TAMTheme",
4
-
"description": "A full Trilium theme carrying the Trilium Addon Manager's own white/slate/blue design language across the whole app, with a matching dark mode.",
2
+
"id": "halon@beatlink",
3
+
"name": "Halon",
4
+
"description": "A slate and blue theme built on the TriliumNext next base: a recessed navigation frame, raised content, ghost-first controls and hairline structure, with a matching dark mode. Shares one token set with the Halon desktop, GTK, VS Code and terminal themes.",
0 commit comments