it-swarm.dev

Jak mohu otočit displej nejjednodušším způsobem?

Jsem šťastný majitel otočného monitoru, jehož obrazovku lze otáčet (fyzicky). Jaký je nejjednodušší způsob, jak obrátit displej, když otočím monitor?

V tuto chvíli poprvé spustím aplikaci „Displeje“ a poté změníme nastavení a potvrzením. Ve skutečnosti je to ale docela namáhavý postup, protože chci svou orientaci změnit několikrát za minutu.

Existuje tedy nějaký indikátor nebo ekvivalent? Mohu nastavit klávesovou zkratku, která by spustila vyhrazený příkaz? Ve skutečnosti mám na mysli něco podobného programu Windows iRotate .

58
Agmenor

Přejděte do klávesnice -> Klávesové zkratky, vyberte „Vlastní klávesové zkratky“ a stisknutím klávesy „+“ přidejte novou zkratku.

„Název“ je popisný název akce (tj. „Otočit monitor“). Do pole „Příkaz“ zadejte vlastní příkaz, který se má spustit při aktivaci zástupce.

Jakmile je zástupce v seznamu, vyberte jeho řádek, stiskněte klávesu ENTER a poté kombinaci kláves, kterou chcete zkratku aktivovat. Pokud dojde ke konfliktu, oznámí to zástupce zkratek a můžete vybrat jinou kombinaci.

Můžete mít zástupce umožňující otočení displeje a další jej vrátit zpět do svislé polohy. Můžete dokonce, pokud jste dostatečně znalí, napsat příkaz, který udržuje stav a jen přepíná mezi vzpřímenými/otočenými.

Nyní, pokud jde o příkaz, který musíte použít, je to pravděpodobně xrandr:

xrandr --output HDMI1 --rotate left

xrandr --output HDMI1 --rotate normal

Výstupní parametr závisí na portu, ke kterému je monitor připojen. Chcete-li zobrazit, co aktuálně máte, zadejte:

xrandr -q

Moje říká:

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)

V tomto případě by můj - výstup byl LVDS1, protože všichni ostatní jsou odpojeni.

98
roadmr

Funguje skvěle

xrandr --output LVDS1 --rotate left
xrandr --output LVDS1 --rotate right
xrandr --output LVDS1 --rotate inverted
xrandr --output LVDS1 --rotate normal
16

Zde je pěkný příklad, jak to provést na základě vstupu senzoru: https://linuxappfinder.com/blog/auto_screen_rotation_in_ubunt

Takže v podstatě zkuste výše uvedené a identifikujte obrazovku, kterou chcete vidět otočenou. V závislosti na modelu monitoru může existovat senzor, který vysílá signál?

Funguje to dobře pro můj počítač Lenovo Yoga 2 11 s vestavěným snímačem rotace a také se pohybuje v doku jednoty.

Scénář:

#!/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

a předpoklad pro senzory:

Sudo apt install iio-sensor-proxy inotify-tools
5
Vincent Gerris

Napsal jsem k tomu Shell skript. (Vyžaduje 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

Pokud máte rádi jednodílné:

[ "$(xrandr -q|grep -v dis|grep con|awk '{print $4}')" == 'inverted' ] && xrandr -o normal || xrandr -o inverted
1
Alexx Roche