Update all dotfiles
This commit is contained in:
48
configs/dotfiles/hyprland/laptop/.config/hypr/scripts/moveTo.sh
Executable file
48
configs/dotfiles/hyprland/laptop/.config/hypr/scripts/moveTo.sh
Executable file
@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
# __ __ _
|
||||
# | \/ | _____ _____ | |_ ___
|
||||
# | |\/| |/ _ \ \ / / _ \ | __/ _ \
|
||||
# | | | | (_) \ V / __/ | || (_) |
|
||||
# |_| |_|\___/ \_/ \___| \__\___/
|
||||
#
|
||||
|
||||
# Function to log messages (useful for debugging)
|
||||
log_message() {
|
||||
# echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> ~/moveto_log.txt
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1"
|
||||
}
|
||||
|
||||
# Get the target workspace from the argument
|
||||
target_workspace=$1
|
||||
|
||||
# Check if a target workspace was provided
|
||||
if [ -z "$target_workspace" ]; then
|
||||
log_message "Error: No target workspace provided"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Get the current active workspace
|
||||
current_workspace=$(hyprctl activewindow -j | jq '.workspace.id')
|
||||
|
||||
if [ -z "$current_workspace" ]; then
|
||||
log_message "Error: Couldn't determine current workspace"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
log_message "Moving from workspace $current_workspace to $target_workspace"
|
||||
|
||||
# Get all window addresses in the current workspace
|
||||
window_addresses=$(hyprctl clients -j | jq -r ".[] | select(.workspace.id == $current_workspace) | .address")
|
||||
|
||||
# Move each window to the target workspace
|
||||
for address in $window_addresses; do
|
||||
log_message "Moving window $address to workspace $target_workspace"
|
||||
hyprctl dispatch movetoworkspacesilent "$target_workspace,address:$address"
|
||||
done
|
||||
|
||||
log_message "Finished moving windows"
|
||||
|
||||
# Switch to the target workspace
|
||||
hyprctl dispatch workspace "$target_workspace"
|
||||
|
||||
log_message "Switched to workspace $target_workspace"
|
Reference in New Issue
Block a user