Skip to content

Add Omakub Theme Switcher GNOME Shell Extension #595

Open
szamski wants to merge 12 commits intobasecamp:masterfrom
szamski:master
Open

Add Omakub Theme Switcher GNOME Shell Extension #595
szamski wants to merge 12 commits intobasecamp:masterfrom
szamski:master

Conversation

@szamski
Copy link
Copy Markdown

@szamski szamski commented Jan 28, 2026

Summary

Adds a theme switcher directly in GNOME Quick Settings panel, allowing users to change Omakub themes without opening terminal.

Changes

  • GNOME Shell extension (extensions/omakub-theme@szamski/) - dropdown menu in Quick Settings
  • themes/apply-theme.sh - central script applying themes to GNOME, Alacritty, Neovim, VS Code, btop, Zellij
  • TopHat error handling - all theme tophat.sh scripts now handle missing extension gracefully
  • Updated set-gnome-extensions.sh - installs and enables the theme switcher extension

Features

  • Lists all available themes from ~/.local/share/omakub/themes/
  • One-click theme switching from system tray
  • No additional dependencies (pure GNOME Shell JS)

Testing

  • Tested on fresh Ubuntu 25.10 VM
  • All existing themes work correctly
  • Extension appears in Quick Settings after login

- Add Rust+GTK4 GUI application for theme switching
- Add GNOME Shell extension for Quick Settings integration
- Add desktop entry and launcher script
- Add automatic Rust and GTK4 installation if missing
- Add theme switcher icon
- Enable extensions via gsettings instead of gnome-extensions command
- Install theme switcher extension before enabling extensions
- Add proper delays for GNOME Shell to detect new extensions
- Preserve existing enabled extensions when adding new ones
- Add better error handling and user feedback
- Add error suppression to prevent installation failures
- Handle cases where TopHat extension is not yet loaded
- Update all theme tophat.sh files consistently
- Update boot.sh to clone from szamski/Omakub_by_Szamski
- Update README.md with feature branch installation command
- Change default branch from stable to feature/theme-switcher
- Change README install URL from feature/theme-switcher to main
- Change boot.sh default branch from feature/theme-switcher to main
- Allows OMAKUB_REF environment variable to override branch
- Centralizes theme application logic
- Applies themes to GNOME, Alacritty, Neovim, VS Code, btop, and Zellij
- Used by GNOME Shell extension for theme switching
- Supports all existing themes in themes/ directory
- Automatically compile gschemas for extensions after installation
- Fixes Blur My Shell 'gschemas.compiled not found' error
- Applies to all extensions that have schemas directory
- Add sensible defaults for Blur my Shell extension
- Enable blur for panel and overview with moderate intensity
- Disable blur for lockscreen and screenshots for performance
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant