\begin{Verbatim}[commandchars=\\\{\}] \PYZsh{}!/bin/bash \PYZsh{} Gamescope window positioner for Openbox echo \PYZdq{}Starting gamescope window positioner...\PYZdq{} while true; do \PYZsh{} Find ALL gamescope windows and move them xdotool search \PYZhy{}\PYZhy{}class \PYZdq{}gamescope\PYZdq{} 2\PYZgt{}/dev/null | while read WINDOW\PYZus{}ID; do if [ ! \PYZhy{}z \PYZdq{}\PYZdl{}WINDOW\PYZus{}ID\PYZdq{} ]; then \PYZsh{} Get current window position CURRENT\PYZus{}POS=\PYZdl{}(xdotool getwindowgeometry \PYZdq{}\PYZdl{}WINDOW\PYZus{}ID\PYZdq{} | grep Position | awk \PYZsq{}\PYZob{}print \PYZdl{}2\PYZcb{}\PYZsq{}) DESIRED\PYZus{}POS=\PYZdq{}0,1080\PYZdq{} \PYZsh{} Only move if not already in position if [ \PYZdq{}\PYZdl{}CURRENT\PYZus{}POS\PYZdq{} != \PYZdq{}\PYZdl{}DESIRED\PYZus{}POS\PYZdq{} ]; then echo \PYZdq{}Moving gamescope window \PYZdl{}WINDOW\PYZus{}ID to 0,1080\PYZdq{} xdotool windowmove \PYZdq{}\PYZdl{}WINDOW\PYZus{}ID\PYZdq{} 0 1080 \PYZsh{} xdotool windowsize \PYZdq{}\PYZdl{}WINDOW\PYZus{}ID\PYZdq{} 5760 1080 fi \PYZsh{} FORCE it to be above everything else, including Steam \PYZsh{} echo \PYZdq{}Forcing gamescope window \PYZdl{}WINDOW\PYZus{}ID to top layer\PYZdq{} \PYZsh{} wmctrl \PYZhy{}i \PYZhy{}r \PYZdq{}\PYZdl{}WINDOW\PYZus{}ID\PYZdq{} \PYZhy{}b add,above \PYZsh{} xdotool windowraise \PYZdq{}\PYZdl{}WINDOW\PYZus{}ID\PYZdq{} fi done sleep 2 done \end{Verbatim}