← Back to Repository

🎨 wezztershier - WezTerm GUI Tuner

Generate beautiful GUIs from WezTerm configuration decorators

A GUI tuner for WezTerm configuration that uses static decorator annotations in Lua files to generate interactive configuration interfaces. Available in two versions: Python (PyQt6-based) and high-performance Rust (with embedded web interface).

Static Decorators
Use comments to define GUI widgets
Rich Widget Library
Sliders, color pickers, selectors
PyQt6 Interface
Modern, responsive GUI framework
Live Configuration
Interactive WezTerm config editing

📦 Installation Options

RHEL/CentOS/Rocky/Alma/Fedora
🚀 RPM Install
# Add repository
sudo dnf config-manager --add-repo https://repos.musicsian.com/musicsian.repo # Install package
sudo dnf install wezztershier # Launch GUI
wezztershier # Parse config file
wezztershier ~/.config/wezterm/wezterm.lua
Arch Linux
🏛️ AUR Packages Available
# Python version (PyQt6)
yay -S wezztershier
# or: paru -S wezztershier # High-performance Rust version (recommended)
yay -S wezztershier-rust
# or: paru -S wezztershier-rust # Launch GUI (Python)
wezztershier # Launch GUI (Rust - embedded web interface)
wezztershier-rust gui ~/.config/wezterm/wezterm.lua

🔧 Decorator Grammar

wezztershier uses special comment annotations to generate GUI widgets:

-- @ui: slider(min=10, max=42, step=1) type=int config.font_size = 18 -- @ui: select(options="JetBrains Mono, Fira Code, Cascadia Code") type=string config.font = wezterm.font("JetBrains Mono") -- @ui: color_picker(format="hex", alpha=false) type=color config.colors = config.colors or {} config.colors.background = "#333333" -- @ui: numerical(min=0.5, max=5.5, step=0.01) type=float config.line_height = 1.29

🎯 Available Widget Types

slider - Integer/float range sliders numerical - Precise numeric input fields select - Dropdown selection menus color_picker - Color selection with hex/rgb formats checkbox - Boolean true/false toggles text - String input fields table - Complex data structure editors

📖 Usage Examples

# Launch the GUI tuner
wezztershier # Parse and display config sections
wezztershier ~/.config/wezterm/wezterm.lua # Generate GUI from specific sections
wezztershier --section colors ~/.config/wezterm/wezterm.lua # Export modified configuration
wezztershier --export ~/.config/wezterm/wezterm-new.lua

⚡ Performance Comparison

Rust Version
~10x faster parsing, 50% less memory, embedded web GUI
Python Version
Native PyQt6 widgets, familiar Python ecosystem

🏗️ Project Structure

wezztershier/ ├── src/wezztershier/ │ ├── cli.py # Command-line interface │ ├── core/ │ │ ├── parser.py # Lua config parser │ │ └── backup.py # Configuration backup │ ├── gui/ │ │ └── main_window.py # Main PyQt6 interface │ └── widgets/ │ ├── sliders.py # Slider implementations │ ├── color.py # Color picker widgets │ ├── selectors.py # Dropdown menus │ └── tables.py # Table editors