Saya memiliki skrip bash yang memindahkan windows saya dari layar kiri ke layar kanan dalam pengaturan dua layar. Saat ini cara kerjanya adalah bersepeda melalui id jendela yang diberikan oleh xdotool search --onlyvisible --maxdepth 2 --class ""
dan kemudian memindahkannya ke kanan dengan lebar layar. Ini sudah berfungsi ... kecuali jendela yang dimaksud dimaksimalkan atau diminimalkan.
Jadi yang dibutuhkan adalah cara untuk memeriksa status jendela saat ini. Saya telah menemukan jawaban yang menyediakan cara untuk menambah dan menghapus bit-bit itu, tetapi di mana cara untuk memeriksa apakah sudah ditetapkan?
Jika tidak mungkin dilakukan melalui xdotool , harus dimungkinkan untuk menggunakan kembali id jendela yang disediakan oleh perintah yang disebutkan di atas.
sumber
devilspie
yang dirancang untuk melakukan pekerjaan jendela seperti ini. Jadi tidak perlu melakukan pengodean ulang, cukup konfigurasikanJawaban:
Ambil info pada status jendela
Anda bisa mendapatkan info (dan banyak lagi) dari perintah:
Untuk mendapatkan apa yang Anda cari secara spesifik:
Outputnya akan terlihat seperti:
pada jendela yang dimaksimalkan (h + v) dan diminimalkan pada saat yang sama, atau adil
(atau tidak ada output sama sekali) jika tidak ada yang terjadi.
lebih menyenangkan
Tentu saja, dengan menggunakan berbagai bahasa, Anda dapat menggunakan Wnck , seperti dalam cuplikan python di bawah ini. (cuplikan dari window-shuffler ). Cuplikan menampilkan daftar, menampilkan nama jendela + salah satu
True
atauFalse
(diminimalkan).Outputnya seperti:
NB
xprop
akan menangani hex (sebagai output dari egwmctrl
) dan desimal (sebagai output dari egxdotool
) id yang sama-sama misalnya digunakan:atau
Metode tidak akan berfungsi di Wayland!
sumber
_NET_WM_STATE(ATOM)
tidak, seperti yang ditunjukkan dalam jawaban, muncul dengan nilai kosong. Sebaliknya, itu tidak ada dalam output sama sekali.