• v1.4.2 a91cd16bbe

    1.4.2 Stable

    TypoMustakes released this 2026-04-10 16:19:48 +01:00 | 0 commits to master since this release

    Hard-coded absolute binary paths are gone, hyprctl and others are merely expected to be present in $PATH.

    The main dependency, nlohmann:json is downloaded from GitHub by default, but using -DUSE_SYSTEM_JSON=ON, this behavior can be overridden.

    Downloads
  • v1.4 dca411a3dd

    1.4 Stable

    TypoMustakes released this 2026-01-08 23:24:28 +00:00 | 7 commits to master since this release

    Feature: moving a window to another workspace respects the new workspace's rules.

    Use the -m [workspace ID] arguments to move the active window to another workspace.

    To make this convenient to use, you might want to modify your Hyprland keybindings from this:

    bind = $mainMod SHIFT, 1, movetoworkspace, 1
    bind = $mainMod SHIFT, 2, movetoworkspace, 2
    bind = $mainMod SHIFT, 3, movetoworkspace, 3
    bind = $mainMod SHIFT, 4, movetoworkspace, 4
    bind = $mainMod SHIFT, 5, movetoworkspace, 5
    bind = $mainMod SHIFT, 6, movetoworkspace, 6
    bind = $mainMod SHIFT, 7, movetoworkspace, 7
    bind = $mainMod SHIFT, 8, movetoworkspace, 8
    bind = $mainMod SHIFT, 9, movetoworkspace, 9
    bind = $mainMod SHIFT, 0, movetoworkspace, 10
    

    to this:

    bind = $mainMod SHIFT, 1, exec, htt [your htt config file] -m 1
    bind = $mainMod SHIFT, 2, exec, htt [your htt config file] -m 2
    bind = $mainMod SHIFT, 3, exec, htt [your htt config file] -m 3
    bind = $mainMod SHIFT, 4, exec, htt [your htt config file] -m 4
    bind = $mainMod SHIFT, 5, exec, htt [your htt config file] -m 5
    bind = $mainMod SHIFT, 6, exec, htt [your htt config file] -m 6
    bind = $mainMod SHIFT, 7, exec, htt [your htt config file] -m 7
    bind = $mainMod SHIFT, 8, exec, htt [your htt config file] -m 8
    bind = $mainMod SHIFT, 9, exec, htt [your htt config file] -m 9
    bind = $mainMod SHIFT, 0, exec, htt [your htt config file] -m 10
    

    To see this in action, here's a demo:

    • Workspace 3 is in tiling mode
    • Workspace 4 is in floating mode
    • I am moving a tiled window from workspace 3 to workspace 4

    Before 1.4:

    https://imgur.com/a/BhuRoRP
    The window (browser) is tiled behind all other windows on workspace 4.

    After 1.4:

    https://imgur.com/a/kSeyP19
    The browser window used to be tiled on workspace 3, but goes into floating mode when it moves to workspace 4.
    It once again changes back to being tiled when moved back to workspace 3.

    Downloads
  • v1.3 1031d5590b

    1.3 Stable

    TypoMustakes released this 2026-01-06 15:59:58 +00:00 | 10 commits to master since this release

    New optional argument

    -q: Print the rule applied on the current workspace to STDOUT, but don't change anything. If there isn't an active rule for the current workspace, it returns a tiling rule. The returned string is a valid Hyprland window rule configuration line, like so:

    # (On workspace 2...)
    $ ./htt ~/.cache/htt/rules -q
    
    windowrule = tile on, match:workspace 2
    
    Downloads
  • v1.2 daed7b2b59

    1.2 Stable

    TypoMustakes released this 2026-01-05 16:33:17 +00:00 | 12 commits to master since this release

    Adapted to the new window rule syntax introduced in Hyprland 0.53

    Downloads