X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=laptop-xrandr;h=d57b43f1b6ec49f43d50a82e9a72036acb35ab54;hb=371c5fd6ded824eca8ff2b19b6dae8aede579347;hp=af21928b789f1ef4cd95089463966e4c7cc849a9;hpb=9a0f77b0495e6f2643d5646c54b4c99cf3118c67;p=distro-setup diff --git a/laptop-xrandr b/laptop-xrandr index af21928..d57b43f 100755 --- a/laptop-xrandr +++ b/laptop-xrandr @@ -1,19 +1,100 @@ #!/bin/bash +# I, Ian Kelling, follow the GNU license recommendations at +# https://www.gnu.org/licenses/license-recommendations.en.html. They +# recommend that small programs, < 300 lines, be licensed under the +# Apache License 2.0. This file contains or is part of one or more small +# programs. If a small program grows beyond 300 lines, I plan to switch +# its license to GPL. + +# Copyright 2024 Ian Kelling + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e; . /usr/local/lib/bash-bear; set +e +xf=$(mktemp) +xrandr >$xf -output=HDMI2 -output=DP1 +# eg eDP-1 connected primary +laptop_out=$(awk '$3 == "primary" {print $1}' $xf) +output=$(grep -E "^(HDMI|DP)[^ ]* connected [0-9]" $xf| awk '{print $1}' ||:) -if xrandr | grep -q "^$output disconnected" &>/dev/null; then - xrandr --auto -else - xrandr --output $output --off - sleep 2 - xrandr --output $output --right-of eDP1 --mode 3840x2160 +edid() { + card=$1 + sha256sum /dev/null; then + xrandr --delmonitor BIG-$x + fi + done + xrandr --setmonitor BIG-LEFT $half_x/298x$y/336+0+$x_offset $output + xrandr --setmonitor BIG-RIGHT $half_x/298x$y/336+$(( x_offset + half_x ))+0 none + + + for i in 2 3 4 5 6 7 8 9 10; do + # if the workspace is already there, this will fail. + # if the workspace doesn't exist yet, it fails with: + # ERROR: No output matched i3-msg '[workspace="'$i'"]' move workspace to output $output ||: done +else + xrandr --auto + fi