A GNOME Shell extension to visualize your GitHub, GitLab, or Gitea / Forgejo contributions in the top bar
Weekly Commits transforms your git hosting activity into a beautiful visual representation directly in your GNOME Shell top bar. Stay motivated and track your coding consistency at a glance!
- 📊 Visual Contribution Calendar: Seven colorful boxes representing your weekly commit activity
- 🖱️ Interactive Popup: Click to see detailed daily commit counts
- ⚙️ Easy Configuration: Simple GUI preferences for credentials and settings
- 🔄 Auto-sync: Configurable intervals to keep your data fresh
- 💾 Offline Cache Fallback: Stores the last successful commit data locally and reuses it when network/API requests fail
- 📍 Flexible Positioning: Place the widget anywhere on your top bar
- GitHub: Personal Access Token authentication via the GitHub GraphQL API
- GitLab: Works with gitlab.com or any self-hosted GitLab instance
- Gitea / Forgejo: Works with any self-hosted Gitea or Forgejo instance
- 14+ Beautiful Themes: GitHub, Dracula, Halloween, Panda, Solarized, and more
- Custom Theme: Pick any accent color — the full intensity ramp is generated automatically
- Dual Coloring Modes:
- Opacity-based: Subtle transparency effects
- Grade-based: Distinct color intensities
- Week Start Options: Choose between Monday or Sunday start
- Custom Positioning: Perfect alignment with your workflow
- Visit the GNOME Extensions page
- Click "Install" and follow the browser prompts
- Enable the extension in the GNOME Extensions app
-
Clone the repository:
git clone https://github.com/funinkina/weekly-commits.git
-
Install to extensions directory:
mv weekly-commits ~/.local/share/gnome-shell/extensions/weekly-commits@funinkina.is-a.dev -
Restart GNOME Shell:
- X11: Press
Alt+F2, typer, and pressEnter - Wayland: Log out and log back in
- X11: Press
-
Enable the extension:
gnome-extensions enable weekly-commits@funinkina.is-a.devOr use the GNOME Extensions app
- GNOME Shell 46, 47, 48, 49, or 50
- Internet connection for live API updates (last successful data is cached for offline fallback)
Open Preferences by right-clicking the widget in the top bar, then select the Git Service you want to track.
- Go to GitHub Personal Access Tokens
- Create a Fine-grained Personal Access Token with:
- Repository Access: "All repositories" or select specific ones
- Permissions: Read access to repository metadata and contents
- Copy the generated token
- In Preferences, select GitHub, enter your username and paste the token
- In your Gitea/Forgejo instance, go to Settings → Applications → Access Tokens
- Generate a token with read access to your account
- In Preferences, select Gitea / Forgejo, enter the Instance URL (e.g.
https://gitea.example.com), your username, and the token
- Go to User Settings → Access Tokens on your GitLab instance (or gitlab.com)
- Create a token with the
read_apiscope - In Preferences, select GitLab, enter the Instance URL (e.g.
https://gitlab.comor your self-hosted URL), your username, and the token
- Update Interval: How often to refresh data (default: 6 hours)
- Position: Where to place the widget in the top bar
- Theme: Choose from 14+ beautiful color themes or pick a Custom accent color
- Coloring Mode: Opacity-based or grade-based visualization
- Week Start: Monday or Sunday
- Your token is stored locally and only used to fetch your public contribution data
- No data is transmitted to third parties
- The extension only reads your commit history, never modifies anything
Weekly Commits comes with a variety of beautiful themes to match your desktop:
| Theme | Description |
|---|---|
| GitHub | Classic GitHub contribution graph colors |
| Dracula | Popular dark theme with purple accents |
| Halloween | Spooky orange and black theme |
| Panda | Cute panda-inspired green theme |
| Solarized Dark/Light | Popular developer color schemes |
| Catpuccin Green | Soft green theme based around Frappe Green |
| Blue, Pink, Teal | Vibrant single-color themes |
| Sunny, YlGnBu | Gradient and scientific visualization themes |
| Custom | Pick any accent color; ramp generated automatically |
# Clone the repository
git clone https://github.com/funinkina/weekly-commits.git
cd weekly-commits
# Install to local extensions directory
make install
# Enable the extension
make enableWhen preparing a submission ZIP, only include source files required by the extension.
- Do not include
.git/data - Do not include compiled schema artifacts like
schemas/gschemas.compiled - Submit a clean ZIP built from source files
Recommended approach:
gnome-extensions pack --forceThis produces a review-ready archive from extension sources (including schema XML) without development metadata.
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- ✅ Settings page for credentials
- ✅ Automatic data fetching with configurable intervals
- ✅ Customizable top bar positioning
- ✅ Interactive daily commit popup
- ✅ Week start day configuration (Monday/Sunday)
- ✅ Multiple color themes and coloring modes
- ✅ Custom accent color theme with auto-generated intensity ramp
- ✅ Support for GitLab (hosted and self-hosted)
- ✅ Support for Gitea / Forgejo (self-hosted)
- 🔄 Customizable commit view thresholds
- 🔄 Internationalization and translations
- 🔄 Additional visualization modes
If you find Weekly Commits useful, consider supporting its development:
Extension not showing commits?
- Verify your username is correct for the selected service
- Ensure your Personal Access Token has the required permissions (see service setup above)
- For Gitea/Forgejo and GitLab, double-check the Instance URL (no trailing slash)
- Check your internet connection
- Look for error messages in
journalctl -fwhile testing
Seeing cached data while offline?
- This is expected: if live fetch fails, Weekly Commits shows your last successful 7-day data.
- Cache file location:
$XDG_CACHE_HOME/weekly-commits@funinkina.is-a.dev/commits-cache-v1.json(usually~/.cache/weekly-commits@funinkina.is-a.dev/commits-cache-v1.json). - You can safely delete the cache file at any time; it will be recreated automatically after the next successful fetch.
Widget not appearing in top bar?
- Make sure the extension is enabled in GNOME Extensions app
- Try restarting GNOME Shell (
Alt+F2, typer, press Enter on X11) - Check if the extension is compatible with your GNOME Shell version
Need help?
- Open an issue on GitHub
- Check existing issues for solutions
- Provide your GNOME Shell version and error logs
This project exists thanks to the contributions of:
- Aryan Kushwaha (@funinkina) - Original Creator & Lead Developer
- Initial extension concept and implementation
- Core GitHub API integration
- Base UI and functionality
- Project architecture and design decisions
- Aryan Techie (@Aryan-Techie) - Feature Developer & Contributor
- Theme system implementation (14+ color themes)
- Settings page enhancements and instant save functionality
- UI/UX improvements and bug fixes
- About section enhancements
- New Icon design and branding improvements
- Comprehensive documentation overhaul
Want to contribute? Check our Contributing Guidelines and join us!
This project is licensed under the MIT License. See the LICENSE file for details.
- Extension Page: GNOME Extensions
- Source Code: GitHub Repository
- Bug Reports: Issues
- Creator & Developer: Aryan Kushwaha
- Developer: Aryan Techie
Made with ❤️ for the GNOME community
Legal Notice: This project is not affiliated with or endorsed by GitHub, Inc. or the GNOME Foundation. The use of the GitHub logo and name is for informational purposes only and does not imply any endorsement or affiliation with GitHub, Inc. All trademarks and copyrights are the property of their respective owners.