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)
システム設定の画面アイコンは実際にドラッグできるため、緑色のサムスンを左側に配置できます。または、次のコマンドを使用できます。
xrandr --output HDMI1 --mode 1024x768 --pos 0x0 --rotate normal \
--output LVDS1 --mode 1366x768 --pos 1024x0 --rotate normal
このコマンドを(もちろんさまざまな出力とともに)使用して、グラフィカルログイン時にVGAを左に、内部モニターを右に画面を配置します。
または、lxrandr
プログラムを調べることもできます。このプログラムは、Ubuntuの設定とまったく同じ働きをしますが、少し混乱が少ないかもしれません。
残念ながら、左側に外部画面があることをモニター設定に認識させる方法はありませんand右画面を「メイン」画面、デスクトップの「ホーム」ロケーションにしたいアイコン。
ただし、セカンドスクリーンが接続または切断されるたびに、アイコンをドラッグして再配置することで有罪判決を受けたという意味ではありません。
以下のスクリプト(ショートカットキーの下)を使用すると、デスクトップ上でのアイコンの配置方法の「スナップショット」を取得できます(これは1回だけ必要です)。
2番目のショートカットキーを使用すると、このスナップショットは、2番目の画面が接続されたときに新しい状況に「変換」されます。アイコンは常にメイン画面に表示され、スナップショットに従って配置されます。
利点は、画面の設定が何であれ、画面がどのように調整されても、ソリューションが機能することです。それを変更することもできます。スクリプトはアイコンの設定と位置を計算します。
(1)
を押して、現在のデスクトップアイコンの配置のスナップショットを取得します(前述のように、これは一度だけ行う必要があります)。この配置は隠しファイルに記憶されます(2)
を押して、デスクトップレイアウトを新しいセットアップに「変換」します。 2番目の画面が接続されていないかのように、アイコンが右側の組み込み画面に移動します。デスクトップをクリックし、続いて押します F5 デスクトップを更新します(変更が表示されない場合)。2番目の画面を切断すると、デスクトップが再び台無しになります。キーの組み合わせ(2)
を押し、デスクトップをクリックして押します F5 もう一度レイアウトを復元します。
arrange_desktop.py
として保存しますxrandr
コマンドを使用して確認します)。これはおそらく組み込みの画面になります。質問のxrandr
の出力にすでに設定しています。スクリプトをテスト実行します。
次のコマンドでターミナルから実行します:
python3 /path/to/arrange_desktop.py snapshot
通知が表示されます:
2番目の画面を接続し、必要に応じて設定すると、アイコンが台無しになります。
オプションrestore
を指定して、スクリプトを再度実行します。
python3 /path/to/arrange_desktop.py restore
通知が表示されます:
デスクトップ(どこでも)をクリックして、 F5、現在の画面設定に関係なく、アイコンはmain画面(この場合は正しいもの)のスナップショットに従って配置されます。
すべてが正常に機能する場合は、コマンドの2つのショートカットキーを作成します。
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'"])
私はこの問題をvirtuaboxで解決し、モニター間で画面を変更します。
Ubuntuのその他のモードは、xmlモニターの変更です。
gedit ~/.config/monitors.xml
そして編集:
<primary>yes</primary> <!-- For primary monitor -->
<primary>no</primary> <!-- For not primary monitor -->
arandr
を使用できます。これは使いやすいツールです。
Sudo apt-get install arandr
でインストールarandr
を実行すると、GUIが表示されますディスプレイを好きなようにドラッグして合わせます。