xmonad behaviours/keybindings in hyprland

i prefer many of the xmonad defaults, here's how i create them through hyprland configuration. this is not comprehensive.

references

hyprland configuration

use the master layout:

general {
    layout = master
}
master {
    new_status = inherit
}

launch a new terminal:

bind = $mainMod & shift, return, exec, $terminal

moving focus between windows:

bind = $mainMod, j, layoutmsg, cyclenext loop
bind = $mainMod, k, layoutmsg, cycleprev loop

moving windows around:

bind = $mainMod & shift, j, layoutmsg, swapnext loop
bind = $mainMod & shift, k, layoutmsg, swapprev loop

this correctly swaps the focused window into the master position, but will swap the master window with the first window on the stack if the master window is already in focus:

bind = $mainMod, return, layoutmsg, swapwithmaster auto

changing layout:

bind = $mainMod, space, layoutmsg, orientationnext

adjust the ratio between master and stack:

bind = $mainMod, h, layoutmsg, mfact -0.04
bind = $mainMod, l, layoutmsg, mfact +0.04

this allows you to select any workspace on any monitor. however it does not swap workspaces when a currently visible workspace is selected on another monitor. it moves that workspace to the active monitor, and a different workspaceis displayed as its replacement. i don't know how to swap them...

bind = $mainMod, 1, moveworkspacetomonitor, 1 current
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, moveworkspacetomonitor, 2 current
bind = $mainMod, 2, workspace, 2
[...]