diff --git a/CLAUDE.md b/CLAUDE.md index 281c971..d35116f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -15,7 +15,7 @@ GObject class names and `ml-` style classes. ## Layout - `src/` ships as far as `./scripts/ext.conf`'s `EXT_SHIP` says: the entry points, - stylesheet and schema, `lib/` and `backend/`'s JS and `icons/`' SVG, never the + stylesheet and schema, `lib/` and `backend/`'s JS, never the `CLAUDE.md` notes under it (`src/backend/CLAUDE.md`, the scanner's). - `src/lib/library.js`: `SECTIONS` (TV Shows, Films and Games, in that order) is a section's whole identity, its key, `-` settings, title and icon. Nothing diff --git a/docs/notes.md b/docs/notes.md index 0cca8a8..b4d8b4f 100644 --- a/docs/notes.md +++ b/docs/notes.md @@ -45,8 +45,8 @@ Design reasoning that the code keeps to one line or none. wallpaper menu rather than the item. - The previews are attached on the overview's `showing`, not `shown`: the shell builds them before it animates in, so the clones are there from the first frame. -- `icons/library-symbolic.svg` is the television the TV Shows group has in Slider - Overlay. Its `-symbolic` name makes St recolour it to the theme's foreground. +- The button's icon is the theme's `tv-symbolic`, the TV Shows section's too, so it + follows the icon theme and St recolours it. ## Scanner diff --git a/docs/publishing.md b/docs/publishing.md index ac7bc6d..382f7d1 100644 --- a/docs/publishing.md +++ b/docs/publishing.md @@ -16,10 +16,10 @@ Private API is [private-api.md](private-api.md)'s; versions are `./scripts/ext.conf`'s `EXT_SHIP` patterns) to a stage, and adds the root `LICENSE`; 3. runs `gnome-extensions pack` there with `--extra-source` for `lib`, - `backend`, `icons` and `LICENSE` (it adds `extension.js`, `metadata.json`, + `backend` and `LICENSE` (it adds `extension.js`, `metadata.json`, `prefs.js`, `stylesheet.css` and the schema XML itself); 4. diffs the zip against the files that should ship (those, plus - every `lib/*.js`, `backend/*.js` and `icons/*.svg`) and fails on anything + every `lib/*.js` and `backend/*.js`) and fails on anything missing or extra; 5. writes `dist/library-menu@jackicus.shell-extension.zip`. @@ -30,7 +30,7 @@ download's `schemas/`, which is why the pack checks `--strict` first. What ships: the entry points and stylesheet; `lib/`, the shell side, all of it in the compositor; `backend/`, the scanner, run as its own process (below); -`icons/library-symbolic.svg`, the button's icon; `LICENSE`. +`LICENSE`. The button's icon is the theme's `tv-symbolic`, so no icon file ships. ### Testing the zip @@ -133,9 +133,9 @@ Checked against both pages as read on 2026-10-02, before the 1.0 release, again is CC BY-SA; the README and the description credit both, and the pane shows a synopsis without a source line, to keep it simple for now. 2. **GNOME 48 and 49** are unclaimed until booted ([compatibility.md](compatibility.md)). -3. **The button's icon: open.** `icons/library-symbolic.svg` appears to share its path data with - Material Design's "tv" icon (Apache-2.0), uncredited. Credit it, or use Adwaita's - `tv-symbolic`, before an upload. +3. **The button's icon: settled.** It is the theme's own `tv-symbolic`; the earlier + `icons/library-symbolic.svg`, whose path data matched Material Design's "tv" + (Apache-2.0), is gone. ## Uploading diff --git a/scripts/ext.conf b/scripts/ext.conf index 157c56f..fdccff5 100644 --- a/scripts/ext.conf +++ b/scripts/ext.conf @@ -6,7 +6,7 @@ EXT_NAME='Library Menu' EXT_LOG_PREFIX='[Library Menu]' EXT_APP_CLASS=LibraryApp # What ships besides the entry points, metadata, stylesheet and schema: DIR:PATTERN under src/. -EXT_SHIP=("lib:*.js" "backend:*.js" "icons:*.svg") +EXT_SHIP=("lib:*.js" "backend:*.js") # dev.sh commands 'dev.sh check' (and so 'make check') runs after the schema. EXT_CHECKS=(scanner) # Helpers 'nested.sh stop' sweeps if they outlive the session: the virtual pad. diff --git a/src/icons/library-symbolic.svg b/src/icons/library-symbolic.svg deleted file mode 100644 index e8ffcce..0000000 --- a/src/icons/library-symbolic.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/lib/app.js b/src/lib/app.js index 0a3e699..920ed4e 100644 --- a/src/lib/app.js +++ b/src/lib/app.js @@ -127,7 +127,6 @@ export class LibraryApp { this._monitor = null; this._previews = null; this._button = new LibraryButton({ - path: extension.path, settings: this._settings, onActivate: () => this._toggleLibrary(), }); diff --git a/src/lib/library.js b/src/lib/library.js index 663986c..62794a3 100644 --- a/src/lib/library.js +++ b/src/lib/library.js @@ -35,10 +35,10 @@ export const SECTIONS = [ }, ]; -// The button's title and icon; -symbolic, so St recolours it. +// The button's title and icon, the theme's own. export const LIBRARY = { title: 'Library', - icon: 'icons/library-symbolic.svg', + icon: 'tv-symbolic', }; export function sectionByKey(key) { diff --git a/src/lib/libraryButton.js b/src/lib/libraryButton.js index 4c48517..b40b77f 100644 --- a/src/lib/libraryButton.js +++ b/src/lib/libraryButton.js @@ -40,11 +40,8 @@ class LibraryButtonIcon extends Dash.ShowAppsIcon { }); export class LibraryButton { - // The icon is read from the extension directory: lib/ runs from a staged copy. - constructor({path, settings, onActivate}) { - this._gicon = new Gio.FileIcon({ - file: Gio.File.new_for_path(GLib.build_filenamev([path, LIBRARY.icon])), - }); + constructor({settings, onActivate}) { + this._gicon = new Gio.ThemedIcon({name: LIBRARY.icon}); this._settings = settings; this._onActivate = onActivate; this._button = null;