Wie kann ich mein Display am einfachsten drehen?

54

Ich bin der glückliche Besitzer eines Pivot-Monitors, dessen Bildschirm (physisch) gedreht werden kann. Wie kann ich mein Display am einfachsten drehen lassen, wenn ich meinen Monitor drehe?

Im Moment starte ich zuerst die 'Displays'-App, ändere dann die Einstellungen und bestätige. Aber das ist in der Tat ein mühsamer Vorgang, da ich meine Orientierung bis zu ein paar Mal pro Minute ändern möchte.

Gibt es also einen Indikator dafür oder einen gleichwertigen? Kann ich eine Tastenkombination festlegen, mit der ein dedizierter Befehl gestartet wird? Tatsächlich denke ich an etwas, das dem Windows-Programm iRotate ähnlich ist .

Agmenor
quelle

Antworten:

94

Gehen Sie zu Tastatur -> Verknüpfungen, wählen Sie "Benutzerdefinierte Verknüpfungen" und drücken Sie "+", um eine neue Verknüpfung hinzuzufügen.

"Name" ist ein beschreibender Name für die Aktion (dh "Monitor drehen"). Geben Sie unter "Befehl" den benutzerdefinierten Befehl ein, der ausgeführt werden soll, wenn die Verknüpfung aktiviert wird.

Sobald sich die Verknüpfung in der Liste befindet, wählen Sie die entsprechende Zeile aus, drücken Sie die EINGABETASTE und anschließend die Tastenkombination, die Sie aktivieren möchten. Wenn ein Konflikt vorliegt, werden Sie vom Shortcut-Manager darauf hingewiesen, und Sie können eine andere Kombination auswählen.

Sie können eine Verknüpfung verwenden, um die gedrehte Anzeige zu aktivieren, und eine andere, um sie wieder in eine aufrechte Position zu bringen. Sie können sogar, wenn Sie über ausreichende Kenntnisse verfügen, einen Befehl schreiben, der den Status beibehält und einfach zwischen aufrecht / gedreht umschaltet.

Was nun den Befehl betrifft, den Sie verwenden müssen, ist er wahrscheinlich xrandr:

xrandr --output HDMI1 --rotate left

xrandr --output HDMI1 --rotate normal

Der Ausgabeparameter hängt davon ab, an welchen Port Ihr Monitor angeschlossen ist. Um zu sehen, was Sie gerade haben, geben Sie Folgendes ein:

xrandr -q

Meins sagt:

Screen 0: minimum 320 x 200, current 1366 x 768, maximum 8192 x 8192
LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 309mm x 174mm
   1366x768       60.0*+
   1360x768       59.8     60.0  
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
VGA2 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)

In diesem Fall wäre mein --output LVDS1, da alle anderen nicht verbunden sind.

Roadmr
quelle
2
Das ist ausgezeichnet.
16.
Ich bin neu in Linux und habe versucht, dies einzurichten, aber wenn ich den Befehl verwende, passiert nichts. Muss ich noch etwas konfigurieren, um sicherzustellen, dass meine benutzerdefinierten Tastaturkürzel funktionieren? Die eingebauten Befehle funktionieren, nur nicht die benutzerdefinierten, die ich erstellt habe. Ich benutze Ubuntu 14.04. Ich folgte den Anweisungen und schrieb Folgendes in die Befehlszeile. xrandr --output HDMI1 --rotate left Ich habe Strg + left als Tastenkürzel verwendet. Wenn ich diesen Befehl im Terminal verwende, funktioniert alles hervorragend. Nur nicht mit der Tastenkombination.
25.
@nelsond hast du überprüft, ob du HDMI1 mit verwendest xrandr -q?
Elder Geek
11
Hey, das xrandr -o rightfunktioniert auch und muss nicht das aktuelle Ziel angeben
whitenoisedb
Ich bekam output LVDS1 not found;und output HTMI1 not found;dank @ whitenoisedbs Kommentar benutzte ich einfach xrandr -o normal, ohne das --outputArgument anzugeben , um den Bildschirm wieder in die normale Richtung zu bringen.
Paul Rougieux
16

Funktioniert gut mit

xrandr --output LVDS1 --rotate left
xrandr --output LVDS1 --rotate right
xrandr --output LVDS1 --rotate inverted
xrandr --output LVDS1 --rotate normal
Vergadin Der Zwerg
quelle
Gibt es eine Alternative, die meinen Bildschirm nicht
ein-
perfekte Lösung
Waseem
5

Hier ist ein schönes Beispiel, wie es basierend auf Sensoreingaben gemacht wird: https://linuxappfinder.com/blog/auto_screen_rotation_in_ubuntu

Versuchen Sie also im Grunde, den oben genannten Bildschirm zu identifizieren, den Sie gedreht sehen möchten. Abhängig vom Modell des Monitors kann es einen Sensor geben, der ein Signal sendet.

Dies funktioniert gut für mein Lenovo Yoga 2 11 mit integriertem Rotationssensor und bewegt auch das Unity Dock.

Das Drehbuch:

#!/bin/sh
# Auto rotate screen based on device orientation

# Receives input from monitor-sensor (part of iio-sensor-proxy package)
# Screen orientation and launcher location is set based upon accelerometer position
# Launcher will be on the left in a landscape orientation and on the bottom in a portrait orientation
# This script should be added to startup applications for the user

# Clear sensor.log so it doesn't get too long over time
> sensor.log

# Launch monitor-sensor and store the output in a variable that can be parsed by the rest of the script
monitor-sensor >> sensor.log 2>&1 &

# Parse output or monitor sensor to get the new orientation whenever the log file is updated
# Possibles are: normal, bottom-up, right-up, left-up
# Light data will be ignored
while inotifywait -e modify sensor.log; do
# Read the last line that was added to the file and get the orientation
ORIENTATION=$(tail -n 1 sensor.log | grep 'orientation' | grep -oE '[^ ]+$')

# Set the actions to be taken for each possible orientation
case "$ORIENTATION" in
normal)
xrandr --output eDP1 --rotate normal && gsettings set com.canonical.Unity.Launcher launcher-position Left ;;
bottom-up)
xrandr --output eDP1 --rotate inverted && gsettings set com.canonical.Unity.Launcher launcher-position Left ;;
right-up)
xrandr --output eDP1 --rotate right && gsettings set com.canonical.Unity.Launcher launcher-position Bottom ;;
left-up)
xrandr --output eDP1 --rotate left && gsettings set com.canonical.Unity.Launcher launcher-position Bottom ;;
esac
done

und Voraussetzung für die Sensoren:

sudo apt install iio-sensor-proxy inotify-tools
Vincent Gerris
quelle
monitor-sensormacht keine Ausgaben. Weißt du, ob ich es konfigurieren kann? Ich habe eine PS und lsmod | grep accShowshp_accel 28672 0 lis3lv02d 20480 1 hp_accel
Mina Michael
@MinaMichael Möglicherweise tritt ein Kernel-Fehler auf. Schauen Sie hier
JrBenito
Es funktioniert auf Kernel 4.8, es kann in der Tat ein Fehler in späteren Versionen sein, da das Skript, das ich benutze, aufgehört hat, an niemals Versionen zu arbeiten. Bitte tragen Sie zum Fehlerbericht bei, wenn Sie einen neuen Fehler melden können oder falls zutreffend.
Vincent Gerris
1

Ich habe dazu ein Shell-Skript geschrieben. (Benötigt xrandr grep awk)

#!/bin/sh
# invert_screen copyright 20170516 alexx MIT Licence ver 1.0
orientation=$(xrandr -q|grep -v dis|grep connected|awk '{print $4}')
display=$(xrandr -q|grep -v dis|grep connected|awk '{print $1}')
if [ "$orientation" == "inverted" ]; then
   xrandr --output $display --rotate normal
else
   xrandr --output $display --rotate inverted
fi

Wenn Sie Einzeiler mögen:

[ "$(xrandr -q|grep -v dis|grep con|awk '{print $4}')" == 'inverted' ] && xrandr -o normal || xrandr -o inverted
Alexx Roche
quelle
1
Für mich ist es $5statt $4.
Nicolai
1
Mit xrandr - Version 1.5.0 funktioniert $ 5 für mich (die Gefahr der Verwendung von Textausgaben) [ "$(xrandr -q|grep -v dis|grep con|awk '{print $5}')" != 'inverted' ] && xrandr -o inverted || xrandr -o normalist sicherer, da es standardmäßig "normal" ist
Alexx Roche