<<<<<<< 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+oto enter session mode - Press
pto 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 --releaseContributions 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.