ฉันจะหมุนจอแสดงผลในวิธีที่ง่ายที่สุดได้อย่างไร


54

ฉันเป็นเจ้าของ lucky pivot monitor ซึ่งสามารถหมุนหน้าจอได้ วิธีที่ง่ายที่สุดในการเปิดจอแสดงผลของฉันคือเมื่อฉันหมุนจอภาพ

สำหรับช่วงเวลาที่ฉันเปิดตัวแอพ 'หน้าจอ' ครั้งแรกจากนั้นเปลี่ยนการตั้งค่าและยืนยัน แต่อันที่จริงแล้วนี่เป็นกระบวนการที่ค่อนข้างลำบากเพราะฉันต้องการเปลี่ยนการปฐมนิเทศเป็นสองสามครั้งต่อนาที

ดังนั้นจึงมีตัวบ่งชี้สำหรับสิ่งนี้หรือสิ่งที่เทียบเท่า ฉันสามารถตั้งค่าแป้นพิมพ์ลัดที่จะเรียกใช้คำสั่งเฉพาะได้หรือไม่ ในความเป็นจริงผมคิดว่าสิ่งที่คล้ายกับตัวโปรแกรม Windows iRotate

คำตอบ:


94

ไปที่แป้นพิมพ์ -> ทางลัดเลือก "ทางลัดที่กำหนดเอง" และกด "+" เพื่อเพิ่มทางลัดใหม่

"ชื่อ" เป็นชื่อที่สื่อความหมายสำหรับการกระทำ (เช่น "หมุนจอภาพ") ใน "Command" ให้พิมพ์คำสั่งที่กำหนดเองเพื่อเรียกใช้เมื่อเปิดใช้งานทางลัด

เมื่อทางลัดอยู่ในรายการให้เลือกแถวแล้วกด ENTER จากนั้นคีย์ผสมที่คุณต้องการเปิดใช้งานทางลัด หากมีข้อขัดแย้งผู้จัดการทางลัดจะแจ้งให้คุณทราบและคุณสามารถเลือกชุดค่าผสมอื่น

คุณสามารถมีทางลัดเพื่อเปิดใช้งานการแสดงผลที่หมุนได้และอีกอันหนึ่งเพื่อนำมันกลับไปที่ตำแหน่งตั้งตรง คุณสามารถแม้กระทั่งถ้าคุณมีความรู้เพียงพอให้เขียนคำสั่งที่รักษาสถานะและสลับไปมาระหว่างตั้งตรง / หมุน

ตอนนี้สำหรับคำสั่งที่คุณต้องการใช้อาจเป็น xrandr:

xrandr --output HDMI1 --rotate left

xrandr --output HDMI1 --rotate normal

พารามิเตอร์เอาต์พุตขึ้นอยู่กับพอร์ตที่เสียบปลั๊กมอนิเตอร์ของคุณ หากต้องการดูสิ่งที่คุณมีในปัจจุบันให้พิมพ์:

xrandr -q

Mine พูดว่า:

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)

ในกรณีนี้ - เอาท์พุทของฉันจะเป็น LVDS1 เนื่องจากที่อื่น ๆ ทั้งหมดถูกตัดการเชื่อมต่อ


2
มันยอดเยี่ยมมาก
Agmenor

ฉันใหม่สำหรับ Linux และฉันพยายามตั้งค่านี้ แต่เมื่อฉันใช้คำสั่งไม่มีอะไรเกิดขึ้น มีอย่างอื่นที่ฉันต้องกำหนดค่าเพื่อให้แน่ใจว่าแป้นพิมพ์ลัดที่กำหนดเองของฉันทำงานได้หรือไม่ คำสั่งในตัวใช้งานได้ไม่ใช่คำสั่งที่กำหนดเองที่ฉันสร้างขึ้น ฉันใช้ Ubuntu 14.04 ฉันทำตามคำแนะนำและเขียนสิ่งต่อไปนี้ในบรรทัดคำสั่ง xrandr - เอาท์พุท HDMI1 - หมุนซ้ายฉันใช้ ctrl + left เป็นทางลัด เมื่อฉันใช้คำสั่งนั้นในเทอร์มินัลทุกอย่างใช้งานได้ดี ไม่เพียงแค่ใช้แป้นพิมพ์ลัด
nelsond

@nelsond คุณยืนยันว่าคุณใช้ HDMI1 ด้วยxrandr -qหรือไม่
ผู้สูงอายุ Geek

11
เฮ้การทำxrandr -o rightยังใช้งานได้และไม่จำเป็นต้องระบุเป้าหมายปัจจุบัน
whitenoisedb

ฉันได้รับoutput LVDS1 not found;และoutput HTMI1 not found;ด้วยความเห็นของ @ whitenoisedb ที่ฉันใช้xrandr -o normalโดยไม่ระบุ--outputอาร์กิวเมนต์เพื่อให้หน้าจอกลับไปในทิศทางปกติ
Paul Rougieux

16

ใช้งานได้ดีกับ

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

มีทางเลือกอื่นที่ไม่เปิดและปิดหน้าจอของฉัน (ฉันใช้ fglrx)
Suici Doga

โซลูชั่นที่สมบูรณ์แบบ
Waseem

5

นี่คือตัวอย่างที่ดีเกี่ยวกับวิธีการทำตามอินพุตเซ็นเซอร์: https://linuxappfinder.com/blog/auto_screen_rotation_in_ubuntu

ดังนั้นโดยทั่วไปลองข้างต้นเพื่อระบุหน้าจอที่คุณต้องการดูหมุน อาจมีเซ็นเซอร์ที่ส่งสัญญาณหรือไม่ขึ้นอยู่กับจอมอนิเตอร์รุ่น

สิ่งนี้ทำงานได้ดีสำหรับ Lenovo Yoga 2 11 ของฉันพร้อมเซ็นเซอร์ตรวจจับการหมุนในตัว

สคริปต์:

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

และข้อกำหนดเบื้องต้นสำหรับเซ็นเซอร์:

sudo apt install iio-sensor-proxy inotify-tools

monitor-sensorไม่ได้สร้างผลลัพธ์ใด ๆ คุณรู้หรือไม่ว่าฉันสามารถกำหนดค่าได้ ฉันมี hp และlsmod | grep accรายการhp_accel 28672 0 lis3lv02d 20480 1 hp_accel
Mina Michael

@MinaMichael คุณอาจพบข้อผิดพลาดเคอร์เนล ดูที่นี่
JrBenito

มันใช้งานได้กับเคอร์เนล 4.8 มันอาจเป็นข้อผิดพลาดในเวอร์ชั่นที่ใหม่กว่าแน่นอนเนื่องจากสคริปต์ที่ฉันใช้หยุดการทำงานบนเวอร์ชันที่ไม่เคยใช้ โปรดสนับสนุนรายงานข้อผิดพลาดหากคุณสามารถหรือยื่นข้อบกพร่องใหม่ถ้ามี
Vincent Gerris

1

ฉันเขียนเชลล์สคริปต์เพื่อทำสิ่งนี้ (ต้องการ 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

ถ้าคุณชอบหนึ่งสมุทร:

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

1
สำหรับฉันมันเป็นแทน$5 $4
Nicolai

1
ด้วย xrandr - รุ่น 1.5.0 $ 5 ใช้งานได้สำหรับฉัน (อันตรายจากการใช้เอาต์พุตข้อความ) [ "$(xrandr -q|grep -v dis|grep con|awk '{print $5}')" != 'inverted' ] && xrandr -o inverted || xrandr -o normalปลอดภัยกว่าเนื่องจากค่าเริ่มต้นเป็น "ปกติ"
Alexx Roche
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.