Làm cách nào để đóng, thu nhỏ và tối đa hóa một cửa sổ được chỉ định từ Terminal?


16

Tôi đang chạy Ubuntu Gnome 15.10 với Gnome 3.18 và tôi tự hỏi liệu có cách nào từ Terminal để đóng, thu nhỏ, hủy tối đa hóa, tối đa hóa và tối đa hóa các cửa sổ được chỉ định không?

Lưu ý - Tôi đã xem phần Hỏi & Đáp này - Tôi đang hỏi cách thực hiện từ Terminal ... Không phải cách thêm các nút ... Các nút đã có sẵn, tôi không cần thêm chúng.



@Anastasia: Làm thế nào đây là một bản sao của điều đó? Điều đó chỉ hỏi về việc giảm thiểu ... Tôi đang hỏi về tất cả những thứ khác cũng không được trả lời ở đó.

Tôi cho rằng những hành động đó có liên quan mật thiết đến mức việc trả lời một câu hỏi sẽ dẫn đến tất cả những hành động khác, nhưng bạn nói đúng, đó có thể là một cuộc càn quét rộng. Bây giờ tôi cũng đang tự hỏi trong tập hợp các câu hỏi có thể được coi là trùng lặp.
Anastasia

@Anastasia: Chà, bởi vì câu trả lời cho câu hỏi khác không thực sự đề cập đến cách đạt được điều này, ngay cả khi chúng sẽ giúp tôi, nó vẫn không phải là một bản sao của câu hỏi đó. Ngoài ra, ngay cả khi câu trả lời cho câu hỏi khác trả lời câu hỏi của tôi, câu hỏi của tôi vẫn không hỏi điều tương tự như câu hỏi khác.

Xin chào Para, tôi hy vọng câu hỏi vẫn còn "mở". Tổng quan ...
Jacob Vlijm

Câu trả lời:


17

Có hai công cụ quan trọng để thao tác các cửa sổ từ cli; xdotoolwmctrl. Cả hai công cụ chồng chéo lẫn nhau về chức năng, nhưng các lệnh quan trọng nhất đề cập đến câu hỏi của bạn:

Trong một tổng quan (không nghi ngờ gì là không đầy đủ), liệt kê các lệnh tôi sử dụng nhiều nhất:

Đóng cửa sổ

wmctrl:

wmctrl -ic <window_id>

Thu nhỏ cửa sổ

xdotool:

xdotool windowminimize <window_id>

Bỏ tối thiểu một cửa sổ

wmctrl:

giảm thiểu hiệu quả được thực hiện bằng cách:

wmctrl -ia <window_id>

Tôi đề cập một cách hiệu quả , vì lệnh di chuyển đến màn hình nền tương ứng, hủy bỏ tối đa và tăng cửa sổ, nhưng lệnh cũng thực hiện điều đó trên các cửa sổ không được thu nhỏ.

Tối đa hóa một cửa sổ

xdotool:

xdotool windowsize <window_id> 100% 100%

wmctrl:

wmctrl -ir <window_id> -b add,maximized_vert,maximized_horz

Tối đa hóa một cửa sổ:

wmctrl -ir <window_id> -b remove,maximized_vert,maximized_horz

Ghi chú

  • Cả hai xdotoolwmctrlkhông có trên hệ thống của bạn theo mặc định:

    sudo apt-get install xdotool wmctrl
    
  • Để chạy bất kỳ lệnh nào trên cửa sổ hiện đang hoạt động :

    • cho wmctrlcác lệnh, loại bỏ -itùy chọn, thay thế <window_id>bằng:ACTIVE:

    • cho xdotoolcác lệnh: thay thế <window_id>bằng$(xdotool getactivewindow)

  • Trong nhiều trường hợp, các lệnh có thể được chạy bằng cách sử dụng id cửa sổ hoặc tên cửa sổ . Các -itùy chọn trong wmctrlbảo wmctrlsử dụng id cửa sổ. Tôi khuyên bạn không nên sử dụng tên của cửa sổ làm định danh, để ngăn ngừa xung đột tên. Nó xảy ra dễ dàng hơn bạn mong đợi.

  • Từ kinh nghiệm của riêng tôi, sử dụng tối đa hóa trong một kịch bản; Sử dụng wmctrlđể tối đa hóa / không tối đa hóa có thể là một lỗi nhỏ trên cả hai UnityGnome, trong khi xdotooltùy chọn hoạt động mạnh mẽ hơn theo kinh nghiệm của tôi. Trong hầu hết các kịch bản, tôi kết thúc bằng cách sử dụng kết hợp cả hai wmctrlxdotool.

Thông tin thêm về man wmctrlman xdotool (chủ yếu là phần: WINDOW THÔNG TIN ).


Cảm ơn câu trả lời tuyệt vời! Nhưng làm thế nào để bạn cũng bỏ tối đa một cửa sổ?

1
@ParanoidPanda xem câu trả lời được cập nhật của tôi :)
Jacob Vlijm

1
wmctrl -ir <window_id> -b remove,maximized_vert,maximized_horzkhông hoạt động trên gnome 3.20
user41209

4

Thêm vào câu trả lời của Jacob Vlijm:

xdotool windowactivate $minwinid
xdotool windowraise $minwinid
xdotool windowfocus $minwinid

Cũng hoạt động để tối ưu hóa một cửa sổ. Các hình ảnh động là nhanh hơn đối với tôi.

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.