add(binds): focus between nonfloating and floaters
This commit is contained in:
@@ -28,8 +28,28 @@
|
||||
|
||||
exit 0
|
||||
'';
|
||||
|
||||
hakase-focus-switch = pkgs.writeShellScriptBin "hakase-focus-switch" ''
|
||||
HYPRCTL="${pkgs.hyprland}/bin/hyprctl"
|
||||
JQ="${pkgs.jq}/bin/jq"
|
||||
|
||||
workspace_id=$($HYPRCTL activeworkspace -j | $JQ '.id')
|
||||
active_window=$($HYPRCTL activewindow -j)
|
||||
is_floating=$(echo "$active_window" | $JQ '.floating')
|
||||
|
||||
if [ "$is_floating" == "true" ]; then
|
||||
target_addr=$($HYPRCTL clients -j | $JQ -r --argjson ws "$workspace_id" '[.[] | select(.workspace.id == $ws and .floating == false)] | .[0].address')
|
||||
else
|
||||
target_addr=$($HYPRCTL clients -j | $JQ -r --argjson ws "$workspace_id" '[.[] | select(.workspace.id == $ws and .floating == true)] | .[0].address')
|
||||
fi
|
||||
|
||||
if [ "$target_addr" != "null" ] && [ -n "$target_addr" ]; then
|
||||
$HYPRCTL dispatch focuswindow address:$target_addr
|
||||
fi
|
||||
'';
|
||||
in {
|
||||
home.packages = [
|
||||
hakase-workspace-switch-force
|
||||
hakase-focus-switch
|
||||
];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user