X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=laptop-xrandr;h=d57b43f1b6ec49f43d50a82e9a72036acb35ab54;hb=eef2ed83fa84b3ac19533dfe0239cef4c2223143;hp=ce5ab3672002f3e438c50c18b284fa864f20a42a;hpb=2ff8740f1061a31683152a4447340921de82b1b9;p=distro-setup diff --git a/laptop-xrandr b/laptop-xrandr index ce5ab36..d57b43f 100755 --- a/laptop-xrandr +++ b/laptop-xrandr @@ -1,17 +1,100 @@ #!/bin/bash -set -e; . /usr/local/lib/err; set +e +# 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 -output=HDMI2 -output=DP1 +# 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 -if xrandr | grep -q "^$output disconnected" &>/dev/null; then - xrandr --auto -else - xrandr --output $output --right-of eDP1 --mode 3840x2160 +# 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 + +# 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}' ||:) + +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