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
gedit 1.txt
#get window ID by looking at wmctrl -l store in windowID
wmctrl -i -r $windowID -e 0,3660,0,-1,-1
tetapi kemudian kontrol tidak dikembalikan ke baris perintah sampai SETELAH gedit keluar. Yang harus kita lakukan untuk menyiasati ini adalah memberi &
tanda
gedit 1.txt &
#get window ID by looking at wmctrl -l store in windowID
wmctrl -i -r $windowID -e 0,3660,0,-1,-1
tetapi 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.