Bagaimana cara memberitahu aplikasi untuk membuka di ruang kerja tertentu?
Info lebih lanjut:
Saya suka memiliki C ++ IDE saya di workspace 2, Java IDE saya di workspace 3, dan email saya, browser dan lain-lain di workspace empat. Saya juga menggunakan skrip shell yang dijalankan setelah login:
#!/bin/bash
gnome-terminal & # WS 1
netbeans-6-9-1 & # WS2
qtcreator-2-0-1 & # WS 3
firefox & # WS 4
thunderbird & # WS 4
Tentu saja saat ini semuanya terbuka di ruang kerja saat ini ... Apakah ada cara bagi saya untuk menentukan ruang kerja di mana setiap perintah harus dimulai?
Terima kasih sebelumnya!
Jawaban:
Anda bisa menggunakan devilspie untuk menetapkan aturan untuk windows mana pergi di mana ruang kerja.
Lihat dokumen untuk contoh persisnya.
Tetapi MrStatic juga memiliki saran yang bagus. Cobalah yang pertama, Anda bahkan mungkin tidak memerlukan skrip shell Anda.
Jika Anda membutuhkannya untuk menjadi perintah yang dapat Anda gunakan dalam skrip shell, lihat wmctrl .
sumber
Saya telah mencoba
wmctrl
alat ini dan menemukan bahwa solusi termudah yang berhasil bagi saya adalah memindahkan jendela dengan perintah berikut:Perhatikan bahwa nomor ruang kerja dimulai dari 0. Terakhir Anda dapat pindah ke ruang kerja pilihan Anda dengan perintah:
sumber
Saya menggunakan struktur dasar ini dalam skrip untuk membuka satu set aplikasi tertentu di ruang kerja tertentu..contoh membuka terminal saya dan memindahkannya ke ruang kerja 1 ...
sumber
Instal wmctrl
Dan buat skrip (dalam contoh ini thunderbird di ruang kerja kedua (
-t 1
)):Untuk mengetahui nama aplikasi Anda di wmctrl Anda dapat melihatnya dengan mengetuk terminal Anda:
Dan ganti dengan nama yang benar di skrip.
Jadilah carrefull dengan huruf kapital ("Thunderbird" bukan "thunderbird") !!
Contoh lain dengan firefox di ruang kerja 3d (
-t 2
):Kerjakan Debain 10 dengan Cinnamon. Tetapi harus bekerja untuk semua
sumber
Saya cukup yakin itu tidak mungkin dilakukan. Alasannya adalah karena lingkungan windowing seperti GNOME mengharapkan perangkat lunak untuk menangani hal ini, dan pembuat perangkat lunak mengharapkan lingkungan windowing untuk menangani hal ini.
Devilspie adalah ide yang bagus, tetapi cocok dengan pola (mis. Jika nama == 'google-chrome'). Jadi apa yang terjadi jika saya membuka dua browser? Mereka berdua dipindahkan ke ruang kerja yang sama? Saya memiliki 6x3 = 18 ruang kerja, masing-masing dengan instance chrome tertentu. Akan membantu jika saya bisa mengganti nama program-program ini (yaitu 'google-chrome1', 'google-chrome2' ...) tetapi saya tidak dapat menemukan cara untuk melakukan itu. Jadi kita harus menggunakan wmctrl.
wmctrl sedikit lebih baik b / c selain menggunakan judul jendela, Anda juga dapat menggunakan ID jendela atau hanya menggunakan jendela yang sedang disorot. ID jendela adalah sakit untuk mendapatkan b / c mereka tidak segera dihasilkan. Lihat di bawah
tetapi kemudian kontrol tidak dikembalikan ke baris perintah sampai SETELAH gedit keluar. Yang harus kita lakukan untuk menyiasati ini adalah memberi
&
tandatetapi kontrol sekarang, 99,999% dari waktu, kembali ke baris perintah SEBELUM manajer jendela meluncurkan jendela dan tidak ada cara untuk menemukan id jendela. Kita harus mengatur teknik pengulangan yang sangat kompleks untuk menguji untuk melihat apakah ada jendela baru telah dibuat, dan untuk menebak apakah itu jendela yang kita cari.
Memeriksa jendela aktif melalui flag
:ACTIVE:
memiliki masalah yang sama, tidak menunggu program selesai berjalan.wmctrl
menurut saya program yang sangat aneh. Sepertinya itu dirancang untuk orang tanpa mouse, atau tidak dapat secara fisik menyeret program mereka di seluruh ruang kerja.sumber