7

I am starting to work with 2 displays on Ubuntu. One of them is rotateable, so I can use it easily in both landscape and portrait mode. But I world prefer to have ability to change orientation setting (which could be found in System Settings->Desktop) from terminal or script on one display but don't rotate other one.

I am pretty sure it is possible via xrandr!

  • Is your question mainly on how to script it, or how to do it with xrandr? In the last case, you will find it here: http://askubuntu.com/a/171154/72216, but it can be made changeable / toggle with a key combination of course, but then the scripting is actually the question. – Jacob Vlijm Dec 21 '14 at 09:31
  • @JacobVlijm as I just found answer on my own from man. Thanks. I think that bash script with xrandr command inside will work, won't it? – Lapshin Dmitry Dec 21 '14 at 09:38
  • Absolutely. The nicest would be to toggle; make a script read from xrandr what is the current rotation of the second screen, set it to "the other option" under a shortcut key. – Jacob Vlijm Dec 21 '14 at 09:42
  • 1
    @JacobVlijm I did it, using basicly xrandr and grep. – Lapshin Dmitry Dec 21 '14 at 18:20

2 Answers2

11

Strange, but I found answer first!

You use

$ xrandr --output $monitorName --rotate $direction

where $monitorName can be found in output of

$ xrandr

and $direction is left for counter-clockwise or right for clockwise.

Edit: Using grep, it is possible to write a script like this:

#!/bin/bash

screen="HDMI1"

descr=$(xrandr | grep "$screen")
if echo "$descr" | grep disconnected
then
        echo "No $screen connected"
        exit 1
fi

alt="left"
if echo "$descr" | grep --quiet -P "^[^(]*$alt"
then
        rotate="normal"
else
        rotate="$alt"
fi
xrandr --output $screen --rotate $rotate 

which actually switches orientation of monitor storaged in $screen variable, and $alt is the alternative orientation.

6

You'll need to use xrandr for that.

xrandr -o $orientation

Where $orientation is left, right, inverted, or normal.

You can select the display you want to rotate with the --display option.

Zanna
  • 70,465