Dengan beberapa monitor, saya sejauh ini telah menyeret windows secara manual. Apakah ada cara untuk membuat jendela terbuka pada layar tertentu dalam pengaturan dual-head? (Jangan bingung dengan beberapa tampilan server X.)
Sesuatu seperti: SCREEN=2 firefox
atau open-in-screen 2 firefox
.
Jika itu penting, lingkungan saya adalah KDE menggunakan manajer jendela KWin. Aturan jendela KWin hanya dapat mencocokkan beberapa properti seperti judul, tetapi saya tidak dapat menemukan variabel lingkungan sebagai filter.
Tampilan sekunder memperluas layar utama:
$ xrandr -q
Screen 0: minimum 320 x 200, current 3520 x 1080, maximum 32767 x 32767
LVDS1 connected 1600x900+0+0 (normal left inverted right x axis y axis) 382mm x 214mm
1600x900 60.1*+
1024x768 60.0
800x600 60.3 56.2
640x480 59.9
VGA1 disconnected (normal left inverted right x axis y axis)
HDMI1 connected 1920x1080+1600+0 (normal left inverted right x axis y axis) 477mm x 268mm
1920x1080 60.0* 50.0 59.9
1920x1080i 60.1 50.0 60.0
1680x1050 59.9
1280x1024 75.0 60.0
1440x900 59.9
1280x960 60.0
1280x720 60.0 50.0 59.9
1024x768 75.1 70.1 60.0
832x624 74.6
800x600 72.2 75.0 60.3 56.2
720x576 50.0
720x480 60.0 59.9
640x480 75.0 72.8 66.7 60.0 59.9
720x400 70.1
DP1 disconnected (normal left inverted right x axis y axis)
kde
desktop
multi-monitor
kwin
virtual-desktop
Lekensteyn
sumber
sumber
kstart
ini, tetapi tampaknyakstart
hanya mendukung mendefinisikan desktop tertentu, tetapi bukan layar di mana aplikasi harus dimulai. Mungkin layak dilaporkan WISHLIST bugreport di bugs.kde.org .kstart
, saya juga ingin tahu itu. Perintahnya adalah: dikstart --desktop $N firefox
mana$N
angka antara 1 dan jumlah total desktop virtual .Jawaban:
Tidak, Anda tidak dapat melakukannya secara langsung. Dalam arsitektur X, dua monitor fisik yang Anda lihat tidak dapat dilihat oleh aplikasi. Anda hanya dapat bekerja di sekitar abstraksi ini, dengan menentukan area mana dari ruang kerja yang terlihat yang sesuai dengan monitor mana dan kemudian menempatkan windows pada offset yang benar.
Toolkit yang masuk akal mendukung
-geometry
opsi, yang memungkinkan aplikasi Anda meminta ditempatkan pada posisi tertentu. Jika Anda tidak memiliki opsi ini, Anda dapat menggunakanwmctrl
jika Anda memiliki X Window Manager yang kompatibel dengan EWMH / NetWM untuk memindahkan dan mengubah ukuran jendela yang sudah ada (lihat wmctrl (1), Anda memerlukan opsi-r
dan-e
). Saya gunakandevilspie
untuk memaksa penempatan beberapa jendela dan tentu saja window manager pilihan Anda mungkin memiliki fasilitas sendiri untuk memaksa penempatan jendela.devilspie
memungkinkan untuk menerapkan tindakan tertentu pada X windows dan dapat menggunakan properti X window untuk membedakan berbagai windows dan aplikasi. Aturan kuncinya bagi Anda adalahgeometry "<width>x<height>+<xoffset>+<yoffset>"
.Namun, Anda selalu perlu melakukan perhitungan kapan dan di mana monitor fisik lain dimulai. Tapi ini tidak terlalu sulit dan
xrandr
tidak memberitahu Anda bagaimana dan di mana ia menggunakan monitor dalam bentuk"<width>x<height>+<xoffset>+<yoffset>
pada setiap baris yang menatap nama output.Tidak ada cara yang sangat mudah, hanya akan bekerja, karena implementasi dapat (dan lakukan!) Bervariasi.
wmctrl
biasanya berfungsi pada judul jendela untuk mengidentifikasi target.devilspie
juga bisa merujuk ke kelasnya, namun, saya tidak mengetahui adanya toolkit yang memungkinkan Anda menentukan kelas X windows tetapi tidak geometrinya.Tentu saja Anda selalu dapat memulai dua
xephyr
instance dan membuat satu mengisi layar kiri Anda dan yang lain layar kanan Anda dan kemudian mengatasi layar melaluiDISPLAY
variabel lingkungan, tetapi solusi ini memiliki kelemahan lainnya.Secara teori, otoritas untuk mengatur penempatan jendela adalah manajer jendela. Akibatnya, jika Anda menginginkan hal-hal yang tidak dapat dilakukan pengelola jendela, itu akan menjadi peretasan dan itu juga alasan mengapa tidak ada cara umum untuk melakukannya.
Namun, jika case use konkret Anda adalah emulator android Anda ... yang sangat berbeda dari meminta opsi untuk menentukan
SCREEN=n fooapp
pada shell, makadevilspie
mungkin apa yang Anda cari. Petunjuk: Saya menemukan yang terbaik untuk mengidentifikasi aplikasi berdasarkan kelas jendela mereka.sumber
SCREEN=x app
, apakah mungkin untuk menambahkan properti jendela dengan cara ini sehingga dapat difilter oleh KWin?Ini adalah solusi khusus manajer jendela. Ini adalah bagaimana melakukannya dengan kwin yang merupakan window manager default KDE.
Jika Anda mengklik kanan pada Title Bar aplikasi dan memilih lebih banyak pengaturan -> pengaturan aplikasi khusus.
Buka tab Jendela yang cocok. Klik pada tombol Detect Window Properties. Kemudian dengan klik kursor mouse di jendela utama aplikasi. Ini akan memilih kelas jendela dll dan juga mendapatkan informasi posisi jendela dll.
Kemudian klik pada tab Ukuran dan Posisi. Klik Posisi Kotak dan Ukuran kotak dan kotak tarik turun ke kanan keduanya dan atur untuk mengingat.
Kemudian klik ok.
Lain kali Anda menjalankan aplikasi itu harus memiliki ukuran dan monitor yang sama.
Saya menggunakan ini di KDE untuk membuka terminal uRxvt saya di monitor kiri saya pada pengaturan 3 monitor dan berfungsi setiap saat.
Semoga berhasil.
sumber
Ini tergantung pada bagaimana pengaturan dual-monitor Anda.
Jika Anda menggunakan XINERAMA untuk membuat kedua tampilan seperti satu ke X, maka Anda akan menggunakan
-geometry
opsi untuk meminta aplikasi muncul di lokasi tertentu. Jika Anda memiliki pengaturan tampilan sebagai layar yang berbeda maka Anda akan menggunakanDISPLAY
untuk mencapai ini.Cobalah ini:
Jika monitor Anda adalah layar 0 dan 1, ini akan menghasilkan xterm pada setiap monitor.
sumber
-geometry
tidak selalu berfungsi dengan baik.emulator
, berdasarkan QEMU). Program terbuka di mana kursor mouse saya berada.Saya menemukan metode ini yang menggunakan
xdotool
,xprop
, &wmctrl
.Inilah yang akan dilakukan skrip di bawah ini:
naskah
Ini akan memindahkan jendela aktif ke monitor lain. Itu hanya bisa menangani berdampingan, alias. horisontal, konfigurasi monitor.
Sumber: Xubuntu - memindahkan windows antar monitor
sumber
SCREEN=2 appX
konsep Anda , kecuali ituappX; sleep 1; moveWindow.sh
.app & sleep 1; moveWindow.sh
karena program tidak lepas. Saya tidak menganggap ini perbaikan dibandingkan menggunakan aturan jendela KWin. +1 untuk upaya Anda.Punya masalah serupa. Temukan yang berikut:
Jika tidak ada standar lain yang ditentukan, jendela muncul di layar yang sedang aktif. Dengan prosedur yang dijelaskan di atas, posisi mouse menentukan layar aktif ini.
sumber