Apakah ada cara untuk meletakkan jendela di tengah layar setelah dibuka, atau membuatnya terbuka di tengah layar?
Ini perlu dilakukan menggunakan baris perintah.
sumber
Apakah ada cara untuk meletakkan jendela di tengah layar setelah dibuka, atau membuatnya terbuka di tengah layar?
Ini perlu dilakukan menggunakan baris perintah.
alat wmctrl menyediakan akses baris perintah ke hampir semua fitur yang ditentukan dalam spesifikasi EWMH (Extended Window Manager Hints) . Ini dapat digunakan, misalnya, untuk mendapatkan informasi tentang manajer jendela, untuk mendapatkan daftar desktop dan jendela terkelola yang terperinci, untuk beralih dan mengubah ukuran desktop, membuat jendela layar penuh , selalu di atas atau lengket , dan untuk mengaktifkan , tutup , pindahkan , ubah ukuran , maksimalkan ,dan minimalkan .
Anda dapat menginstalnya dengan
sudo apt-get install wmctrl
Anda dapat memperoleh informasi tentang desktop virtual (ruang kerja) Anda dengan
wmctrl -d
one@onezero:~$ wmctrl -d
0 * DG: 2720x1536 VP: 0,0 WA: 0,24 1360x744 N/A
Dan daftar jendela yang terbuka dengan wmctrl -l
. The -G
pilihan menunjukkan Anda geometri dari jendela:
one@onezero:~$ wmctrl -l
0x02000004 0 onezero Desktop
0x02e00002 0 N/A DNDCollectionWindow
0x02e00003 0 N/A launcher
0x01e00004 0 onezero cairo-dock
0x02e00004 0 N/A panel
0x04800061 0 onezero Transmission
0x02e0000a 0 N/A Dash
0x03a00044 0 onezero arranging windows from the gnu/linux command line with wmctrl ~ Moving to Freedom - Chromium
0x04400006 0 onezero one@onezero: ~
0x04c000e9 0 onezero Google - Mozilla Firefox
wmctrl -lG
one@onezero:~$ wmctrl -lG
0x02000004 0 0 0 1360 768 onezero Desktop
0x02e00002 0 -1460 -868 1360 768 N/A DNDCollectionWindow
0x02e00003 0 0 24 58 744 N/A launcher
0x01e00004 0 290 653 780 115 onezero cairo-dock
0x02e00004 0 0 0 1360 24 N/A panel
0x04800061 0 408 95 732 500 onezero Transmission
0x02e0000a 0 -1402 -844 1302 744 N/A Dash
0x03a00044 0 0 24 1360 744 onezero Center a window via command line - Ask Ubuntu - Stack Exchange - Chromium
0x04400006 0 127 94 983 434 onezero one@onezero: ~
0x04c000e9 0 5 47 1349 715 onezero Google - Mozilla Firefox
Anda dapat menentukan jendela dengan merujuk judul atau sebagian judulnya setelah -r. -e adalah untuk memindahkan dan mengubah ukuran
wmctrl -r "Mozilla Firefox" -e <G>,<X>,<Y>,<W>,<H>
<G>: Gravity specified as a number. The numbers are defined in the EWMH specification. The value of zero is particularly
useful, it means "use the default gravity of the window".
<X>,<Y>: Coordinates of new position of the window.
<W>,<H>: New width and height of the window.
Jadi, untuk memindahkan jendela ke sudut kiri atas dan membuat lebar 1000 piksel dengan tinggi 700, Anda akan menggunakan 0,0.0.1000.700
one@onezero:~$ wmctrl -r "Mozilla Firefox" -e 0,0,0,1000,700
Untuk memindahkan / mengubah ukurannya. Untuk itu, saya menggunakan solusi "unmaximizing" terlebih dahulu, menggunakan -b
opsi
wmctrl -r "Mozilla Firefox" -b tambahkan, maximized_vert, maximized_horz
wmctrl -r "Mozilla Firefox" -b hapus, maximized_vert, maximized_horz
one@onezero:~$ wmctrl -r "Mozilla Firefox" -b add,maximized_vert,maximized_horz
Hal-Hal yang Perlu Anda Pahami 1
The -e option expects a list of comma separated integers: "gravity,X,Y,width,height"
itu adalah Resolusi layar saya jadi x = 1360 & y = 786
Menyelaraskan jendela ke setengah kiri layar
one@onezero:~$ wmctrl -r "Mozilla Firefox" -e 1,0,0,680,768
Menyelaraskan jendela ke setengah kanan layar
one@onezero:~$ wmctrl -r "Mozilla Firefox" -e 1,680,0,680,768
Menyelaraskan jendela ke center of screen
1360/4 = 340
one@onezero:~$ wmctrl -r "Mozilla Firefox" -e 1,340,0,680,768
Memanipulasi sebagai pengaturan layar Anda
yang berfungsi dengan jendela yang sedang aktif
IFS='x' read screenWidth screenHeight < <(xdpyinfo | grep dimensions | grep -o '[0-9x]*' | head -n1)
width=$(xdotool getactivewindow getwindowgeometry --shell | head -4 | tail -1 | sed 's/[^0-9]*//')
height=$(xdotool getactivewindow getwindowgeometry --shell | head -5 | tail -1 | sed 's/[^0-9]*//')
newPosX=$((screenWidth/2-width/2))
newPosY=$((screenHeight/2-height/2))
xdotool getactivewindow windowmove "$newPosX" "$newPosY"
bash
atauzsh
dijalankan, polossh
tidak akan berfungsi.xdotool
tindakan apa yang harus dilakukan untuk membuat mereka menjadi "normal" sebelum meneleponwindowmove
. Ide ide?wmctrl
juga, solusi yang lebih baik diterima. TL; DR: panggilanwmctrl -ir "$(xdotool getactivewindow)" -b remove,maximized_vert,maximized_horz
sebelumxdotool getactivewindow windowmove
panggilan terakhir .Jika ada yang ingin cuplikan kode untuk disalin / ditempelkan untuk melakukan ini, ini salah satunya:
Ganti
foo
dengan nama jendela yang Anda ingin pusatkan di baris pertama, tentu saja.Penjelasan (rincian dalam bentuk contoh sesi konsol):
Mendapatkan dimensi layar
Mendapatkan informasi geometri jendela
Memindahkan jendela
sumber
Sebagian besar aplikasi harus menghormati parameter --geometry saat memulai (beberapa lebih suka -geometry, coba yang kedua jika yang pertama tidak berhasil untuk Anda):
Parameter geometri memiliki bentuk ini:
Anda dapat meninggalkan bagian yang tidak dibutuhkan:
Untuk lebih jelasnya:
lalu tekan "/" dan cari SPESIFIKASI GEOMETRI
atau lihat di sini: http://www.cotse.com/dlf/man/xwindows/geometry.htm
sumber