#!/bin/bash # Lấy thông tin của cửa sổ hiện tại chỉ một lần window_info=$(hyprctl activewindow) # Trích xuất giá trị cần thiết từ window_info # 1892 window_x_position=$(echo "$window_info" | grep -oP '(?<=at: )\d+') window_at_monitor=$(echo "$window_info" | grep 'monitor' | awk '{print $2}') window_at_workspace=$(echo "$window_info" | grep 'workspace' | awk '{print $2}') window_state=$(echo "$window_info" | grep 'fullscreen:' | awk '{print $2}') current_workspace=$(hyprctl activeworkspace | grep 'workspace' | awk '{print $3}') window_width=$(echo "$window_info" | grep 'size:' | awk '{print $2}' | cut -d',' -f1) hyprctl dispatch fullscreenstate 0 # minimize trước khi di chuyển move(){ # hyprctl dispatch movetoworkspace $((window_at_workspace-1)) \ # && hyprctl dispatch focusmonitor 0 \ # && hyprctl dispatch workspace $((current_workspace-2)) \ # && hyprctl dispatch focusmonitor 1 hyprctl --batch " dispatch movetoworkspace $((window_at_workspace-1)) ; dispatch workspace $((current_workspace-2)) ; dispatch focusmonitor 1 " exit 0 } # NOTE: Di chuyển cửa sổ nếu vị trí X vượt qua ngưỡng if [ $window_x_position -eq 14 ] && [ $window_state -eq 1 ]; then if [ $current_workspace -eq 1 ]; then exit 1 fi move fi if [ $window_x_position -eq 14 ] && [ $window_width -eq 1892 ]; then if [ $current_workspace -eq 1 ]; then exit 1 fi move fi if [ $window_x_position -eq 14 ]; then if [ $current_workspace -eq 1 ]; then exit 1 fi move fi # Nếu không thoả điều kiện di chuyển, di chuyển cửa sổ sang phải hyprctl dispatch movewindow l exit 0