Saya ingin jendela Firefox dibuka dalam ukuran tertentu, dan lokasi di layar menggunakan perintah shell, misalnya:
firefox myfile.html size 800x600 location bottom-left
Apakah ada perintah seperti itu?
Saya ingin jendela Firefox dibuka dalam ukuran tertentu, dan lokasi di layar menggunakan perintah shell, misalnya:
firefox myfile.html size 800x600 location bottom-left
Apakah ada perintah seperti itu?
Jawaban:
Berikut adalah versi komunitas dari jawaban oleh Yokai yang menggabungkan contoh-contoh yang ditawarkan oleh Rudolf Olah .
Anda dapat menggunakan alat yang disebut xdotool
untuk mengontrol ukuran dan lokasi jendela. Tidak hanya itu, skrip apa pun yang Anda tulis bash
, gunakan xdotool
, dapat diatur untuk bekerja dengan jendela yang sepenuhnya dimaksimalkan dan dapat dituliskan untuk mengatur ukuran jendela dan koordinat x: y dengan memanipulasi mousemove
dan click
perintah.
Temukan ID jendela:
xdotool search --onlyvisible --name firefox
Atur ukuran jendela
xdotool windowsize $WINDOW_ID_GOES_HERE $WIDTH $HEIGHT
Pindahkan jendelanya
xdotool windowmove $WINDOW_ID_GOES_HERE $X $Y
Misalnya, jika id jendela untuk firefox adalah 123 Anda akan melakukan ini:
xdotool windowsize 123 800 600
xdotool windowmove 123 0 1080
Posisi kiri bawah harus ditentukan berdasarkan resolusi layar Anda.
xdotool
, wmctrl
dll. Dan Ubuntu, XFCE (yang saya miliki): jika jendela sudah diluncurkan dalam mode layar penuh, Anda tidak dapat memindahkannya lagi: bugs.launchpad.net/ubuntu/+source/unity/ + bug / 971147
Sejauh yang saya tahu, ini tidak mungkin karena Firefox tidak menerima perintah untuk mengontrol jendela. Itu juga (sebagian besar) tanggung jawab manajer jendela, jadi saya ragu bahwa akan ada parameter untuk melakukan itu. Namun, Anda dapat mengontrol jendela dengan wmctrl , tetapi itu akan sedikit sulit:
#!/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
Mungkin ada cara yang lebih cerdik untuk melakukannya, dan ada beberapa masalah interoperabilitas dengan Firefox (mis. Tidak ada contoh lain yang sedang berjalan) tetapi harus membuat Anda maju.
Di masa lalu saya telah membuat dokumen HTML yang akan mengatur ukuran jendela dengan Javascript lalu mengarahkan ke halaman yang saya inginkan. Ini hack bodoh tapi, hei, itu berhasil.
Saya melakukan ini sepanjang waktu. Saya menggunakan DevilsPie2, karena lebih kuat. Ini menggunakan bahasa scripting LUA, yang tidak terlalu sulit.
Inilah skrip lua saya untuk Thunderbird, yang ingin saya buka di monitor paling kiri (layar laptop) ketika dibuka:
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
Untuk mengatur ini, Anda membuat direktori di konfigurasi rumah Anda (pada distribusi seperti Ubuntu) bernama devilspie2, misalnya /home/$USERNAME/.config/devilspie2
Untuk Thunderbird, saya membuat thunderbird.lua, meskipun nama file tidak masalah. Saya memiliki nama file yang berbeda untuk setiap aplikasi meskipun Anda dapat meletakkan semuanya menjadi satu file skrip jika Anda mau. Set devilspie2 untuk memulai secara otomatis ketika Anda login, mis. /Home/$USERNAME/.config/autostart/devilspie2.desktop
Berikut ini tautan ke halaman bagus tentang berbagai opsi yang tersedia untuk skrip lua Anda: https://github.com/gusnan/devilspie2/blob/master/README
Satu catatan: Skrip tidak harus dapat dieksekusi. Punyaku 664 dan bekerja dengan baik. Beberapa program lain yang saya kendalikan adalah openconnect, pidgin, RecordMyDesktop, timeshift, xeyes, xload, & yad. Saya menggunakan pin_window pada mereka sehingga mereka muncul di semua desktop, ditambah perintah lain tergantung pada aplikasi.
devilspie2 --debug
)