将外接显示器放在左侧

将外接显示器放在左侧

在我的 14.04 笔记本电脑上,我想使用外接显示器。我想将外接显示器放在左侧,但 ubuntu 似乎逻辑上将其放在右侧。我尝试组织显示位置,但当我将内置显示器拖到右侧时,我的所有桌面图标都会移动到外接显示器。我该如何解决这个问题。 默认显示组织

muctadir@muctadir-laptop:~$ xrandr --prop 
Screen 0: minimum 8 x 8, current 3286 x 1080, maximum 32767 x 32767
LVDS1 connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
    EDID: 
        00ffffffffffff0006afec4501000000
        01150103802213780a0bb59757548c26
        23505400000001010101010101010101
        010101010101121b566050001630080a
        310058c1100000180000000f00000000
        00000000000000000020000000fe0041
        554f0a202020202020202020000000fe
        004231353658573034205635200a0046
    BACKLIGHT: 976 
        range: (0, 976)
    Backlight: 976 
        range: (0, 976)
    scaling mode: Full aspect 
        supported: None, Full, Center, Full aspect
   1366x768       60.0*+
   1360x768       59.8     60.0  
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
VGA1 disconnected (normal left inverted right x axis y axis)
HDMI1 connected 1920x1080+1366+0 (normal left inverted right x axis y axis) 160mm x 90mm
    EDID: 
        00ffffffffffff004c2dcd053432524c
        12140103801009782a6041a6564a9c25
        125054230800a9408180814081009500
        b30001010101023a801871382d40582c
        4500a05a0000001e011d007251d01e20
        6e285500a05a0000001e000000fd0032
        3c1e5111000a202020202020000000fc
        0053796e634d61737465720a2020018f
        02031cf14890041f0514130312230907
        078301000066030c00100080011d80d0
        721c1620102c2580a05a0000009e011d
        8018711c1620582c2500a05a0000009e
        011d00bc52d01e20b8285540a05a0000
        001e8c0ad090204031200c405500a05a
        000000188c0ad08a20e02d10103e9600
        a05a0000001800000000000000000046
    Broadcast RGB: Automatic 
        supported: Automatic, Full, Limited 16:235
    audio: auto 
        supported: force-dvi, off, auto, on
   1920x1080      60.0*+   50.0     59.9  
   1920x1080i     60.1     50.0     60.0  
   1600x1200      60.0  
   1680x1050      59.9  
   1280x1024      60.0  
   1440x900       59.9  
   1280x960       60.0  
   1280x800       59.9  
   1280x720       60.0     50.0     59.9  
   1024x768       60.0  
   800x600        60.3     56.2  
   720x576        50.0  
   720x480        60.0     59.9  
   640x480        60.0     59.9  
DP1 disconnected (normal left inverted right x axis y axis)
    Broadcast RGB: Automatic 
        supported: Automatic, Full, Limited 16:235
    audio: auto 
        supported: force-dvi, off, auto, on
VIRTUAL1 disconnected (normal left inverted right x axis y axis)

答案1

系统设置中的屏幕图标其实是可以拖动的,所以你可以把绿色的三星放在左边。或者,你也可以使用这个命令:

xrandr --output HDMI1 --mode 1024x768 --pos 0x0 --rotate normal \
       --output LVDS1 --mode 1366x768 --pos 1024x0 --rotate normal

我使用这个命令(当然有不同的输出)来定位我的屏幕,VGA 在左边,内部显示器在右边,进行图形登录。

或者,您可以查看lxrandr程序,它的作用与 Ubuntu 的设置完全相同,但可能不会那么令人困惑。

答案2

您可以使用arandr这是一个易于使用的工具。

  • 安装sudo apt-get install arandr
  • 运行arandr后 GUI 就会出现

拖动显示以根据需要适合它们,例如

阿兰德尔·吉

答案3

不幸的是,没有办法让显示器设置知道你的外接屏幕在左边您希望右侧屏幕成为“主”屏幕,并成为桌面图标的“主”位置。

但这并不意味着每次连接或断开第二个屏幕时您都必须拖动和重新排列图标。

如何节省手动重新排列桌面项目的时间

使用下面的脚本(在快捷键下),您可以对桌面上图标的排列方式进行“快照”(只需执行一次)。

使用第二个快捷键,当连接第二个屏幕时,此快照将“转换”到新的情况,反之亦然;您的图标将始终显示在主屏幕上,并根据快照排列。

优点是,无论您的屏幕设置如何,也无论屏幕如何排列,该解决方案都能发挥作用。您甚至可以更改设置,脚本将计算图标的设置和位置。

实践中如何运作

  1. 按下组合键(1)可截取当前桌面图标排列的快照(如上所述,您只需执行一次)。此排列将被记住在隐藏文件中
  2. 现在连接您的第二个屏幕,进行任何您想要的设置(左/右、顶部对齐或不对齐,所有都是可能的)。您的桌面将会变得一团糟。
  3. 按另一个组合键(2),将桌面布局“转换”为新设置。您的图标将移动到右侧的内置屏幕,就像没有连接第二个屏幕一样。单击桌面,然后按F5刷新桌面(否则您将看不到更改)。

如果断开第二个屏幕,您的桌面将再次变得混乱。只需按下组合键(2),单击桌面并F5再次按下即可恢复布局。

如何设置

  1. 将以下脚本复制到一个空文件中,并将其另存为arrange_desktop.py
  2. 在脚本的头部部分,设置“主”屏幕的名称(使用命令xrandr查找)。这可能是您的内置屏幕。我已经将其设置为xrandr您问题中的输出。
  3. 按照你喜欢的方式排列桌面图标
  4. 测试运行脚本:

    • 通过以下命令从终端运行它:

      python3 /path/to/arrange_desktop.py snapshot
      
    • 您会看到一条通知:

      在此处输入图片描述

    • 现在连接第二个屏幕,按照你想要的方式进行设置,你的图标将会变得混乱。

    • 现在再次运行脚本,使用以下选项restore

      python3 /path/to/arrange_desktop.py restore
      
    • 您会看到一条通知:

      在此处输入图片描述

    • 单击桌面(任意位置)并按F5,您的图标将根据快照排列主要的屏幕(在您的情况下是正确的),无论当前的屏幕设置是什么。

    • 如果一切正常,请为命令创建两个快捷键:

      python3 /path/to/arrange_desktop.py snapshot
      

        python3 /path/to/arrange_desktop.py restore
    

    就大功告成了。现在,您可以使用简单的组合键双向修复桌面布局(连接-断开连接)。

笔记

  • 不用说,如果您改变了桌面布局并且希望记住它,请再次拍摄快照。
  • 无论是否连接第二个屏幕,您都可以拍摄快照,脚本都会正确计算“主”屏幕上的图标位置。

剧本

#!/usr/bin/env python3
import subprocess
import time
import os
import sys

#--- set the localized name of your desktop below (if necessary)
dt_name = "Desktop"
#--- set the name of the "main" screen below (replace "DVI-I-1")
screen = "LVDS1"
#---

arg = sys.argv[1]

# used strings & definitions
val = " 'metadata::nautilus-icon-position' "
search = "gvfs-info -a"+val
set_val = "gvfs-set-attribute -t string "
home = os.environ["HOME"]
dt_dir = os.environ["HOME"]+"/"+dt_name
datafile = home+"/.desktop_items.txt"

# functions
get = lambda cmd: subprocess.check_output(["/bin/bash", "-c", cmd]).decode("utf-8")

def scr_data():
    scr = [l.split() for l in get("xrandr").splitlines() if screen in l][0]
    return [int(n) for n in [s for s in scr if all(["+" in s, "x" in s])][0].split("+")[-2:]]

# take a snapshot of the icon layout
if arg == "snapshot":
    screen_pos = scr_data()
    try:
        os.remove(datafile)
    except FileNotFoundError:
        pass
    dt_items = os.listdir(dt_dir)
    dt_data = []
    for f in [f for f in dt_items if all([not f.startswith("."), not f.endswith("~")])]:
        f = '"'+f+'"' if f.count(" ") > 0 else f
        file = dt_dir+"/"+f
        cmd = search+file
        try:
            loc = [int(n) for n in get(cmd).split()[-1].split(",")]
            loc[0] = loc[0] - screen_pos[0]; loc[1] = loc[1] - screen_pos[1]
            loc = (",").join([str(n) for n in loc])
            open(datafile, "a+").write(file+"|||"+loc+"\n")
        except:
            pass
    subprocess.Popen(["/bin/bash", "-c", "notify-send 'A snapshot was taken'"])

# restore icons
elif arg == "restore":
    vector = scr_data()
    items = [l.strip().split("|||") for l in open(datafile).readlines()]
    for item in items:
        try:
            xy = [int(n) for n in item[1].split(",")]
            move_to = (",").join(str(n) for n in [vector[0]+xy[0], vector[1]+xy[1]])
            command = set_val+item[0]+val+move_to
            subprocess.Popen(["/bin/bash", "-c", command])
        except:
            pass
    subprocess.Popen(["/bin/bash", "-c", "notify-send 'Click on the desktop and press F5'"])

答案4

我在 virtuabox 中遇到了这个问题,解决方案是在显示器之间切换屏幕。

  • 主屏幕移至内置显示屏
  • 辅助屏幕移至您的三星显示屏

Ubuntu 中的其他模式是更改 xml 监视器:

    gedit ~/.config/monitors.xml 

并编辑:

    <primary>yes</primary> <!-- For primary monitor -->
    <primary>no</primary> <!-- For not primary monitor -->

相关内容