Nhìn vào ảnh chụp màn hình của bạn, tôi đoán là bạn đang tìm cách đạt được nó trong python.
Lấy thứ tự z của các cửa sổ
Nếu bạn đang ở trên X, bạn có thể sử dụng (bằng bất kỳ ngôn ngữ nào có liên kết với - ) Wnck. Tuy nhiên, Wnck không hoạt động trên Wayland. Đoạn mã dưới đây cho thấy cách nó được thực hiện trong python. Thứ tự của danh sách đầu ra theo thứ tự của cửa sổ z-order.
Lưu ý rằng đầu ra của Wnck.get_windows_stacked()
không nên sửa đổi. Tất nhiên, bạn có thể làm việc với dữ liệu, được truy xuất từ dữ liệu đó, nhận thứ tự của các cửa sổ và thuộc tính của chúng. Trong đoạn mã, tôi chỉ sử dụng để lấy xid và tên của cửa sổ, nhưng rất nhiều là có thể.
Ví dụ
#!/usr/bin/env python3
nhập gi
gi.require_version("Wnck", "3.0")
từ gi.repository nhập khẩu Wnck
chắc chắn get_stack():
z_order_list = []
scr = Wnck.Screen.get_default()
# nếu Wnck không được gọi từ rút gọn vòng lặp Gtk, chúng ta cần:
scr.force_update()
cho w trong scr.get_windows_stacked():
# rất có thể, chúng tôi chỉ làm việc với các cửa sổ bình thường (không có bảng điều khiển hoặc máy tính để bàn)
nếu w.get_window_type() == Wnck.WindowType.NORMAL:
# chỉ thêm xid và tên ở đây, nhưng mọi thứ đều có thể
z_order_list.append([w.get_xid(), w.get_name()])
z_order_list.reverse()
trả lại z_order_list
wlist = get_stack()
cho w trong wlist:
in(w[0], w[1])
Đầu ra ví dụ:
92306612 *IDLE Shell 3.8.10*
92274937 zorder.py - /home/jacob/Bureaublad/zorder.py (3.8.10)
96468995 Nhận thứ tự các ứng dụng trên GUI - Hỏi Ubuntu - Mozilla Firefox
98568913 Geen title 1 - LibreOffice Writer
98566678 Dậu Jacob 2021-2022.ods - LibreOffice Calc
94371847 Tilix: jacob@jacob-ZN220IC-K:~
trong đó cửa sổ đầu tiên là cửa sổ gần đây nhất, vì tôi đã đảo ngược danh sách.
Lưu ý rằng Gdk có phương pháp tương tự.