2010-01-04 12 views
18

Có lệnh nào để báo cho compiz biết rằng chúng tôi muốn đưa vào trước và đặt trọng tâm vào một cửa sổ cụ thể không? Chúng ta nên xác định cửa sổ trong lệnh đó như thế nào?Làm thế nào để lập trình chuyển sang một cửa sổ cụ thể trong compiz?

Các lý do đằng sau câu hỏi này là việc sử dụng hợp cụ thể sau đây:

Giả sử chúng ta có một wiki để ghi chép của bất cứ điều gì thú vị, chúng tôi tìm hiểu. Nó sẽ rất thuận tiện để có một phím tắt để mang lại cửa sổ trình duyệt với trang Wiki của chúng tôi ở phía trước và bắt đầu gõ ngay sau đó với một công tắc tổ hợp phím để ứng dụng chúng tôi đã làm việc trước

Tôi biết rằng ALT + TAB chuyển đổi giữa hai cửa sổ được sử dụng cuối cùng nhưng không thể hỗ trợ các kết hợp ứng dụng phức tạp hơn. Ví dụ như trình duyệt + Eclipse + Wiki

Nếu có một lệnh như một trong những mô tả, nó rất dễ dàng để thêm một phím tắt để nó khỏi KDE hay GNOME giao diện

+0

Bạn có thể thêm thẻ [cửa sổ quản lý] cho câu hỏi này. Cám ơn. – SmileAndNod

Trả lời

20

Những gì bạn đang tìm kiếm là wmctrl. Ví dụ: thêm lối tắt bàn phím để gọi một lệnh như

wmctrl -Fa 'Wiki - Google Chrome' 

để nâng cao và kích hoạt cửa sổ với tiêu đề đó.

Có nhiều cách khác nhau để chọn cửa sổ theo tiêu đề, id, v.v. xem man wmctrl. Danh sách các cửa sổ có thể thu được chạy

$ wmctrl -l 

Tôi đã không thử nó với compiz nhưng wmctrl nên làm việc cho bất kỳ EWMH quản lý cửa sổ phù hợp.

+0

Đã lưu cho tôi một loạt thời gian, cảm ơn! – dhackner

+0

Điều này không hiệu quả đối với tôi. không chắc chắn lý do tại sao. – dave1010

+1

Chỉ cần một sidenote: tùy chọn -F wmctrl làm cho nó tìm kiếm kết hợp chính xác trên tiêu đề cửa sổ. Nếu không, chỉ tìm kiếm chuỗi con của nó (có thể phù hợp hơn cho một số mục đích). – rburny

1

tôi thấy this web page rằng có một chương trình ví dụ nguồn bạn có thể biên dịch mà sẽ mang một cửa sổ X lên phía trước.

Khóa là chức năng X11 XRaiseWindow. Tôi tưởng tượng nó sẽ được khá dễ dàng để viết một chương trình nhỏ và viết một kịch bản wrapper hoặc chỉ làm cho chương trình chính nó mạnh mẽ, và sau đó thiết lập Compiz để đính kèm này vào một phím tắt bàn phím toàn cầu.

2

Bạn sẽ muốn gửi thông báo khách hàng tới cửa sổ gốc. Điều này sẽ cảnh báo bất kỳ trình quản lý cửa sổ phù hợp (bao gồm Compiz) mà bạn đang yêu cầu để kích hoạt một cửa sổ cụ thể.

Xem EWMH spec, cụ thể là section on _NET_ACTIVE_WINDOW.

Lưu ý rằng tùy thuộc vào cấu hình của trình quản lý cửa sổ, nó có thể từ chối tôn trọng yêu cầu của bạn hoặc cho người dùng cơ hội bỏ qua yêu cầu đó.

4

này làm việc cho tôi với Compiz:

xdotool windowactivate `xdotool search --onlyvisible --class firefox` 
+0

Làm việc cho tôi ngay bây giờ dưới Ubuntu 12.04 với Unity, trong khi wmctrl thì không. Cảm ơn! –

+0

Bạn không cần hai lệnh xdotool riêng biệt; bạn có thể sử dụng% 1 để tham khảo kết quả tìm kiếm đầu tiên hoặc% @ để chỉ tất cả chúng: tìm kiếm xdotool --onlyvisible --class firefox windowactivate% @ –

0

Plugin Widget có thể làm những gì bạn mô tả.

  • Định cấu hình plugin Widget để đánh dấu cửa sổ mong muốn làm tiện ích (ví dụ: bằng cách khớp trên tiêu đề cửa sổ hoặc vai trò).
  • Định cấu hình plugin Quy tắc cửa sổ để hiển thị cửa sổ tiện ích trên tất cả không gian làm việc (dính) và bỏ qua thanh tác vụ.

Xem http://wiki.compiz.org/Plugins/Widget