Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -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, `<prefix>-` settings, title and icon. Nothing
Expand Down
4 changes: 2 additions & 2 deletions docs/notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
12 changes: 6 additions & 6 deletions docs/publishing.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`.

Expand All @@ -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

Expand Down Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion scripts/ext.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
1 change: 0 additions & 1 deletion src/icons/library-symbolic.svg

This file was deleted.

1 change: 0 additions & 1 deletion src/lib/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -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(),
});
Expand Down
4 changes: 2 additions & 2 deletions src/lib/library.js
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
7 changes: 2 additions & 5 deletions src/lib/libraryButton.js
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Loading