| Crates.io | r-hyprconfig |
| lib.rs | r-hyprconfig |
| version | 1.0.0 |
| created_at | 2025-07-25 12:26:55.911521+00 |
| updated_at | 2025-07-25 12:26:55.911521+00 |
| description | A modern TUI for managing Hyprland configuration |
| homepage | https://github.com/olafkfreund/r-hyprconfig |
| repository | https://github.com/olafkfreund/r-hyprconfig |
| max_upload_size | |
| id | 1767559 |
| size | 2,197,007 |
🚀 A modern TUI for visually configuring Hyprland
A production-ready terminal user interface for managing Hyprland window manager configuration with real-time updates, comprehensive validation, and seamless NixOS integration.

# Install from GitHub releases
wget https://github.com/olafkfreund/r-hyprconfig/releases/download/v1.0.0/r-hyprconfig_v1.0.0_amd64.deb
sudo dpkg -i r-hyprconfig_v1.0.0_amd64.deb
# Or run with Nix
nix run github:olafkfreund/r-hyprconfig/v1.0.0
# Start configuring
r-hyprconfig
Sarah is a developer who wants to fine-tune her Hyprland setup
# Quick configuration tweaks
r-hyprconfig
# Navigate to General panel
# Adjust gaps_in from 5 to 8 pixels
# Press Enter to edit, type new value
# Press S to save configuration
# Changes applied instantly!
Sarah's Workflow:
Mike manages 20+ developer workstations with Hyprland
# Create standardized profiles
r-hyprconfig
# Press B for Batch Management
# 1. Create new profile "developer-workstation"
# Configure standard settings:
# - gaps_in = 5
# - gaps_out = 10
# - rounding = 8
# - Standard keybindings
# Deploy to multiple machines:
# 2. Select existing profile
# 3. Choose "Apply" operation
# Execute across all target machines
Mike's Workflow:
Alex uses NixOS with declarative configuration management
# Configure Hyprland graphically, export to Nix
r-hyprconfig
# Make visual changes in TUI
# Press N for NixOS Export
# Choose configuration type:
# 1. Home Manager standalone
# 2. System configuration
# 3. Flake-based Home Manager ← Alex chooses this
# 4. Flake-based NixOS system
# Preview generated Nix configuration
# Press Enter to export
Generated Nix Configuration:
{
description = "Home Manager flake with Hyprland configuration";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
hyprland.url = "github:hyprwm/Hyprland";
};
outputs = { nixpkgs, home-manager, hyprland, ... }: {
homeConfigurations."${USER}" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.x86_64-linux;
modules = [
hyprland.homeManagerModules.default
{
wayland.windowManager.hyprland = {
enable = true;
settings = {
general = {
gaps_in = 5;
gaps_out = 10;
border_size = 2;
};
decoration = {
rounding = 8;
blur = {
enabled = true;
size = 6;
};
};
bind = [
"SUPER, Q, exec, kitty"
"SUPER, W, killactive"
"SUPER, M, exit"
];
windowrule = [
"float, ^(kitty)$"
"opacity 0.8 0.8, ^(Alacritty)$"
];
};
};
}
];
};
};
}
Jordan wants different configurations for work and gaming
# Create work profile
r-hyprconfig
# Press B → 1 (Create profile)
# Configure: minimal gaps, no animations, productivity keybinds
# Create gaming profile
# Press B → 1 (Create profile)
# Configure: flashy animations, gaming-optimized keybinds
# Quick switching between profiles
# Press B → 2 → 1 (Apply work profile)
# Press B → 2 → 1 (Apply gaming profile)
Jordan's Profiles:
Clean, intuitive TUI interface showing General configuration options with tab navigation
Real-time configuration editing with validation and user-friendly interface
Navigate between different configuration sections: Input, Decoration, Animations, etc.
Built-in help system, search functionality, and comprehensive keyboard shortcuts
hyprctl command available in PATHGitHub Releases:
# Download latest release
wget https://github.com/olafkfreund/r-hyprconfig/releases/download/v1.0.0/r-hyprconfig_v1.0.0_amd64.deb
# Install (Debian/Ubuntu)
sudo dpkg -i r-hyprconfig_v1.0.0_amd64.deb
# Install (Fedora/RHEL/CentOS)
sudo rpm -i r-hyprconfig-v1.0.0-1.x86_64.rpm
From Source:
git clone https://github.com/olafkfreund/r-hyprconfig.git
cd r-hyprconfig
cargo build --release
sudo cp target/release/r-hyprconfig /usr/local/bin/
With Nix:
# Run directly
nix run github:olafkfreund/r-hyprconfig/v1.0.0
# Or install to profile
nix profile install github:olafkfreund/r-hyprconfig/v1.0.0
Add to your NixOS configuration:
{
imports = [
(builtins.getFlake "github:olafkfreund/r-hyprconfig").nixosModules.default
];
programs.r-hyprconfig.enable = true;
}
Add to your Home Manager configuration:
{
imports = [
(builtins.getFlake "github:olafkfreund/r-hyprconfig").homeManagerModules.default
];
programs.r-hyprconfig = {
enable = true;
settings = {
backup_enabled = true;
auto_save = false;
nixos_mode = true;
};
};
}
# Prerequisites: Rust 1.70+, pkg-config, OpenSSL dev libraries
git clone https://github.com/olafkfreund/r-hyprconfig.git
cd r-hyprconfig
cargo build --release
# Binary available at target/release/r-hyprconfig
./target/release/r-hyprconfig
# AUR (Arch Linux)
yay -S r-hyprconfig-git
# Cargo (Rust package manager)
cargo install r-hyprconfig
# Homebrew (macOS/Linux)
brew install olafkfreund/tap/r-hyprconfig
| Key | Action |
|---|---|
Tab / → |
Navigate to next panel |
Shift+Tab / ← |
Navigate to previous panel |
↑ / ↓ |
Navigate within panel |
Page Up / Page Down |
Scroll by page |
Home / End |
Go to first/last item |
| Key | Action |
|---|---|
Enter |
Edit selected configuration option |
S |
Save configuration to file |
R |
Reload configuration from Hyprland |
E |
Export configuration (TOML) |
M |
Import configuration |
| Key | Action |
|---|---|
N |
Export as NixOS configuration |
B |
Batch configuration management |
T |
Cycle through themes |
/ |
Search configuration options |
? / F1 |
Show help overlay |
Q / Esc |
Quit application |
Press / to enter search mode:
# Search examples:
/gaps # Find all gap-related settings
/border # Find border configuration
/animation # Find animation settings
/bind # Find keybinding options
When you press Enter on a setting:
Core window management settings:
Keyboard and mouse configuration:
Visual appearance settings:
Animation configuration:
Touchpad gesture configuration:
Keybinding management:
Application-specific window behavior:
Layer-specific rendering rules:
Additional Hyprland options:
The application automatically detects NixOS environments and provides seamless integration:
/etc/NIXOS fileNIX_STORE environment variablenixos-rebuild command availability/nix/store)Home Manager Standalone
# ~/.config/nixpkgs/home.nix
{ config, pkgs, ... }: {
wayland.windowManager.hyprland = {
enable = true;
settings = {
# Your settings here
};
};
}
System Configuration
# /etc/nixos/configuration.nix
{ config, pkgs, ... }: {
programs.hyprland = {
enable = true;
# User configuration in Home Manager
};
}
Flake-based Home Manager
{
description = "Home Manager flake with Hyprland";
inputs = {
hyprland.url = "github:hyprwm/Hyprland";
# ... other inputs
};
outputs = { ... }: {
homeConfigurations."user" = # ... configuration
};
}
Flake-based NixOS System
{
description = "NixOS flake with Hyprland";
inputs = {
hyprland.url = "github:hyprwm/Hyprland";
};
outputs = { ... }: {
nixosConfigurations.hostname = # ... configuration
};
}
Perfect for system administrators managing multiple Hyprland installations:
~/.config/r-hyprconfig/profiles/Scenario 1: New Employee Onboarding
# System admin creates standard developer profile
r-hyprconfig
# Configure optimal developer settings
# Press B → 1 to create "new-developer-2025" profile
# Deploy to new employee machines
# Press B → 2 → Select "new-developer-2025"
# Press 1 for Apply operation
# Consistent setup across all machines!
Scenario 2: Seasonal Configuration Updates
# Create "summer-theme" profile with bright colors
# Create "winter-theme" profile with dark colors
# Use batch operations to deploy seasonally
Scenario 3: Team-Specific Configurations
# Frontend team: Focus on visual tools
# Backend team: Terminal-heavy workflows
# QA team: Multi-monitor optimized
# Each team gets optimized profile
Location: ~/.config/r-hyprconfig/config.toml
hyprland_config_path = "/home/user/.config/hypr/hyprland.conf"
backup_enabled = true
auto_save = false
nixos_mode = false
theme = "Nord"
[nixos]
config_type = "HomeManager"
export_path = "/home/user/.config/nixos-exports/"
[batch]
profile_directory = "/home/user/.config/r-hyprconfig/profiles/"
auto_backup = true
Location: ~/.config/r-hyprconfig/profiles/
profiles/
├── developer-workstation-v1.toml
├── gaming-setup.toml
├── minimal-productivity.toml
└── metadata.json
Location: ~/.config/r-hyprconfig/exports/
exports/
├── hyprland_export_20250115_143022.toml
├── nixos-exports/
│ ├── hyprland_nixos_export_20250115_143045.nix
│ └── hyprland_nixos_export_20250114_091234.nix
└── backups/
└── hyprland_backup_20250115_143022.conf
Built-in themes for different preferences:
Press T to cycle through themes, or configure in config.toml:
theme = "Nord" # Nord, Dracula, Gruvbox, TokyoNight, Catppuccin, Solarized
Problem: Hyprland is not installed or not in PATH Solution:
# Verify Hyprland installation
which hyprctl
# Should return path like /usr/bin/hyprctl
# If not found, install Hyprland first
Problem: Cannot write to Hyprland config file Solution:
# Check file permissions
ls -la ~/.config/hypr/hyprland.conf
# Fix permissions if needed
chmod 644 ~/.config/hypr/hyprland.conf
Problem: Running on non-NixOS system Solution: NixOS export features are only available on NixOS systems. Use regular export (E key) instead.
Problem: Changes saved but not visible in Hyprland Solution:
# Manual reload
hyprctl reload
# Or restart Hyprland
# Mod + Shift + M (default exit keybind)
Run with debug output for troubleshooting:
r-hyprconfig --debug
# Shows detailed logging:
# - Configuration file operations
# - hyprctl command execution
# - Error stack traces
# - Performance metrics
Application logs are stored in:
~/.local/share/r-hyprconfig/logs/~/Library/Application Support/r-hyprconfig/logs/We welcome contributions! Here's how to get started:
# Clone repository
git clone https://github.com/olafkfreund/r-hyprconfig.git
cd r-hyprconfig
# Development with Nix (recommended)
nix develop
# Or traditional Rust development
cargo build
cargo test
cargo run -- --debug
The Nix flake provides:
cargo fmt and cargo clippy recommendationsThis project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ for the Hyprland community