Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Hermes Gruvbox 🎨

All 6 VS Code Gruvbox variants for Hermes Desktop — Dark/Light × Hard/Medium/Soft, with a visual switcher in Settings UI.

gruvbox-preview hermes-desktop license


✨ What's inside

Variant Palette Slug
Dark Hard #1d2021 deep charcoal vsc-gruvbox-dark-hard
Dark Medium #282828 warm dark vsc-gruvbox-dark-medium
Dark Soft #32302f muted dark vsc-gruvbox-dark-soft
Light Hard #f9f5d7 pale cream vsc-gruvbox-light-hard
Light Medium #fbf1c7 warm cream vsc-gruvbox-light-medium
Light Soft #f2e5bc soft cream vsc-gruvbox-light-soft

Each variant includes full palette mapping (background, sidebar, input, borders, ANSI terminal colors).


🚀 Quick start

1. Install all variants

node scripts/install.mjs

This fetches the original jdinhlife.gruvbox VS Code extension via hermesDesktop.themes.fetchMarketplace(), extracts all 6 themes, and saves them to localStorage.

2. Inject Settings UI

node scripts/inject.mjs

Adds a Gruvbox Variants section to Settings → Appearance — 6 color-preview cards for one-click switching.

⚠️ Injection is ephemeral — lost on Hermes restart. To make it permanent, add the inject command to your Hermes Desktop launcher (see below).

3. Switch via CLI

node scripts/switch.mjs                    # list variants
node scripts/switch.mjs dark-hard          # switch to Dark Hard
node scripts/switch.mjs light-soft         # switch to Light Soft

4. Switch via Cmd+K

Open Command Palette (Ctrl+K or Cmd+K), type Change theme..., then pick a Gruvbox variant.


🔧 Manual switching (no scripts)

If Hermes Desktop is running, you can switch themes programmatically from any browser DevTools:

// Switch to any variant
localStorage.setItem('hermes-desktop-theme-v2', 'vsc-gruvbox-dark-hard');

// Update profile selection
const profiles = JSON.parse(localStorage.getItem('hermes-desktop-profile-themes-v1') || '{}');
profiles.default = 'vsc-gruvbox-dark-hard';
localStorage.setItem('hermes-desktop-profile-themes-v1', JSON.stringify(profiles));

// Notify React
window.dispatchEvent(new StorageEvent('storage', {
  key: 'hermes-desktop-theme-v2',
  newValue: 'vsc-gruvbox-dark-hard'
}));

🖼️ Settings UI preview

When you run inject.mjs, a Gruvbox Variants section appears in Settings → Appearance below the built-in Theme selector:

┌────────────────────────────────┐
│  Theme                         │
│  [Nous ▼]                      │
│  ───────────────────────────── │
│  GRUVBOX VARIANTS              │
│  ┌──────┬──────┬──────┐        │
│  │██████│██████│██████│        │
│  │Dark  │Dark  │Dark  │        │
│  │Hard  │Medium│Soft  │        │
│  ├──────┼──────┼──────┤        │
│  │██████│██████│██████│        │
│  │Light │Light │Light │        │
│  │Hard  │Medium│Soft  │        │
│  └──────┴──────┴──────┘        │
└────────────────────────────────┘

Click any card — theme switches instantly. Active variant is highlighted.


🔁 Persist after restart

To keep the UI injection across Hermes Desktop restarts, edit your launcher:

# ~/.local/bin/hermes-desktop (or wherever your launcher is)
#!/bin/bash
export ELECTRON_OZONE_PLATFORM_HINT=x11
"$HOME/.hermes/hermes-agent/apps/desktop/release/linux-unpacked/Hermes" "$@" &
PID=$!

sleep 5                                          # wait for app to load
node "$HOME/.hermes/scripts/inject-gruvbox-switcher.mjs" 2>/dev/null &

wait $PID

🛠 Scripts reference

Script Purpose
scripts/install.mjs Install all 6 Gruvbox variants into localStorage
scripts/inject.mjs Inject visual switcher into Settings → Appearance
scripts/switch.mjs List / switch variants from CLI
themes/gruvbox-palette.md Full color reference

All scripts connect to Hermes Desktop via Electron CDP (kill -USR1 + WebSocket). They require Node.js 21+ (built-in WebSocket) and Hermes Desktop running.


📦 Requirements

  • Hermes Desktop ≥ v0.16.0
  • Node.js ≥ 21 (for native WebSocket) or 18+ (with ws package)
  • VS Code Marketplace access (for initial install — fetches the extension)

🤝 Contributing

PRs welcome! Ideas:

  • Add preview screenshot for README
  • Support more VS Code themes (Catppuccin, Dracula, Nord)
  • Package as a Hermes plugin

📄 License

MIT

About

Hermes Desktop Gruvbox Theme — all 6 VS Code variants (Dark/Light × Hard/Medium/Soft) with Settings UI switcher

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages