A command-line tool for managing and searching Regolith Linux configurations.
Regolith Config is a Rust-based CLI tool that helps users edit, manage, and search through Regolith Linux configurations. It provides functionality to search for keybindings, resources, and configuration files across different session types (X11 and Wayland).
- Search Configurations: Find keybindings, resources, and configuration files
- Session Support: Works with both X11 and Wayland sessions
- Config Management: Handle configuration partials and imports
- Resource Integration: Integrates with Trawl D-Bus service for resource management
- Keybinding Search: Search and resolve keybinding definitions with variable substitution
-
Clone the repository:
git clone https://github.com/your-repo/regolith-config.git cd regolith-config -
Build the project:
cargo build --release
-
Install the binary (optional):
sudo cp target/release/regolith-config /usr/local/bin/
# Search for keybindings
regolith-config search --filter bindings "Super+Enter"
# Search with specific session
regolith-config --session X11 search --filter bindings "Super+D"
# Search with Wayland session
regolith-config --session Wayland search --filter bindings "Super+Enter"Search for configurations using different filters:
regolith-config search [OPTIONS] <PATTERN>Options:
-f, --filter <FILTER>- Filter type:bindings,keyword, orresource-s, --session <SESSION>- Session type:X11orWayland(optional if $XDG_SESSION_TYPE is set)
Create a copy of a config partial and disable its system instance:
regolith-config eject [OPTIONS] <PATTERN>Options:
-f, --filter <FILTER>- Filter type-o, --output <OUTPUT>- File to write to
Help diff and reconcile upstream configs with local versions:
regolith-config reconcile <NAME>The tool automatically detects the session type from $XDG_SESSION_TYPE environment variable. If not available, you must specify the session using the --session flag.
Session Mappings:
- X11:
/etc/regolith/i3/config - Wayland:
/etc/regolith/sway/config
- Rust 2024 edition
- Cargo package manager
cargo buildcargo testanyhow- Error handlingclap- CLI argument parsingglob- File pattern matchingzbus- D-Bus communication with Trawl service
- FullConfig: Represents the complete Regolith configuration including all imported partials
- ConfigPartial: Represents individual configuration files with their imports
- CLIArguments: Command-line argument parser
- Search System: Handles different types of searches (bindings, keywords, resources)
- Config Discovery: Recursively discovers all imported configuration files
- Variable Resolution: Substitutes configuration variables in keybindings
- D-Bus Integration: Communicates with Trawl service for resource management
- Session Awareness: Adapts to X11 or Wayland session types
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License.
- Regolith Linux - The desktop environment this tool supports
- Trawl - The resource management service