Hyprland Wiki
Contribute to the Wiki! Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Uncommon Tips & Tricks

Switchable keyboard layouts

The easiest way to accomplish this is to set this using XKB settings, for example:

input {
    kb_layout = us,pl
    kb_options = grp:alt_shift_toggle
}

The first layout defined in the input section will be the one used for binds.

For example: us,ua -> config binds would be e.g. SUPER, A, while on ua,us -> SUPER, Cyrillic_ef

You can also bind a key to execute hyprctl switchxkblayout for more keybind freedom. See Using hyprctl.

Disabling keybinds with one master keybind

If you want to disable all keybinds with another keybind (make a keybind toggle of sorts) you can just use a submap with only a keybind to exit it.

bind=MOD,KEY,submap,clean
submap=clean
bind=MOD,KEY,submap,reset
submap=reset

Minimize Steam instead of killing

Steam will exit entirely when it’s last window is closed using the killactive dispatcher. To minimize Steam to tray, use the following script to close applications:

if [[ $(hyprctl activewindow -j | jq -r ".class") == "Steam" ]]; then
    xdotool windowunmap $(xdotool getactivewindow)
else
    hyprctl dispatch killactive ""
fi

Window Dancing

Some XWayland games like Rhythm Doctor and Friday Night Funkin’ mods like to move the windows by themselves, but that often doesn’t work by default.

For example, if you want to configure Rhythm Doctor, you’d have to:

  1. Set input rules
input {
	# ...
	follow_mouse=0
	float_switch_override_focus=0
}
  1. Set the windowrule
windowrule=windowdance,title:^(Rhythm Doctor)$
# windowrule=forceinput,title:^(Rhythm Doctor)$ # May also be needed
  1. Have fun!

Click the GIF below to see a full demo video

Demo GIF of Rhythm Doctor

Shimeji

To use Shimeji programs like this, set the following rules:

windowrule=float, com-group_finity-mascot-Main
windowrule=noblur, com-group_finity-mascot-Main
windowrule=nofocus, com-group_finity-mascot-Main
windowrule=noshadow, com-group_finity-mascot-Main
windowrule=noborder, com-group_finity-mascot-Main
The app indicator probably won’t show, so you’ll have to killall -9 java to kill them.

Demo GIF of Spamton Shimeji