Lấy danh sách các cửa sổ đang mở trong Linux


24

ps ax hiển thị tất cả các quá trình đang chạy. Tôi muốn làm một cái gì đó tương tự, nhưng thay vì tên của các quy trình thực tế, tôi muốn các tên cửa sổ được liệt kê thay thế. Lệnh Linux nào sẽ làm điều này?

Câu trả lời:


35

wmctrl -lcó thể là những gì bạn đang tìm kiếm. Các wmctrl chương trình cũng có thể thực hiện một số hành động đơn giản trên các cửa sổ như di chuyển chúng xung quanh và thiết lập các thuộc của họ.


18

xlsclientshiển thị các máy khách đang chạy và xwininfo -root -childrenhiển thị tất cả các con của cửa sổ gốc. Điều đó cũng bao gồm một số thứ trình quản lý cửa sổ hoặc màn hình nền của bạn.


Đây là đầu ra wmctrl -l cộng thêm một số chi tiết.
Smile4ever

4

Đây là cách chỉ hiển thị tên:

wmctrl -l|awk '{$3=""; $2=""; $1=""; print $0}'

bởi vì wmctrl -lhiển thị thêm một chút thông tin thay vì chỉ yêu cầu tên trong câu hỏi:

như thế này:

0x020002c6  0 ruslan-Latitude-E6410 fromscratch
0x04600007  0 ruslan-Latitude-E6410 Psensor - Temperature Monitor
0x01600007  0 ruslan-Latitude-E6410 Top Expanded Edge Panel
0x01600017  0 ruslan-Latitude-E6410 Bottom Expanded Edge Panel
0x0200000a -1 ruslan-Latitude-E6410 Desktop
0x05a0000c  0 ruslan-Latitude-E6410 ruslan@ruslan-Latitude-E6410: /var/lib/apt
0x05600085  0 ruslan-Latitude-E6410 index.html (~/Dropbox/cpucraft.com/fromscratch) - gedit

và lọc nó bằng cách awkchúng tôi chỉ nhận được tên của các cửa sổ đang mở:

   fromscratch
   Psensor - Temperature Monitor
   Top Expanded Edge Panel
   Bottom Expanded Edge Panel
   Desktop
   ruslan@ruslan-Latitude-E6410: /var/lib/apt
   index.html (~/Dropbox/cpucraft.com/fromscratch) - gedit
   ubuntu - Get a list of open windows in Linux - Super User - Mozilla Firefox
   cpucraft@cpucraft.com - FileZilla

2

Nếu bạn chỉ muốn các tiêu đề và không có thông tin nào khác (thậm chí không có khoảng trắng), bạn có thể sử dụng thông tin này:

wmctrl -l | grep -o "$HOSTNAME.*" | sed "s/$HOSTNAME //g"

Kết quả:

linux - Cách grep và thay thế - Stack Overflow - Pale Moon
Làm thế nào tôi có thể sử dụng một biến trong sed? | Diễn đàn Unix Linux | Lập trình và lập trình Shell - Pale Moon
Xóa mọi thứ sau các ký tự * hoặc # hoặc & trong tệp văn bản với GREP - Stack Overflow - Pale Moon
Video.mp4 - Trình phát phương tiện VLC
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.