26 lines
769 B
Nix
26 lines
769 B
Nix
{ pkgs, ... }:
|
|
{
|
|
home.packages = with pkgs; [
|
|
(writeShellScriptBin "get-focused-monitor" ''
|
|
# get the current cursor location into X and Y variables
|
|
eval $(xdotool getmouselocation --shell)
|
|
|
|
# compare mouse location to monitor coordinates
|
|
while IFS= read -r line; do
|
|
if [[ $line =~ " connected" ]]; then
|
|
display=$(echo "$line" | awk '{print $1}')
|
|
coords=$(echo "$line" | grep -oP "\d+x\d+" | tr 'x+' ' ')
|
|
|
|
read width height x_offset y_offset <<< $coords
|
|
|
|
if (( X >= x_offset && X <= width + x_offset )) && (( Y >= y_offset && Y <= height + y_offset )); then
|
|
echo "$display"
|
|
break
|
|
fi
|
|
fi
|
|
done < <(xrandr)
|
|
|
|
'')
|
|
];
|
|
}
|