Firefox penceresinin belirli bir boyutta ve örneğin kabuk komutuyla ekrandaki konumunun açılmasını istiyorum, örneğin:
firefox myfile.html size 800x600 location bottom-left
Böyle bir komut var mı?
Firefox penceresinin belirli bir boyutta ve örneğin kabuk komutuyla ekrandaki konumunun açılmasını istiyorum, örneğin:
firefox myfile.html size 800x600 location bottom-left
Böyle bir komut var mı?
Yanıtlar:
Burada, Rudolf Olah tarafından sunulan örnekleri içeren Yokai'nin cevabının topluluk versiyonu .
xdotool
Pencere boyutunu ve konumunu kontrol etmek için çağrılan aracı kullanabilirsiniz . Sadece sen yazmak herhangi bir komut dosyası, bu bash
kullanarak xdotool
, tam maksimize pencere ile işe kurulum olabilir ve pencere boyutunu ayarlamak için metne ve x edilebilir: manipüle ederek y koordinatlarını mousemove
ve click
komutları.
Pencere kimliğini bulun:
xdotool search --onlyvisible --name firefox
Pencere boyutunu ayarla
xdotool windowsize $WINDOW_ID_GOES_HERE $WIDTH $HEIGHT
Pencereyi taşı
xdotool windowmove $WINDOW_ID_GOES_HERE $X $Y
Örneğin, firefox için pencere kimliği 123 ise, bunu yaparsınız:
xdotool windowsize 123 800 600
xdotool windowmove 123 0 1080
Sol alt konumlandırma, ekran çözünürlüğünüze göre belirlenmelidir.
xdotool
, wmctrl
vb .. ve Ubuntu, XFCE (sahip olduğum): pencere zaten tam ekran modunda başlattı eğer, artık bunu taşıyamazsınız: bugs.launchpad.net/ubuntu/+source/unity/ + bug / 971147
Bildiğim kadarıyla, bu mümkün değildir çünkü Firefox pencereyi kontrol etmek için komutları kabul etmiyor. Bu aynı zamanda (çoğunlukla) pencere yöneticisinin sorumluluğudur, bu yüzden bunu yapacak parametrelerin olacağından şüpheliyim. Ancak, pencereyi wmctrl ile kontrol edebilirsiniz , ancak bu biraz zor olacak:
#!/bin/sh
firefox -new-instance -new-window "http://www.reddit.org" &
# Process ID of the process we just launched
PID=$!
# Window ID of the process...pray that there's
# only one window! Otherwise this might break.
# We also need to wait for the process to spawn
# a window.
while [ "$WID" == "" ]; do
WID=$(wmctrl -lp | grep $PID | cut "-d " -f1)
done
# Set the size and location of the window
# See man wmctrl for more info
wmctrl -i -r $WID -e 0,50,50,250,250
Bunu yapmanın daha akıllıca yolları olabilir ve Firefox'la birlikte çalışabilirlikle ilgili bazı sorunlar olabilir (örneğin, başka hiçbir örnek çalışmamaktadır), ancak sizi yönlendirmelidir.
Geçmişte, Javascript ile pencere boyutunu ayarlayan ve ardından istediğim sayfaya yönlendiren bir HTML belgesi oluşturdum. Aptalca bir kesmek ama hey, işe yarıyor.
Bunun sadece kabuk komutları ile mümkün olduğunu sanmıyorum, çünkü pencere yöneticinizle bir ilgisi yok.
Bunu etkileyebilecek wmctrl ve devilspie'yi duydum . Ancak bunu, örneğinizde yazdığınız kadar basit yapmanın bir yolu olduğundan şüpheliyim.
Bunu her zaman yapıyorum. Ancak DevilsPie2 kullanıyorum, çünkü daha sağlam. LUA kodlama dilini kullanıyor, bu çok zor değil.
İşte açıldığında en soldaki monitörde (dizüstü bilgisayar ekranı) açmak istediğim Thunderbird için lua betiğim:
if (get_window_name()=="Mozilla Thunderbird") then
pin_window()
set_window_geometry( 50, 10, 1220, 780 )
end
where 50 = X coordinate (for upper-left corner of the window)
10 = Y coordinate ( " " )
1220 = window width
780 = window height
Bunu ayarlamak için, ev yapılandırmanızda (Ubuntu benzeri dağıtımlarda) devilspie2 adlı bir dizin oluşturursunuz, örneğin /home/$USERNAME/.config/devilspie2
Thunderbird için dosya adı önemli olmasa da thunderbird.lua dosyasını yarattım. Her uygulama için farklı bir dosya adım var, ancak dilerseniz her şeyi tek bir komut dosyasına koyabilirsiniz. Giriş yaptığınızda otomatik olarak başlayacak devilspie2'yi ayarlayın, örneğin /home/$USERNAME/.config/autostart/devilspie2.desktop
Burada, lua kodunuzda kullanabileceğiniz çeşitli seçenekler hakkında iyi bir sayfaya bir bağlantı verilmiştir: https://github.com/gusnan/devilspie2/blob/master/README
Bir not: Komut dosyalarının çalıştırılabilir olması gerekmez. Benimki 664 ve iyi çalışıyor. Kontrol ettiğim diğer programlardan bazıları openconnect, pidgin, RecordMyDesktop, timeshift, xeyes, xload ve & yad. Pin_window'ı kullanıyorum, böylece tüm masaüstlerinde ve uygulamaya bağlı olarak diğer komutlarda görünebiliyorlar.
devilspie2 --debug
)