Menentukan geometri X windows dalam koordinat yang diperoleh dari wmctrl


9

Dalam dokumentasi X saya membaca bahwa Width, Height, Xpositiondan Ypositionkoordinat harus ditentukan dalam karakter terminal saat menggunakan:

gnome-terminal --geometry=WidthxHeight+Xposition+Yposition

Jika saya menggunakan input koordinat yang saya dapatkan dari wmctrl -lGoutput (tidak yakin apakah wmctrlmenggunakan piksel, karakter terminal atau sesuatu yang berbeda sebagai unit geometris), saya tidak mendapatkan hasil yang diharapkan. Yakni koordinat geometri yang dihasilkan oleh wmctrl -lGdan yang dapat ditentukan pengguna dengan gnome-terminal --geometryternyata berbeda.

Adakah yang saya lakukan salah? Adakah pikiran?

Terima kasih

Jawaban:


17

The --geometrypilihan untuk gnome-terminalbenar-benar diukur dalam karakter, bukan piksel. Misalnya, untuk mendapatkan terminal 80 kolom yang tingginya hanya 10 baris, Anda dapat meluncurkan gnome-terminalseperti ini:

gnome-terminal --geometry 80x10

Terminal akan mengubah ukuran dengan penambahan ukuran karakter font, yang dikomunikasikan ke Xserver menggunakan WM_NORMAL_HINTS. Anda dapat memeriksa ini menggunakan xpropperintah. Sebagai contoh, di sini saya menemukan id jendela Terminal, dan bertanya xprop tentang hal itu:

$ wmctrl -lG | tail -n1
0x06400021  0 592  314  580  338  myhostname kees@myhostname: ~
$ xprop -id 0x6400021
...
WM_NORMAL_HINTS(WM_SIZE_HINTS):
        program specified minimum size: 48 by 16
        program specified resize increment: 7 by 14
        program specified base size: 20 by 2
        window gravity: NorthWest
...

Dalam kasus di atas, ukuran font adalah 7 kali 14 piksel. Jadi, jika saya menginginkan Terminal 70 x 140 piksel, saya bisa menjalankannya gnome-terminal --geometry 10x10(walaupun itu akan menjadi 20 x 2 piksel lebih besar dari itu berdasarkan pada dekorasi window manager, dll, seperti yang terlihat dalam "ukuran dasar spesifik" di atas).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.