<<<<<<< A terminal user interface (TUI) plugin for Zellij that allows you to preview and switch between themes in real-time.
A terminal user interface (TUI) plugin for Zellij that allows you to preview and switch between themes in real-time.
- 🎨 Interactive theme selection with live preview
- 📡 Fetches latest themes directly from Zellij's repository
- 💾 Local theme caching for faster startup
- ⌨️ Vim-style navigation (j/k or arrow keys)
- 🔄 Force refresh option for theme updates
- 🏃 Fast and responsive TUI using ratatui
# Clone the repository
git clone https://github.com/yourusername/zellij-theme-plugin
cd zellij-theme-plugin
# Build the plugin
cargo build --release
# Copy the plugin to your Zellij plugins directory
mkdir -p ~/.config/zellij/plugins
cp target/release/libzellij_theme_selector.so ~/.config/zellij/plugins/
- Start Zellij
- Press
Ctrl+o
to enter session mode - Press
p
to open the plugin manager - Select "Theme Selector" to launch the plugin
↑/k
: Move selection up↓/j
: Move selection downEnter
: Apply selected themeq
: Quit the plugin
--force-refresh
: Force refresh theme list from GitHub
The plugin is implemented in Rust and uses:
ratatui
: Terminal user interface librarycrossterm
: Terminal manipulationreqwest
: HTTP client for fetching themestokio
: Async runtimekdl
: Configuration file parsingserde
: Serialization for theme caching
- Theme Discovery <<<<<<< HEAD
=======
b6f5dc0aeb099e2d568e472ebbb0973623363147
- Fetches themes from Zellij's GitHub repository
- Parses KDL theme files to extract theme names
- Caches results locally with hourly expiration
- Configuration Management <<<<<<< HEAD
=======
b6f5dc0aeb099e2d568e472ebbb0973623363147
- Automatically locates Zellij config file
- Uses KDL parser for safe config modifications
- Creates theme directory if needed
- User Interface
- Built with ratatui for a modern TUI experience
- Responsive design with status updates
- Vim-style keybindings
# Run with logging
RUST_LOG=debug cargo run
# Run with force refresh
cargo run -- --force-refresh
# Build for release
cargo build --release
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.