安装时的 xrandr 没有检测到我的电视是 1920x1080@60hz,所以我必须手动添加设置,当我使用 xrandr 执行此操作时,它可以工作。这是我使用的命令
xrandr --addmode HDMI-0 1920x1080
xranrd --output HDMI-0 --mode 1920x1080 --rate 60
Run Code Online (Sandbox Code Playgroud)
当我这样做时,显示器运行良好,一切正常,问题是每当我重新启动时,它都会回到 1360x768 并且我添加的模式不再存在。我每次都必须添加它;有没有办法保存设置?
另外如何设置双显示器的大小?
我正在使用 Fedora 15。
我有一个用于纵向模式编程的显示器。为了观看视频,我每天多次将其切换到横向模式。物理转换很快,但我每次都必须深入研究显示器配置以调整方向/分辨率。有没有办法在 Linux 下自动执行此操作?有问题的显示器是BenQ BL2410PT,它在随附的软件中具有自动旋转功能,我使用的是 AMD 显卡。
我可以将旋转更改为纵向模式
$ xrandr --output DVI-1 --rotation left
Run Code Online (Sandbox Code Playgroud)
并返回横向模式
$ xrandr --output DVI-1 --rotation normal
Run Code Online (Sandbox Code Playgroud)
所以问题归结为检测显示器的方向变化。
我设置了两台显示器——一台是普通显示器,另一台是 HDMI 电视。配置在单个xorg.conf文件中完成。
问题是第二个显示器似乎在工作,即它在我启动计算机后显示我的墙纸,我可以通过指定将窗口放在那里DISPLAY=:0.1,我确实以这种方式在电视上运行 mpv,HDMI 上的声音也可以正常工作。但是我失去了对窗口的控制,因为它已被发送到电视。如果我打开一个终端并从那里运行 mpv,比如
DISPLAY=:0.1 mpv --profile=hdmi file.mkv
Run Code Online (Sandbox Code Playgroud)
它在电视上运行窗口,将声音传递给电视,但对终端的任何输入都被忽略——我无法将播放器设置为暂停或倒带。我的窗口管理器中必须将焦点切换到另一个屏幕的键似乎也不起作用,我可以将鼠标移到另一个屏幕上,但是 RMB(应该将 mpv 设置为暂停)也不起作用。所以我检查了xrandr输出并且……它告诉我我什至没有连接 HDMI。但是,nvidia-settings正确显示了我的双显示器设置。

现在关于配置:
我总共有四台显示器。一个(1680x1050)连接到集成的Intel显示适配器,三个(1440x900和两个1920x1080)连接到专用的ATI显示适配器。对于某些 XRandR 配置,某些显示器的显示区域被裁剪,因此例如屏幕的下部不可用。
我想使用这样的配置:
xrandr \
--output VGA-1 --mode 1440x900 --pos 780x1080 --rotate left \
--output HDMI2 --mode 1680x1050 --pos 0x30 --rotate normal \
--output HDMI-3 --mode 1920x1080 --pos 1680x1080 --rotate normal \
--output DVI-0 --mode 1920x1080 --pos 1680x0 --rotate normal
Run Code Online (Sandbox Code Playgroud)
但是左下角屏幕的下半部分(右下角屏幕的下边缘以下)被截断了:

另一方面,此配置有效:
xrandr \
--output VGA-1 --mode 1440x900 --pos 780x1050 --rotate left \
--output HDMI2 --mode 1680x1050 --pos 0x0 --rotate normal \
--output HDMI-3 --mode 1920x1080 --pos 1680x1080 --rotate normal \
--output DVI-0 --mode 1920x1080 --pos 1680x0 --rotate normal …Run Code Online (Sandbox Code Playgroud) 我可以使用以下命令启用或禁用我的 LVDS 显示
xrandr --output LVDS --auto
xrandr --output LVDS --off
Run Code Online (Sandbox Code Playgroud)
分别,但如何以编程方式确定是否启用显示?
xrandr -q无论启用/禁用状态如何,均显示 LVDS 已连接。
我有一个内部和外部显示器,我想将光标移到上面。当我在连接外部设备的情况下启动计算机时,我的显示管理器以错误的 DPI 启动,我必须执行这 4 个命令来修复 dpi。
\n\nxrandr --output DP-2 --mode 1920x1200 --dpi 94\nxrandr --output LVDS-1-0 --mode 1920x1080 --dpi 147\nxrandr --output DP-2 --right-of LVDS-1-0 --dpi 94\nxrandr --output DP-2 --primary\nRun Code Online (Sandbox Code Playgroud)\n\n然而,在这种情况下,我可以在两个显示器上移动光标。
\n\n如果我在没有连接外部显示器的情况下启动,则不存在 dpi 问题,但是当我运行上述脚本来检测外部显示器时,鼠标会映射到外部显示器的区域,并且我无法将其移动到内部显示屏。
\n\n是否有一些明确的选项来指定光标可以访问的区域?
\n\n我还有一个图形输入板,我将其映射为仅使用带有以下脚本的外部显示器。
\n\nxsetwacom --set "Wacom Intuos5 touch L Pen stylus" MapToOutput "1920x1200+1920+0"\nxsetwacom --set "Wacom Intuos5 touch L Pen eraser" MapToOutput "1920x1200+1920+0"\nxsetwacom --set "Wacom Intuos5 touch L Pen cursor" MapToOutput "1920x1200+1920+0"\nxsetwacom --set "Wacom Intuos5 touch L Pad pad" MapToOutput "1920x1200+1920+0"\nxsetwacom --set "Wacom Intuos5 …Run Code Online (Sandbox Code Playgroud) 这是xrandr我的机器上显示的内容:
$ xrandr -q
Screen 0: minimum 320 x 200, current 3840 x 1200, maximum 8192 x 8192
VGA1 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)
HDMI2 disconnected (normal left inverted right x axis y axis)
DP2 connected 1920x1200+0+0 (normal left inverted right x axis y axis) 518mm x 324mm
1920x1200 60.0*+
1920x1080 50.0 60.0 30.0 …Run Code Online (Sandbox Code Playgroud) 每次我必须连接到外部显示器时,它都会保持“断开连接”状态,xrandr并且第二个屏幕保持黑色。
为了解决这个问题,我总是必须关闭所有 GUI 应用程序和 X 服务器,重新登录并重新启动一切。
我所做的测试:如果我在执行此操作之前进入tty2,屏幕会按预期复制,但是当我返回tty1(我曾经这样做startx)时,屏幕会消失。
我的配置是 Arch Linux + bspwm,我的.xinitrc就是简单exec bspwm
每当我需要进行演示时,我真的很想让我的程序保持打开状态。
我在/etc/acpi/events和 中有以下文件/etc/udev/rules.d。
/etc/acpi/events/lidclose
# Pass all events to our one handler script
event=button/lid
action=/etc/acpi/monitors.sh
Run Code Online (Sandbox Code Playgroud)/etc/udev/rules.d/80-monitor.rules
# change monitor settings when monitor is plugged in or o$
ACTION=="change", SUBSYSTEM=="drm", HOTPLUG=="1", RUN+="/etc/acpi/monitors.sh"
Run Code Online (Sandbox Code Playgroud)现在,(可执行并由 root 拥有) /etc/acpi/monitors.sh
#!/bin/sh
# default monitor is LVDS1
STATE=internal
INTERNAL=LVDS1
EXTERNAL=HDMI3
# functions to switch from LVDS1 to VGA and vice versa
function internal {
echo "Switching to internal"
xrandr --output $EXTERNAL --off --output $INTERNAL --auto
STATE=internal
}
function external {
echo "Switching to …Run Code Online (Sandbox Code Playgroud)我正在运行带有双显示器的 Elementary OS Freya Beta 2。我添加了一些 xrandr 命令以在启动时运行,因此我想要的监视器是主监视器,并且扩展坞在正确的监视器上启动。现在每当我重新启动机器时,显示镜像。有没有办法强制显示器不镜像?
我可以进入设置>显示并关闭“镜像显示”,但我不想每次重新启动时都这样做。我在哪里可以永久修改这些设置?
以下是我尝试过的事情:
xrandr:我在那里看不到任何力量不是镜像显示xorg.conf: 据我所知,我没有 xorg.conf 文件,也无法自动生成。如果答案是从头开始创建一个,我可以做到。我只是不知道该放什么。