Skip to content

kastheco/hyprscreens

Repository files navigation

Hyprscreens

A sleek, modern monitor configuration tool for Hyprland

License: MIT Built with Rust Powered by Iced

InstallationUsageContributing


📦 Installation

From Source

# Install Rust if you haven't already
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Clone and build
git clone https://github.com/brkastner/hyprscreens.git
cd hyprscreens
cargo build --release

# Install
sudo cp target/release/hyprscreens /usr/local/bin/

Arch Linux (AUR)

Coming soon

yay -S hyprscreens

🎯 Quick Start

GUI Mode

Launch the application:

hyprscreens

CLI Mode

# Modify a monitor
hyprscreens modify DP-1 -r 2560x1440 --refresh-rate 144 -s 1.5

# Create a profile from current setup
hyprscreens profile save "Work Setup" -d "Dual monitor workspace"

# Apply a saved profile
hyprscreens profile apply "Work Setup"

# List all profiles
hyprscreens profile list

🔧 Configuration

Hyprland Integration

Add this to your ~/.config/hypr/hyprland.conf:

source = ~/.config/hypr/config/monitor.conf

Hyprscreens manages monitor.conf automatically with:

  • Automatic backups — Timestamped backups before every change
  • Smart merging — Preserves comments and non-monitor configuration
  • Safe writes — Atomic file operations prevent corruption

📖 Usage

Monitor Configuration

CLI

# Set resolution & refresh rate
hyprscreens modify DP-1 \
  -r 3840x2160 \
  --refresh-rate 144

# Position and scale
hyprscreens modify DP-1 \
  -p 1920,0 -s 1.5

# Enable VRR
hyprscreens modify DP-1 --vrr true

Profile Management

# Save current configuration
hyprscreens profile save "Gaming" -d "Triple monitor gaming setup"

# Apply a profile
hyprscreens profile apply "Gaming"

# List all profiles (shows which are applicable)
hyprscreens profile list

# Show detailed profile info
hyprscreens profile show "Gaming"

# Rename a profile
hyprscreens profile rename "Gaming" "Gaming 4K"

# Delete a profile
hyprscreens profile delete "Old Setup"

CLI Options

hyprscreens modify <MONITOR> [OPTIONS]

Options:
  -r, --resolution <WIDTHxHEIGHT>    Set resolution
      --refresh-rate <RATE>          Set refresh rate in Hz
  -p, --position <X,Y>               Set position coordinates
  -s, --scale <SCALE>                Set scale factor (0.5-3.0)
      --vrr <true|false>             Enable/disable VRR
      --transform <0-7>              Set rotation (0=normal, 1=90°, etc.)
  -e, --enabled <true|false>         Enable/disable monitor
      --bitdepth <8|10>              Set bit depth
      --apply / --no-apply           Apply immediately (default: true)
      --save / --no-save             Save to config (default: true)

Made with ❤️ for the Hyprland community

Report BugRequest Feature

About

hyprland monitor configuration tool

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors