Cacaricos's Mind

Oct 19, 2024

Hyprlua

Hyprlua aims to end my frustration with configuring Hyprland using its configuration file. You can find the project at Hyprlua and the documentation at Hyprlua Docs

Features

This project currently supports only the features I use from Hyprland, suggestions and contributions are highly enouraged.

Currently Supported
  • Binds
  • General config
  • Monitors
  • Workspaces (supported currently by monitors)
  • Decoration
  • Blur
Soon to be supported
  • Submaps in binds
  • Startup scripts
  • Exec-once
  • Inputs
  • Touchpad
  • Touchdevice
  • Tablet
  • Gestures
  • Group
  • Groupbar
  • Misc
  • Cursor

Using

Create a hyprland.lua file

hyprlua.general.setup()

hyprlua.binds.set("SUPER SHIFT", "h", "resizeactive", "-50 0", { flags = "e" })
hyprlua.binds.set("SUPER SHIFT", "j", "resizeactive", "0 50", { flags = "e" })
hyprlua.binds.set("SUPER SHIFT", "k", "resizeactive", "0 -50", { flags = "e" })
hyprlua.binds.set("SUPER SHIFT", "l", "resizeactive", "50 0", { flags = "e" })

It will generate a hyprland.conf

# GENERAL
config {
    allow_tearing = false
    border_size = 1
    col.active_border = 0xffffffff
    col.inactive_border = 0xff444444
    col.nogroup_border = 0xffffaaff
    col.nogroup_border_active = 0xffff00ff
    extend_border_grab_area = 15
    gaps_in = 5
    gaps_out = 20
    gaps_workspaces = 0
    hover_icon_on_border = true
    layout = dwindle
    no_border_on_floating = false
    no_focus_fallback = false
    resize_corner = 0
    resize_on_border = false
}

# Keybindings
binde = SUPER SHIFT, h, resizeactive, -50 0
binde = SUPER SHIFT, j, resizeactive, 0 50
binde = SUPER SHIFT, k, resizeactive, 0 -50
binde = SUPER SHIFT, l, resizeactive, 50 0