{"repo":"EIonTusk/hyprlang2lua","free":true,"listed":false,"github":"https://github.com/EIonTusk/hyprlang2lua","clone":"git clone https://github.com/EIonTusk/hyprlang2lua.git","description":"Convert legacy hyprland.conf to the Lua config format (Hyprland 0.55+). Full bind family, submaps, nested sections, window/layer rules, typed dispatchers. CLI, AUR and Nix packages, plus a zero-install in-browser converter.","language":"Go","stars":74,"topics":["arch-linux","cli","config-converter","golang","hyprland","hyprlang","lua","nix","wayland","webassembly"],"license":"MIT","category":"cli-tools","readme_excerpt":"hyprlang2lua Convert legacy Hyprland hyprland.conf (hyprlang) files to the Lua configuration format introduced in Hyprland 0.55 (May 2026). Mappings currently track Hyprland 0.56.1 . Try it online: — runs entirely in your browser, no input ever leaves the page. The converter is built around a hand-written lexer + recursive-descent parser and a per-directive code generator. The output is idiomatic Lua that matches the shape of the example config shipped at /usr/share/hypr/hyprland.lua , mapping each hyprlang construct to the hl. API exposed by the Lua stubs at /usr/share/hypr/stubs/hl.meta.lua . What it handles Area Covered --- --- Bind family bind , binde , bindl , bindr , bindm , bindn , bindt , bindi , bindo , bindp , bindc , bindd , bindu , bindx , and combined forms ( bindel , bindle ). Each suffix maps to its HL.BindOptions field; bindd 's label becomes description ; bindm mouse buttons keep their mouse:272 key syntax. Submaps submap = name … submap = reset collapses into one hl.define submap(name, function() … end) block. Nested sections decoration { blur { … } shadow { … } } emits nested Lua tables. Hyphenated routes ( input:touchpad:tap-to-click , input-capture ) are rewritten to the underscored keys the Lua config registry actually accepts. Rules windowrule , windowrulev2 , layerrule , workspace , monitor , monitorv2 { … } , permission , gesture , and device: { … } . Variables $var = value → local var = value ; references resolve, and mixed text builds a concat chain","default_branch":null,"files":null,"tree":[],"storefront":"/r/EIonTusk","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/EIonTusk/hyprlang2lua/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}