Skip to content

v0.4.0

Latest

Choose a tag to compare

@BlueManCZ BlueManCZ released this 01 Jul 05:44
7480b39

Added

  • 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)