Làm thế nào tôi có thể xoay màn hình của mình một cách dễ dàng nhất?


54

Tôi là chủ sở hữu may mắn của màn hình trục, màn hình này có thể xoay (vật lý). Cách dễ nhất để làm cho màn hình của tôi bật khi tôi xoay màn hình là gì?

Hiện tại, lần đầu tiên tôi khởi chạy ứng dụng 'Hiển thị', sau đó thay đổi cài đặt và xác nhận. Nhưng đây thực sự là một quy trình lao động, vì tôi muốn chuyển hướng của mình lên một vài lần mỗi phút.

Vì vậy, có một chỉ số cho điều này, hoặc tương đương? Tôi có thể đặt một phím tắt để khởi chạy một lệnh chuyên dụng không? Trong thực tế, tôi đang nghĩ về một cái gì đó tương tự như chương trình Windows iRotate .

Câu trả lời:


94

Đi vào Bàn phím -> Phím tắt, chọn "Phím tắt tùy chỉnh" và nhấn "+" để thêm lối tắt mới.

"Tên" là tên mô tả cho hành động (nghĩa là "Xoay màn hình"). Trong "Lệnh", gõ lệnh tùy chỉnh để chạy khi phím tắt được kích hoạt.

Khi phím tắt nằm trong danh sách, chọn hàng của nó, nhấn ENTER, sau đó tổ hợp phím bạn muốn kích hoạt phím tắt. Nếu có xung đột, trình quản lý phím tắt sẽ cho bạn biết như vậy và bạn có thể chọn một kết hợp khác.

Bạn có thể có phím tắt để bật hiển thị xoay và một cái khác để đưa nó trở lại vị trí thẳng đứng. Bạn thậm chí có thể, nếu bạn đủ hiểu biết, hãy viết một lệnh duy trì trạng thái và chỉ chuyển đổi giữa đứng / xoay.

Bây giờ, đối với lệnh bạn cần sử dụng, có lẽ là xrandr:

xrandr --output HDMI1 --rotate left

xrandr --output HDMI1 --rotate normal

Tham số đầu ra phụ thuộc vào cổng mà màn hình của bạn được cắm vào. Để xem những gì bạn hiện có, gõ:

xrandr -q

Của tôi nói:

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)

Trong trường hợp này - đầu ra của tôi sẽ là LVDS1, vì tất cả những cái khác đều bị ngắt kết nối.


2
Thật tuyệt vời.
Agmenor

Tôi mới sử dụng linux và tôi đã cố gắng thiết lập nó, nhưng khi tôi sử dụng lệnh thì không có gì xảy ra. Có cái gì khác tôi phải cấu hình để đảm bảo các phím tắt tùy chỉnh của tôi hoạt động không? Các lệnh tích hợp hoạt động, không phải là các lệnh tùy chỉnh mà tôi đã tạo. Tôi đang sử dụng Ubuntu 14.04. Tôi làm theo chỉ dẫn và viết như sau trong dòng lệnh. xrandr --output HDMI1 --rotate left Tôi đã sử dụng ctrl + left làm phím tắt. Khi tôi sử dụng lệnh đó trong terminal, mọi thứ đều hoạt động tốt. Chỉ cần không có phím tắt.
vào

@nelsond bạn đã xác minh rằng bạn đang sử dụng HDMI1 xrandr -qchưa?
Anh Cả Geek

11
Này, làm xrandr -o rightcũng hoạt động và không cần chỉ định mục tiêu hiện tại
whitenoisedb

Tôi đã nhận được output LVDS1 not found;output HTMI1 not found;nhờ nhận xét của @ whitenoisedb mà tôi chỉ đơn giản sử dụng xrandr -o normal, mà không chỉ định --outputđối số để đưa màn hình trở lại theo hướng thông thường.
Paul Rougieux

16

Hoạt động tuyệt vời với

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

Có một giải pháp thay thế nào không bật và tắt màn hình của tôi không (tôi đang sử dụng fglrx)
Suici Doga

giải pháp hoàn hảo
Waseem

5

Dưới đây là một ví dụ hay về cách thực hiện dựa trên đầu vào cảm biến: https://linuxappfinder.com/blog/auto_screen_rotation_in_ubfox

Vì vậy, về cơ bản hãy thử ở trên để xác định màn hình bạn muốn xem xoay. Tùy thuộc vào màn hình model có thể có cảm biến gửi tín hiệu?

Điều này hoạt động độc đáo cho Lenovo Yoga 2 11 của tôi với cảm biến xoay tích hợp và nó cũng di chuyển dock thống nhất.

Kịch bả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

và điều kiện tiên quyết cho các cảm biến:

sudo apt install iio-sensor-proxy inotify-tools

monitor-sensorkhông thực hiện bất kỳ đầu ra. Bạn có biết nếu tôi có thể cấu hình nó? Tôi có một hp và lsmod | grep accchương trìnhhp_accel 28672 0 lis3lv02d 20480 1 hp_accel
Mina Michael

@MinaMichael bạn có thể gặp lỗi kernel. Nhìn vào đây
JrBenito

Nó hoạt động trên kernel 4.8, nó thực sự có thể là một lỗi trong các phiên bản sau, vì tập lệnh tôi sử dụng đã ngừng hoạt động trên các phiên bản không bao giờ. Vui lòng đóng góp vào báo cáo lỗi nếu bạn có thể hoặc gửi một lỗi mới nếu có.
Vincent Gerris

1

Tôi đã viết một kịch bản shell để làm điều này. (Yêu cầu 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

Nếu bạn thích một lớp lót:

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

1
Đối với tôi nó $5thay vì $4.
Nicolai

1
Với xrandr --version 1.5.0 $ 5 đang hoạt động với tôi (nguy cơ sử dụng đầu ra văn bản) [ "$(xrandr -q|grep -v dis|grep con|awk '{print $5}')" != 'inverted' ] && xrandr -o inverted || xrandr -o normalsẽ an toàn hơn vì nó mặc định là "bình thường"
Alexx Roche
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.