contrib: add ignore arg to transparency script

This commit is contained in:
Aelfsyg 2022-03-29 19:52:33 +01:00
parent 8f036b6f78
commit fd8b9d1f4d

View file

@ -11,6 +11,10 @@ import signal
import sys import sys
from functools import partial from functools import partial
def ignored(window):
global ignore
return window.app_id in ignore
def on_window_focus(inactive_opacity, ipc, event): def on_window_focus(inactive_opacity, ipc, event):
global prev_focused global prev_focused
global prev_workspace global prev_workspace
@ -26,7 +30,8 @@ def on_window_focus(inactive_opacity, ipc, event):
if focused.id != prev_focused.id: # https://github.com/swaywm/sway/issues/2859 if focused.id != prev_focused.id: # https://github.com/swaywm/sway/issues/2859
focused.command("opacity 1") focused.command("opacity 1")
if workspace == prev_workspace: if workspace == prev_workspace:
prev_focused.command("opacity " + inactive_opacity) if not ignored(prev_focused):
prev_focused.command("opacity " + inactive_opacity)
prev_focused = focused prev_focused = focused
prev_workspace = workspace prev_workspace = workspace
@ -52,7 +57,16 @@ if __name__ == "__main__":
default=transparency_val, default=transparency_val,
help="set opacity value in range 0...1", help="set opacity value in range 0...1",
) )
parser.add_argument(
"--ignore",
"-i",
type=str,
default=[],
help="List of ignored processes.",
nargs="+"
)
args = parser.parse_args() args = parser.parse_args()
ignore = args.ignore
ipc = i3ipc.Connection() ipc = i3ipc.Connection()
prev_focused = None prev_focused = None
@ -61,7 +75,7 @@ if __name__ == "__main__":
for window in ipc.get_tree(): for window in ipc.get_tree():
if window.focused: if window.focused:
prev_focused = window prev_focused = window
else: elif not ignored(window):
window.command("opacity " + args.opacity) window.command("opacity " + args.opacity)
for sig in [signal.SIGINT, signal.SIGTERM]: for sig in [signal.SIGINT, signal.SIGTERM]:
signal.signal(sig, lambda signal, frame: remove_opacity(ipc)) signal.signal(sig, lambda signal, frame: remove_opacity(ipc))