Stuff that has not yet gone into the official build.
Post a reply
fsmithred

- fsmithred
- Posts: 2101
- Joined: Wed Mar 09, 2011 9:13 pm

## fixdisplay.sh - xrandr scripted

Mon Oct 28, 2013 4:49 pm

Here's another one. This one uses cvt to get a modeline and then uses xrandr to set the screen resolution.

Code:
  `#!/usr/bin/env bash
  echo "
  Run this script with no options for 1280x1024.
  For any other resolutions, put the horizontal and vertical
  sizes on the command line.
  Example:
  fixdisplay 1400 900
  "
  # Get the modeline from the command:
  # cvt 1280 1024
  #
  # Use default display resolution if they
  # aren't given in the command arguments.
  if [[ $1 ]] ; then
  horiz_res="$1"
  else
  horiz_res="1280"
  fi
  if [[ $2 ]] ; then
  vert_res="$2"
  else
  vert_res="1024"
  fi
  list=$(cvt $horiz_res $vert_res | awk '/Modeline/ { print $3 " " $4 " " $5 " " $6 " " $7 " " $8 " " $9 " " $10 " " $11 }')
  modeline="$list"
  echo -e "\nModeline for $horiz_res x $vert_res"
  echo "${modeline[0]}"
  all_outputs=$(xrandr | awk '/ connected/ { print $1 }')
  echo "
  If all_outputs = default (see below) then this script
  probably won't work. You can try it, or you can abort by
  pressing ctrl-c
  "
  echo -e "\tall_outputs = $all_outputs"
  #if $(echo $all_outputs | grep -q ^default) ; then
  # echo "Exit due to error."
  # exit 1
  #fi
  #sleep 2
  #echo " Enter an output from this list:
  #$all_outputs
  #: "
  #read output
  echo -e "\nSelect a video output from the list:"
  select output in "$all_outputs" ; do
  echo "$output"
  break
  done
  xrandr --newmode disp$horiz_res ${modeline[@]}
  sleep 2
  echo "1111"
  xrandr --addmode "$output" disp$horiz_res
  sleep 2
  echo "2222"
  xrandr --output "$output" --mode disp$horiz_res
  echo "3333"
  exit 0
  `

Edit: got rid of the -e in the tests for $1 and $2. For some reason, that doesn't seem to work for me lately. This has happened in a couple of scripts. No idea what's up with that.
N.B. This script only works with some monitors, and it doesn't work with my dual monitor setup. Seems like the main problem is how the output gets listed. Names like VGA-1, DVI-blah work better. If you try it, please share the output from xrandr run in a terminal. Thanks.
Post a reply
Jump to:

Powered by phpBB © phpBB Group.

phpBB Mobile / SEO by Artodia.