Moved scripts to the overlay folder to be used as packages

All scripts have been moved to the overlay folder in the top level directory

Overlay is now instantiated per configuration to make use of the host variable
This commit is contained in:
2024-11-16 03:42:07 -05:00
parent 2a2263d4cb
commit 8c007c3915
27 changed files with 200 additions and 175 deletions

View File

@@ -0,0 +1,80 @@
{ pkgs }:
pkgs.writeShellApplication {
name = "moveonscreen";
runtimeInputs = with pkgs; [ hyprland jq coreutils gawk ];
text = ''
center_window=false
if [[ ! $# -eq 0 ]] && [[ $1 == "--center" ]]; then
center_window=true
fi
cursor_pos=$(hyprctl cursorpos | sed 's/,//')
cursor_x=$(echo "$cursor_pos" | awk '{print $1}')
cursor_y=$(echo "$cursor_pos" | awk '{print $2}')
window_info=$(hyprctl activewindow -j)
window_width=$(echo "$window_info" | jq ".size[0]")
window_height=$(echo "$window_info" | jq ".size[1]")
if [ "$center_window" = true ]; then
cursor_x=$((cursor_x - window_width / 2))
cursor_y=$((cursor_y - window_height / 2))
if (( cursor_x < 10 )); then
cursor_x=10
fi
if (( cursor_y < 54 )); then
cursor_y=54
fi
fi
monitors=$(hyprctl monitors -j)
monitor_x_min=0
monitor_x_max=0
monitor_y_min=0
monitor_y_max=0
focused_monitor=-1
for ((i = 0; i < $(echo "$monitors" | jq 'length'); i++)); do
mon_x=$(echo "$monitors" | jq ".[$i].x")
mon_y=$(echo "$monitors" | jq ".[$i].y")
mon_width=$(echo "$monitors" | jq ".[$i].width")
mon_height=$(echo "$monitors" | jq ".[$i].height")
is_focused=$(echo "$monitors" | jq ".[$i].focused")
if [ "$is_focused" = true ]; then
monitor_x_min=$((mon_x + 10))
monitor_x_max=$((mon_x + mon_width - 10))
monitor_y_min=$((mon_y + 10))
monitor_y_max=$((mon_y + mon_height - 10))
focused_monitor=$i
break
fi
done
if [ "$focused_monitor" -eq -1 ]; then
exit 1
fi
if (( cursor_x < monitor_x_min )); then
adjusted_x=$monitor_x_min
elif (( cursor_x + window_width > monitor_x_max )); then
adjusted_x=$((monitor_x_max - window_width))
else
adjusted_x=$cursor_x
fi
if (( cursor_y < monitor_y_min )); then
adjusted_y=$monitor_y_min
elif (( cursor_y + window_height > monitor_y_max )); then
adjusted_y=$((monitor_y_max - window_height))
else
adjusted_y=$cursor_y
fi
hyprctl dispatch moveactive exact "$adjusted_x $adjusted_y" > /dev/null 2>&1
'';
}