A GNOME Shell top-bar extension for tracking study sessions by subject. Click the panel icon to start a 60-minute timer for a subject, pause or stop it from the popup, and open the preferences window for stats and subject management.
- GNOME Shell 45 through 50
- The Extensions app (
gnome-extensions-appon Fedora) to open the preferences window. Without it,gnome-extensions prefsfails with an import error instead of opening the window.
Copy extension/ into GNOME's extensions directory, named after the UUID in metadata.json:
mkdir -p ~/.local/share/gnome-shell/extensions/stardust-tray@owenwang.dev
cp -r extension/* ~/.local/share/gnome-shell/extensions/stardust-tray@owenwang.dev/
gnome-extensions enable stardust-tray@owenwang.devGNOME Shell only picks up a new or changed extension after a reload:
- X11: Alt+F2, type
r, Enter. - Wayland: log out and back in.
gnome-extensions pack only bundles metadata.json, extension.js, prefs.js, and stylesheet.css by default, so every other file needs --extra-source:
cd extension
gnome-extensions pack --force \
--extra-source=stylesheet.css \
--extra-source=icons \
--extra-source=timer.js \
--extra-source=store.js \
--extra-source=jsonStore.js \
--extra-source=subjects.js \
--extra-source=statsView.js \
--extra-source=subjectsDialog.js \
.This writes stardust-tray@owenwang.dev.shell-extension.zip. Install it with:
gnome-extensions install --force stardust-tray@owenwang.dev.shell-extension.zipThen reload the shell as above.
Sessions and subjects are stored as JSON under ~/.local/share/stardust/. If you're migrating from the old flatpak build, copy its data over first:
cp -r ~/.var/app/dev.owenwang.Stardust/data/stardust/. ~/.local/share/stardust/There's no test framework, just a couple of self-checks that run under gjs against a scratch data directory:
XDG_DATA_HOME=$(mktemp -d) gjs -m tests/selfcheck.js
XDG_DATA_HOME=$(mktemp -d) gjs -m tests/timer.selfcheck.js