如何以最简单的方式旋转显示器?


54

我是透视显示器的幸运所有者,该显示器可以旋转(物理旋转)。转动显示器时,最容易转动显示屏的方法是什么?

目前,我首先启动“ Displays”应用程序,然后更改设置并确认。但这实际上是一个费力的过程,因为我想将我的方向切换到每分钟几次。

那么,有没有相应的指标?我可以设置将启动专用命令的键盘快捷键吗?实际上,我在考虑类似于Windows程序iRotate的东西。

Answers:


94

进入键盘->快捷方式,选择“自定义快捷方式”,然后按“ +”添加新的快捷方式。

“名称”是操作的描述性名称(即“旋转监视器”)。在“命令”中,键入激活快捷方式时要运行的自定义命令。

快捷方式位于列表中后,选择其行,按ENTER,然后按要激活快捷键的组合键。如果发生冲突,快捷方式管理器会告诉您,您可以选择其他组合。

您可以使用快捷方式来启用旋转显示,而可以使用另一个快捷方式将其恢复到竖直位置。您甚至可以,如果您有足够的知识,可以编写一个维持状态并仅在直立/旋转之间切换的命令。

现在,对于您需要使用的命令,可能是xrandr:

xrandr --output HDMI1 --rotate left

xrandr --output HDMI1 --rotate normal

输出参数取决于显示器插入的端口。要查看您当前拥有的内容,请输入:

xrandr -q

我的说:

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)

在这种情况下,我的--output将是LVDS1,因为所有其他输出都已断开连接。


2
太好了
Agmenor 2012年

我是Linux的新手,我尝试进行设置,但是当我使用命令时,什么都没有发生。我还需要配置其他内容以确保自定义键盘快捷键正常工作吗?内置命令有效,而不是我创建的自定义命令。我正在使用Ubuntu 14.04。我按照指示进行操作,并在命令行中编写了以下内容。xrandr-输出HDMI1-向左旋转我使用ctrl + left作为快捷方式。当我在终端中使用该命令时,一切正常。只是不使用键盘快捷键。
nelsond 2014年

@nelsond您是否已验证使用HDMI1 xrandr -q
年长者怪胎

11
嘿,这样做xrandr -o right也可以,不需要指定当前目标
whitenoisedb 2015年

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 2016年

完美的解决方案
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没有任何输出。你知道我可以配置吗?我有一部马力,并lsmod | grep acc显示了hp_accel 28672 0 lis3lv02d 20480 1 hp_accel
Mina Michael

@MinaMichael您可能遇到内核错误。看这里
JrBenito

它可以在4.8版内核上运行,实际上在以后的版本中可能是一个错误,因为我使用的脚本停止了在Never版本上的运行。如果可以的话,请贡献给错误报告,或者提交新的错误(如果适用)。
文森特·格里斯

1

我写了一个shell脚本来做到这一点。(需要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 --version 1.5.0,$ 5为我工作(使用文本输出的危险)[ "$(xrandr -q|grep -v dis|grep con|awk '{print $5}')" != 'inverted' ] && xrandr -o inverted || xrandr -o normal更安全,因为它默认为“正常”
Alexx Roche
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.