Làm cách nào để kích hoạt hiệu ứng đảo ngược màu cho một cửa sổ?


21

Tôi muốn có hiệu ứng màu nghịch đảo (sáng đến tối) như 'âm' trong compiz, nhưng không có compiz và chỉ cho một cửa sổ (như compiz's Super+ N).

Có cách nào để có được hiệu ứng tương tự (tốt nhất là kết hợp với một phím chính) mà không cần compiz không? Tôi có thể đảo ngược màu sắc cho toàn bộ máy tính để bàn xcalib -I -a, nhưng tôi không thể giới hạn nó trong một cửa sổ.


Có thể liên quan đến bài đăng này: unix.stackexchange.com/questions/20565/ trên
Sheljohn

Tôi đã sử dụng tùy chọn cửa sổ phủ định từ trình quản lý cửa sổ compiz và nó cũng hoạt động rất tốt.
stats-hb

Câu trả lời:


21

Theo như tôi biết ... để đạt được điều đó, bạn sẽ cần sự giúp đỡ của Nhà soạn nhạc Window .
Bạn có thể thử cài đặt một bộ tổng hợp độc lập nhẹ như Compton .

Compton

Compton là một nhà soạn nhạc nhẹ cho X, và một nhánh của xcompmgr-dana.

Theo Man Pages Compton có một tùy chọn để đảo ngược màu sắc trong một cửa sổ.

ví dụ:

compton --invert-color-include <CONDITION>

Điều kiện có thể là WM_CLASS của một cửa sổ, để tìm "WM_CLASS" trong cửa sổ, bạn có thể chạy lệnh xprop

  • xprop | grep WM_CLASS

Sau đó, con trỏ sẽ là "Chữ thập" và bạn có thể nhấp vào cửa sổ bạn muốn, để tìm WM_CLASS.

Bây giờ bạn nên có một cái gì đó như thế này:

WM_CLASS (STRING) = "leafpad", "Leafpad"

nhập mô tả hình ảnh ở đây

Chuỗi thứ hai phải là WM_CLASS "Leafpad" .
Vì vậy, để đảo ngược màu sắc của trình soạn thảo Leafpad, bạn nên chạy:

  • compton --invert-color-include 'class_g="Leafpad"'

Trong một số trường hợp, bạn có thể chỉ muốn đảo ngược một số cửa sổ của chương trình (ví dụ: đảo ngược cửa sổ soạn thảo, nhưng không phải hộp thoại "lưu tệp").
Cho rằng bạn có thể sử dụng chuỗi đầu tiên trong hai WM_CLASSchuỗi (còn được gọi là "thể hiện"):

  • compton --invert-color-include '(class_g="Leafpad" && class_i="leafpad")'

Bạn không cần phải chạy compton mọi lúc, bạn có thể chạy nó khi bạn cần đảo ngược màu sắc của cửa sổ.


LƯU Ý: Trong ví dụ này, tôi đang chạy LubFi 13.04 với openbox làm trình quản lý cửa sổ nhưng không có bộ tổng hợp theo mặc định.


Để cài đặt Compton

Nhà soạn nhạc này có PPA riêng

1) Để cài đặt compton, mở Terminal và gõ:

  • sudo add-apt-repository ppa:richardgv/compton
  • sudo apt-get update && sudo apt-get install compton

Trong ví dụ này tôi sẽ tạo một tập lệnh Bash cơ bản (tôi không phải là chuyên gia về tập lệnh) để phát hiện cửa sổ đang hoạt động và đảo ngược màu sắc của nó.

2) Tạo tập lệnh.

  • sudo apt-get install xdotool
  • mkdir ~/Scripts
  • nano ~/Scripts/invert.sh

Nội dung của kịch bản:

#! /bin/bash

if [ "$(pidof compton)" ];
    then
            pkill compton
    else

        ID=$(xdotool getactivewindow)
        CLASS=$(xprop -id "$ID"  | grep "WM_CLASS" | awk '{print $4}')
        COND="class_g=${CLASS}"
        compton --invert-color-include "$COND" &
fi
exit

Về cơ bản, tập lệnh sẽ kiểm tra xem compton có chạy hay không, nếu nó không chạy xdotool sẽ tìm id cửa sổ của cửa sổ đang hoạt động, với id xprop sẽ tìm WM_CLASS, sau đó với WM_CLASS, nó sẽ tạo điều kiện và cuối cùng sẽ chạy compton với điều kiện như là đối số.

Làm cho kịch bản thực thi.

  • chmod +x ~/Scripts/invert.sh

Trong trường hợp của tôi, tôi sẽ tạo một liên kết mềm đến thư mục / usr / bin / với tên "invert-color"

  • sudo ln -s ~/Scripts/invert.sh /usr/bin/invert-color

3) tạo Lối tắt bàn phím,
ví dụ: Ctrl+ Alt+ U (Trong Lubfox, bạn nên chỉnh sửa tệp Lubfox-RC.xml)

  • leafpad ~/.config/openbox/lubuntu-rc.xml

Thêm các dòng sau:

<!-- Launch invert-color activewindow on Ctrl + Alt + U-->
<keybind key="C-A-U">
  <action name="Execute">
    <command>invert-color</command>
  </action>
</keybind>

Cuối cùng, bạn có thể Đăng xuất và Đăng nhập để xem những thay đổi trong phím tắt.


Ý định của tôi là khi tôi cần đảo ngược màu sắc trong cửa sổ đang hoạt động, tôi có thể thực hiện với Shortcut Ctrl+ Alt+ U. Nếu tôi muốn quay lại màu bình thường, tôi sẽ nhấn lại phím tắt và tập lệnh sẽ phát hiện ra compton đang chạy lệnh pkill sẽ giết quá trình compton.
Vì vậy, theo cách này tôi sẽ chỉ chạy bộ tổng hợp khi tôi cần.

Ở đây bạn có một vài ảnh chụp màn hình:

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

Hy vọng nó giúp.


Bất kỳ cách nào để làm cho công việc này nếu một cửa sổ là toàn màn hình? Điều này có thể được mong muốn khi chuyển đổi giữa các không gian làm việc khác nhau.
Kem đánh răng

@Toothrot đã hoạt động như quảng cáo trên hệ thống của tôi (sử dụng i3wm và chính xác kịch bản đó từ câu trả lời)
sehe

2

Phần mở rộng Gnome Shell "Đảo ngược màu cửa sổ" thực hiện việc này mà không gặp rắc rối nào. Đây là Liên kết .

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.