Skip to content

About

Top-bar study timer with stats and subject tracking (GNOME Shell extension)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stardust

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.

Requirements

  • GNOME Shell 45 through 50
  • The Extensions app (gnome-extensions-app on Fedora) to open the preferences window. Without it, gnome-extensions prefs fails with an import error instead of opening the window.

Install from source

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.dev

GNOME Shell only picks up a new or changed extension after a reload:

  • X11: Alt+F2, type r, Enter.
  • Wayland: log out and back in.

Build a distributable zip

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.zip

Then reload the shell as above.

Data

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/

Tests

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

About

Top-bar study timer with stats and subject tracking (GNOME Shell extension)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages