Yapmanın imkansız olduğu konusunda oldukça eminim. Bunun nedeni, GNOME gibi pencereleme ortamlarının yazılımın bunu halletmesini beklemesidir ve yazılım üreticileri pencereleme ortamlarının bunu işlemesini beklemektedir.
Devilspie iyi bir fikirdir, ancak desen eşleştirmesi yapar (yani, name == 'google-chrome' ise). İki tarayıcı açarsam ne olur? İkisi de aynı çalışma alanına mı taşınıyor? Her biri belirli bir krom örneğine sahip 6x3 = 18 çalışma alanım var. Bu programları yeniden adlandırabilirsem (yani 'google-chrome1', 'google-chrome2' ...) yardımcı olabilir, ancak bunu yapmanın bir yolunu bulamıyorum. Bu yüzden wmctrl kullanmalıyız.
wmctrl, pencere başlıklarını kullanmaya ek olarak biraz daha iyi bir b / c'dir, pencere kimlikleri veya sadece o anda vurgulanan pencereyi de kullanabilirsiniz. Pencere kimlikleri, hemen üretilmedikleri b / c'yi elde etmek için bir acıdır. Aşağıya bakınız
gedit 1.txt
#get window ID by looking at wmctrl -l store in windowID
wmctrl -i -r $windowID -e 0,3660,0,-1,-1
ancak daha sonra gedit SONRASI çıkana kadar kontrol komut satırına döndürülmez. Bunu aşmak için tek yapmamız gereken bir &
işaret koymak
gedit 1.txt &
#get window ID by looking at wmctrl -l store in windowID
wmctrl -i -r $windowID -e 0,3660,0,-1,-1
ancak artık denetim, zamanın% 99,999'u, pencere yöneticileri pencereyi başlatmadan ÖNCE komut satırına geri döndü ve pencere kimliğini bulmanın bir yolu yok. Yeni pencerelerin oluşturulup oluşturulmadığını görmek ve aradığımız pencere olup olmadığını tahmin etmek için çok karmaşık bir döngü tekniği ayarlanmalıdır.
Etkin pencereyi bayrakla kontrol :ACTIVE:
etmek aynı soruna sahiptir, programın çalışmasını bitirmesini beklemez.
wmctrl
çok garip bir program olarak bana saldırıyor. Faresi olmayan veya programlarını fiziksel olarak çalışma alanlarına sürükleyemeyen kişiler için tasarlanmış gibi görünüyor.