#!/bin/sh screens=$(xrandr -q | awk '/ connected/ {print $1}') grae() { external=$(echo "$screens" | dmenu -i -w 320 -p "Optimize resolution for: ") internal=$(echo "$screens" | grep -v "$external") res_external=$(xrandr --query | sed -n "/^$external/,/\+/p" | tail -n 1 | awk '{print $1}') res_internal=$(xrandr --query | sed -n "/^$internal/,/\+/p" | tail -n 1 | awk '{print $1}') res_ext_x=$(echo "$res_external" | sed 's/x.*//') res_ext_y=$(echo "$res_external" | sed 's/.*x//') res_int_x=$(echo "$res_internal" | sed 's/x.*//') res_int_y=$(echo "$res_internal" | sed 's/.*x//') scale_x=$(echo "$res_ext_x / $res_int_x" | bc -l) scale_y=$(echo "$res_ext_y / $res_int_y" | bc -l) xrandr --output "$external" --auto --scale 1.0x1.0 --output "$internal" --auto --same-as "$external" --scale "$scale_x"x"$scale_y" if [ -e /tmp/bspwm_0_0-socket ]; then bspc monitor -d 1 2 3 4 5 6 7 8 9 10 bspc rule -a Firefox:Navigator state=tiled, desktop='^2' fi } grae