You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Command-line profile switching (#50): hyprmod profile apply <name> switches profiles without opening the window (bindable to a keybind or scriptable), hyprmod profile next / previous cycle through them alphabetically (wrapping around, great for a single keybind), and hyprmod profile list shows the saved profiles with the active one marked. The profile list, in the app and on the command line, is now ordered alphabetically
Multiple keyboard layouts (#44): the Keyboard layouts row opens a dialog to add, reorder, edit, and remove input sources (a layout plus its variant), written to kb_layout and kb_variant
Changed
The Gestures page is hidden when there's no touchpad or touchscreen, since its workspace-swipe options need one to do anything. With only one device present, the page stays and the unusable subsection greys out
Fixed
Changing the active or inactive window border color in Lua mode no longer fails with an invalid color error; a single-color border was sent to Hyprland with a redundant 0deg angle that its Lua config manager rejected (#43)
Migrating a hyprland.conf to Lua no longer drops or breaks keybinds: concatenated and mixed-case modifiers (SUPERSHIFT, Alt) now decompose into canonical tokens, and nested match { … } blocks in block-form windowrule/layerrule nest correctly instead of being rejected (#45)
Disabling a monitor no longer makes it vanish from the Monitors page; hyprmod now reads disabled outputs too, so a turned-off monitor stays listed and can be switched back on (BlueManCZ/hyprland-socket#2)
Re-enabling a disabled monitor no longer overlaps or snaps onto another monitor, comes back at its preferred mode when Hyprland reports 0x0 after a reboot, and no longer crashes the Monitors page with scales must not be empty (#46)
Workspace rules in generated Lua configs now write the workspace selector as a string (workspace = "1" instead of workspace = 1); hl.workspace_rule declares the field as a string, and the integer form relied on Lua's implicit coercion and was flagged by lua-language-server (#48)
"Refresh monitors" no longer discards unsaved monitor changes and clears the pending-changes indicator
The workspace rule dialog's appearance overrides are now single "Use global / On / Off" dropdowns; the previous override-switch-plus-value-switch pair could keep showing "On" after the value was switched off
Binds using the global dispatcher (app-registered global shortcuts, e.g. bind = SUPER, period, global, caelestia:emoji) no longer fail to apply in Lua mode; the dispatcher had no Lua mapping (#49)
The first-run setup dialog no longer reappears when HyprMod's include line lives in a sourced sub-file rather than directly in hyprland.lua / hyprland.conf; detection now follows the whole source / require / dofile chain instead of inspecting only the top-level entrypoint (#51)
Migrating to Lua no longer breaks keybinds that use a modifier variable ($shiftMod = $mainMod SHIFT); the variable now joins its modifiers with + instead of leaking a space-separated SUPER SHIFT blob that Hyprland reads as a single unknown keysym (#52)
Migrating to Lua no longer breaks workspace layoutopt rules; layoutopt:direction:right now becomes a nested layout_opts table instead of a flat string that hl.workspace_rule rejects (#53)