diff options
Diffstat (limited to 'contrib/inactive-windows-transparency.py')
-rwxr-xr-x | contrib/inactive-windows-transparency.py | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/contrib/inactive-windows-transparency.py b/contrib/inactive-windows-transparency.py deleted file mode 100755 index 77b1f221..00000000 --- a/contrib/inactive-windows-transparency.py +++ /dev/null | |||
@@ -1,64 +0,0 @@ | |||
1 | #!/usr/bin/python | ||
2 | |||
3 | # This script requires i3ipc-python package (install it from a system package manager | ||
4 | # or pip). | ||
5 | # It makes inactive windows transparent. Use `transparency_val` variable to control | ||
6 | # transparency strength in range of 0…1 or use the command line argument -o. | ||
7 | |||
8 | import argparse | ||
9 | import i3ipc | ||
10 | import signal | ||
11 | import sys | ||
12 | from functools import partial | ||
13 | |||
14 | def on_window_focus(inactive_opacity, ipc, event): | ||
15 | global prev_focused | ||
16 | global prev_workspace | ||
17 | |||
18 | focused = event.container | ||
19 | workspace = ipc.get_tree().find_focused().workspace().num | ||
20 | |||
21 | if focused.id != prev_focused.id: # https://github.com/swaywm/sway/issues/2859 | ||
22 | focused.command("opacity 1") | ||
23 | if workspace == prev_workspace: | ||
24 | prev_focused.command("opacity " + inactive_opacity) | ||
25 | prev_focused = focused | ||
26 | prev_workspace = workspace | ||
27 | |||
28 | |||
29 | def remove_opacity(ipc): | ||
30 | for workspace in ipc.get_tree().workspaces(): | ||
31 | for w in workspace: | ||
32 | w.command("opacity 1") | ||
33 | ipc.main_quit() | ||
34 | sys.exit(0) | ||
35 | |||
36 | |||
37 | if __name__ == "__main__": | ||
38 | transparency_val = "0.80" | ||
39 | |||
40 | parser = argparse.ArgumentParser( | ||
41 | description="This script allows you to set the transparency of unfocused windows in sway." | ||
42 | ) | ||
43 | parser.add_argument( | ||
44 | "--opacity", | ||
45 | "-o", | ||
46 | type=str, | ||
47 | default=transparency_val, | ||
48 | help="set opacity value in range 0...1", | ||
49 | ) | ||
50 | args = parser.parse_args() | ||
51 | |||
52 | ipc = i3ipc.Connection() | ||
53 | prev_focused = None | ||
54 | prev_workspace = ipc.get_tree().find_focused().workspace().num | ||
55 | |||
56 | for window in ipc.get_tree(): | ||
57 | if window.focused: | ||
58 | prev_focused = window | ||
59 | else: | ||
60 | window.command("opacity " + args.opacity) | ||
61 | for sig in [signal.SIGINT, signal.SIGTERM]: | ||
62 | signal.signal(sig, lambda signal, frame: remove_opacity(ipc)) | ||
63 | ipc.on("window::focus", partial(on_window_focus, args.opacity)) | ||
64 | ipc.main() \ No newline at end of file | ||