Skip to content

About

Modern, minimal, and modular Hyprland configuration written 100% in Lua with Waybar, Rofi, and Gruvbox Material theme.

Topics

Resources

Stars

8 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

40 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

HyprlandLua πŸŒ™

A minimal, highly modular, Lua-powered Hyprland setup for Arch Linux. Featuring Waybar, Rofi, Kitty, Cava, screenshot utilities, and a neutral charcoal and gray theme.

Arch Linux Hyprland Lua License


πŸ“Έ Showcase

Clean Desktop Terminals & Visualizer
Desktop with neutral gray Waybar Terminal layout with system information and audio visualizer
App Launcher (Rofi) Lockscreen (Hyprlock)
Rofi launcher with charcoal surfaces and readable white labels Charcoal lock screen with gray accents and just type it bro placeholder

✨ Features

  • 100% Lua-Based: Hyprland configured entirely through Lua for ultimate scriptability.
  • Window Controls: Pin floating windows across workspaces and organize apps into tabbed groups.
  • Modular Structure: Clean, separated configuration modules that are easy to read and maintain.
  • Neutral Theme: Charcoal surfaces, soft white text, and gray accents across Rofi, Waybar, Hyprlock, and window borders.
  • Cava Integration: Audio visualizer with multiple custom GLSL shaders (Spectrogram, Northern Lights, Orion, Winamp-style) and color themes.
  • Clipboard History: Quick clipboard access using cliphist and Rofi (SUPER + A).
  • Wallpaper Picker: Browse cached wallpaper thumbnails with SUPER + ALT + W.
  • Dynamic Wallpapers: Switch between wallpapers using ALT + 1-9, or hit ALT + 0 to select a random wallpaper!
  • Power Menu: Lock, suspend, log out, reboot, and shut down from Rofi (SUPER + Escape).
  • Included Scripts: Custom utilities for screenshots and Waybar reloading.

πŸ“‚ Folder Structure

hyprlandLua/
β”œβ”€β”€ LICENSE
β”œβ”€β”€ README.md
└── .config
    β”œβ”€β”€ cava
    β”‚   β”œβ”€β”€ config
    β”‚   β”œβ”€β”€ shaders/
    β”‚   β”‚   β”œβ”€β”€ bar_spectrum.frag
    β”‚   β”‚   β”œβ”€β”€ eye_of_phi.frag
    β”‚   β”‚   β”œβ”€β”€ northern_lights.frag
    β”‚   β”‚   β”œβ”€β”€ orion_circle.frag
    β”‚   β”‚   β”œβ”€β”€ spectrogram.frag
    β”‚   β”‚   └── winamp_line_style_spectrum.frag
    β”‚   └── themes/
    β”‚       β”œβ”€β”€ solarized_dark
    β”‚       └── tricolor
    β”œβ”€β”€ hypr
    β”‚   β”œβ”€β”€ hyprland.lua
    β”‚   β”œβ”€β”€ hyprlock.conf
    β”‚   └── modules
    β”‚       β”œβ”€β”€ autostart.lua
    β”‚       β”œβ”€β”€ binds.lua
    β”‚       β”œβ”€β”€ decorations.lua
    β”‚       β”œβ”€β”€ env.lua
    β”‚       β”œβ”€β”€ input.lua
    β”‚       β”œβ”€β”€ layout.lua
    β”‚       β”œβ”€β”€ misc.lua
    β”‚       β”œβ”€β”€ monitors.lua
    β”‚       └── windowrules.lua
    β”œβ”€β”€ kitty
    β”‚   └── kitty.conf
    β”œβ”€β”€ rofi
    β”‚   β”œβ”€β”€ wallpaper-picker.rasi
    β”‚   β”œβ”€β”€ power-menu.rasi
    β”‚   β”œβ”€β”€ clipboard.rasi
    β”‚   β”œβ”€β”€ colors/
    β”‚   β”œβ”€β”€ scripts/
    β”‚   β”‚   β”œβ”€β”€ launcher.sh
    β”‚   β”‚   β”œβ”€β”€ power-menu.sh
    β”‚   β”‚   └── wallpaper-picker.py
    β”‚   └── style.rasi
    β”œβ”€β”€ screenshot
    β”‚   └── screenshot-script.sh
    β”œβ”€β”€ wallpaper
    β”‚   β”œβ”€β”€ pic1.png
    β”‚   └── ... (your wallpapers here)
    └── waybar
        β”œβ”€β”€ colors/
        β”œβ”€β”€ config.jsonc
        β”œβ”€β”€ scripts/
        β”‚   └── launch.sh
        └── style.css

πŸ—ΊοΈ File Locations

Component Path
Main Hyprland Config ~/.config/hypr/hyprland.lua
Hyprlock Config ~/.config/hypr/hyprlock.conf
Keybindings ~/.config/hypr/modules/binds.lua
Decorations & Animations ~/.config/hypr/modules/decorations.lua
Window Rules ~/.config/hypr/modules/windowrules.lua
Cava Audio Config ~/.config/cava/config
Cava Shaders ~/.config/cava/shaders/
Wallpapers Directory ~/.config/wallpaper/
Kitty Config ~/.config/kitty/kitty.conf
Rofi Theme ~/.config/rofi/style.rasi
Waybar Config ~/.config/waybar/config.jsonc
Screenshot Script ~/.config/screenshot/screenshot-script.sh

πŸ“¦ Dependencies

Hyprland Compatibility

This configuration requires Hyprland's native Lua configuration support and the hl API. See the Hyprland 0.55.0 configuration guide for the Lua configuration format. Installing standalone Lua does not add Lua configuration support to older Hyprland builds.

Check your installed version with hyprctl version. The desktop configuration has been exercised on Hyprland 0.56.2 with Hyprlock 0.9.6. The Lua API may differ between releases.

Core (Required)

sudo pacman -S hyprland hyprlock waybar rofi kitty wl-clipboard cliphist swaync

Current Arch Linux rofi packages include native Wayland support. Older distributions may still package it separately as rofi-wayland.

Optional (Used in this Setup)

# Audio, brightness, screenshots, visualizer, and notifications
sudo pacman -S cava brightnessctl wireplumber playerctl grim slurp pavucontrol libnotify

wireplumber provides wpctl for the volume and microphone bindings and requires a working PipeWire audio session. libnotify provides optional screenshot notifications. Install awww separately for wallpaper switching; autostart launches awww-daemon.

Personal Application Shortcuts

These applications are optional. Install them or change the corresponding commands in hyprland.lua and modules/binds.lua:

Shortcut Command Application / Arch package
SUPER + E nautilus Files (nautilus)
SUPER + F firefox Firefox (firefox)
SUPER + W kitty -e nmtui NetworkManager TUI (networkmanager)
SUPER + B blueman-manager Bluetooth manager (blueman)
SUPER + I idea IntelliJ IDEA; ensure its launcher is on PATH

Fonts

The themes reference Iosevka Nerd Font (including the Propo variant) and JetBrainsMono Nerd Font. Install these fonts or update the font settings in Waybar, Rofi, Kitty, and Hyprlock to match your installed fonts.


πŸš€ Installation Guide

1. Clone the Repository

git clone https://github.com/KrishnaX12/hyprlandLua.git
cd hyprlandLua

2. Make Scripts Executable

chmod +x .config/rofi/scripts/wallpaper-picker.py .config/rofi/scripts/power-menu.sh .config/rofi/scripts/launcher.sh .config/screenshot/screenshot-script.sh .config/waybar/scripts/launch.sh

3. Back Up and Copy Configuration Files

Back up any existing ~/.config/{cava,hypr,kitty,rofi,screenshot,wallpaper,waybar} directories before continuing. The copy command below merges directories and overwrites matching files.

mkdir -p ~/.config
cp -r .config/* ~/.config/

4. Start the Session

Review hyprland.lua and modules/monitors.lua for your applications and displays. Log out and start a new Hyprland session after the first installation so the hyprland.start handler launches Waybar, SwayNC, the wallpaper daemon, and clipboard history.

For later configuration edits, reload without restarting the session:

hyprctl reload

Reloading does not rerun the hyprland.start handler.


Window Pinning and Groups

Shortcut Action
SUPER + P Make the focused window floating and toggle pinning across workspaces
SUPER + V Toggle floating / tiling
SUPER + G Create or dissolve a tabbed group
SUPER + Tab Next window in the focused group
SUPER + SHIFT + Tab Previous window in the focused group
SUPER + CTRL + Arrow Move the focused window into the neighboring window's group, creating a group if needed

SUPER + P replaces the previous pseudotiling shortcut. Unpinning leaves the window floating; use SUPER + V after unpinning to return it to tiling. Move floating windows with SUPER + left mouse drag and resize with SUPER + right mouse drag.

To try tabs, open two terminals side by side, focus one, and press SUPER + CTRL + Left or Right toward the other. Both now share a tile. Click a title or use the Tab shortcuts to switch. SUPER + G dissolves the group. Single-window groups hide their tab bar; selected tabs use light gray with dark text.

These controls use native Hyprland dispatchers and require no plugin. Group appearance is configured in modules/decorations.lua.

Wallpaper Picker

Install Python and ImageMagick (sudo pacman -S python imagemagick), plus awww for applying wallpapers. The existing autostart module starts awww-daemon.

Press SUPER + ALT + W, select a thumbnail, and press Enter to apply it. Escape cancels. The picker scans ~/.config/wallpaper/, including subdirectories, for PNG, JPEG, WebP, GIF, BMP, and AVIF files. Add images to this directory and reopen the picker to see them. Existing ALT + 1–9 and ALT + 0 shortcuts remain available.

Thumbnails are cached under ${XDG_CACHE_HOME:-~/.cache}/wallpaper-picker/ and regenerated when an image changes. Delete this directory to clear the previews. Images that cannot be previewed still appear by filename. The first opening may take longer while previews are generated.

Power Menu

Press SUPER + Escape to open the power menu. Lock and suspend execute immediately. Log out, reboot, and shut down require a second confirmation, with Cancel selected by default. Escape closes either menu without taking action.

The menu uses hyprlock and systemctl. Log out uses hyprshutdown when installed, otherwise Hyprland's native Lua exit dispatcher. The physical power button keeps its existing behavior.

Theme

Rofi uses .config/rofi/colors/neutral.rasi; Waybar uses .config/waybar/colors/neutral.css. Hyprlock colors are in .config/hypr/hyprlock.conf, and window borders are in .config/hypr/modules/decorations.lua.

The palette uses charcoal #181a1b, white text #e6e6e6, gray accents #939a9e, and light active borders #b8bec2. Error and warning colors remain red and yellow. Waybar keeps the original volume/visualizer, centered clock/workspaces, and visualizer/battery layout.

After copying the files, reopen Rofi, reload Waybar with SUPER + R, and run hyprctl reload for window borders. Hyprlock reads its theme the next time you lock with SUPER + L.

πŸ“ Notes

⚠️ Disclaimer: Always back up your existing ~/.config files before installation!

  • Built and tested heavily on Arch Linux.
  • Feel free to fork, modify, and improve. If you add cool new Lua modules, pull requests are welcome!

License

The configuration and scripts are available under the MIT License. Bundled wallpapers and third-party shaders retain their original authors’ rights and licenses.

About

Modern, minimal, and modular Hyprland configuration written 100% in Lua with Waybar, Rofi, and Gruvbox Material theme.

Topics

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages