web-dev-qa-db-ja.com

外付けモニターを左側に置きます

14.04を搭載したラップトップでは、外部モニターを使用します。外部モニターを左側に配置したいのですが、ubuntuは論理的に右側に配置しているようです。ディスプレイの配置を整理しようとしましたが、内蔵モニターを右にドラッグすると、すべてのデスクトップアイコンが外部モニターに移動します。この問題を解決するにはどうすればよいですか。 Default display organization

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)
6

システム設定の画面アイコンは実際にドラッグできるため、緑色のサムスンを左側に配置できます。または、次のコマンドを使用できます。

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

このコマンドを(もちろんさまざまな出力とともに)使用して、グラフィカルログイン時にVGAを左に、内部モニターを右に画面を配置します。

または、lxrandrプログラムを調べることもできます。このプログラムは、Ubuntuの設定とまったく同じ働きをしますが、少し混乱が少ないかもしれません。

5

残念ながら、左側に外部画面があることをモニター設定に認識させる方法はありませんand右画面を「メイン」画面、デスクトップの「ホーム」ロケーションにしたいアイコン。

ただし、セカンドスクリーンが接続または切断されるたびに、アイコンをドラッグして再配置することで有罪判決を受けたという意味ではありません。

デスクトップアイテムを手動で再配置する時間を節約する方法

以下のスクリプト(ショートカットキーの下)を使用すると、デスクトップ上でのアイコンの配置方法の「スナップショット」を取得できます(これは1回だけ必要です)。

2番目のショートカットキーを使用すると、このスナップショットは、2番目の画面が接続されたときに新しい状況に「変換」されます。アイコンは常にメイン画面に表示され、スナップショットに従って配置されます。

利点は、画面の設定が何であれ、画面がどのように調整されても、ソリューションが機能することです。それを変更することもできます。スクリプトはアイコンの設定と位置を計算します。

実際の仕組み

  1. キーの組み合わせ(1)を押して、現在のデスクトップアイコンの配置のスナップショットを取得します(前述のように、これは一度だけ行う必要があります)。この配置は隠しファイルに記憶されます
  2. 次に、2番目の画面を接続し、必要な設定を行います(左/右、上部を揃えるかどうか、すべて可能です)。デスクトップが台無しになります。
  3. 別のキーの組み合わせ(2)を押して、デスクトップレイアウトを新しいセットアップに「変換」します。 2番目の画面が接続されていないかのように、アイコンが右側の組み込み画面に移動します。デスクトップをクリックし、続いて押します F5 デスクトップを更新します(変更が表示されない場合)。

2番目の画面を切断すると、デスクトップが再び台無しになります。キーの組み合わせ(2)を押し、デスクトップをクリックして押します F5 もう一度レイアウトを復元します。

設定方法

  1. 以下のスクリプトを空のファイルにコピーし、arrange_desktop.pyとして保存します
  2. スクリプトのヘッドセクションで、「メイン」画面の名前を設定します(xrandrコマンドを使用して確認します)。これはおそらく組み込みの画面になります。質問のxrandrの出力にすでに設定しています。
  3. デスクトップアイコンを好きなように配置する
  4. スクリプトをテスト実行します。

    • 次のコマンドでターミナルから実行します:

      python3 /path/to/arrange_desktop.py snapshot
      
    • 通知が表示されます:

      enter image description here

    • 2番目の画面を接続し、必要に応じて設定すると、アイコンが台無しになります。

    • オプションrestoreを指定して、スクリプトを再度実行します。

      python3 /path/to/arrange_desktop.py restore
      
    • 通知が表示されます:

      enter image description here

    • デスクトップ(どこでも)をクリックして、 F5、現在の画面設定に関係なく、アイコンはmain画面(この場合は正しいもの)のスナップショットに従って配置されます。

    • すべてが正常に機能する場合は、コマンドの2つのショートカットキーを作成します。

      python3 /path/to/arrange_desktop.py snapshot
      

    そして

        python3 /path/to/arrange_desktop.py restore
    

    これで完了です。これで、シンプルなキーの組み合わせでデスクトップレイアウトを両方の方法で修正(接続と切断)できます。

ノート

  • デスクトップの配置を変更し、それを記憶したい場合は、再度スナップショットを撮る必要があると言う必要はありません。
  • 2番目の画面が接続されているかどうかにかかわらず、スナップショットを作成できます。スクリプトは、アイコンの位置を「メイン」画面に正しく計算します。

スクリプト

#!/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'"])
1
Jacob Vlijm

私はこの問題をvirtuaboxで解決し、モニター間で画面を変更します。

  • メイン画面がビルドインディスプレイに移動します
  • セカンダリ画面がSamsumgディスプレイに移動します

Ubuntuのその他のモードは、xmlモニターの変更です。

    gedit ~/.config/monitors.xml 

そして編集:

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

arandr を使用できます。これは使いやすいツールです。

  • Sudo apt-get install arandrでインストール
  • arandrを実行すると、GUIが表示されます

ディスプレイを好きなようにドラッグして合わせます。

arandr gui

0
Gabriel Ziegler