Lấy thông tin về trạng thái cửa sổ
Bạn có thể lấy thông tin (và nhiều hơn nữa) từ lệnh:
xprop -id <window_id>
Để có được những gì bạn đang tìm kiếm cụ thể:
xprop -id 0x04c00010 | grep "_NET_WM_STATE(ATOM)"
Đầu ra sẽ như sau:
_NET_WM_STATE(ATOM) = _NET_WM_STATE_MAXIMIZED_HORZ, _NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_HIDDEN
trên một cửa sổ được tối đa hóa (h + v) và thu nhỏ cùng một lúc, hoặc chỉ
_NET_WM_STATE(ATOM) =
(hoặc không có đầu ra nào cả) nếu không có trường hợp nào trong số đó là trường hợp.
vui hơn
Tất nhiên, sử dụng nhiều ngôn ngữ khác nhau, bạn có thể sử dụng Wnck , như trong đoạn trích python bên dưới. (đoạn trích từ cửa sổ-shuffler ). Đoạn mã xuất ra một danh sách, hiển thị tên cửa sổ + True
hoặc False
(được thu nhỏ).
#!/usr/bin/env python3
import gi
gi.require_version('Wnck', '3.0')
from gi.repository import Wnck
def get_winlist(scr=None, selecttype=None):
"""
get the window list. possible args: screen, select_type, in case it is
already fetched elsewhere. select type is optional, to fetch only
specific window types.
"""
if not scr:
scr = Wnck.Screen.get_default()
scr.force_update()
windows = scr.get_windows()
if selecttype:
windows = [w for w in windows if check_windowtype(w, selecttype)]
return windows
wlist = get_winlist()
for w in wlist:
print(w.get_name(), ",", w.is_maximized())
Đầu ra trông như:
Wnck.Window - Classes - Wnck 3.0 - Mozilla Firefox , True
Postvak IN - vlijm@planet.nl - Mozilla Thunderbird , True
Showtime , False
settingsexample.vala - Visual Studio Code , False
*Niet-opgeslagen document 1 - gedit , False
desktop_weather , False
Tilix: Standaard , False
Lưu ý
xprop
sẽ xử lý cả hex (như đầu ra từ vd wmctrl
) và thập phân (như đầu ra từ vd xdotool
) như nhau, ví dụ như sử dụng:
xprop -id 111371626
hoặc là
xprop -id 0x06a3656a
Phương pháp sẽ không hoạt động trên Wayland!
devilspie
cái nào được thiết kế để thực hiện chính xác loại công việc cửa sổ này. Vì vậy, không cần phải mã hóa lại, chỉ cần cấu hình