mirror of
				https://github.com/swaywm/sway.git
				synced 2025-11-03 09:01:43 -05:00 
			
		
		
		
	
		
			
	
	
		
			29 lines
		
	
	
	
		
			848 B
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			29 lines
		
	
	
	
		
			848 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								#!/usr/bin/python
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# This script requires i3ipc-python package (install it from a system package manager
							 | 
						||
| 
								 | 
							
								# or pip).
							 | 
						||
| 
								 | 
							
								# It makes inactive windows transparent. Use `transparency_val` variable to control
							 | 
						||
| 
								 | 
							
								# transparency strength in range of 0…1.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import i3ipc
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								transparency_val = '0.8';
							 | 
						||
| 
								 | 
							
								ipc              = i3ipc.Connection()
							 | 
						||
| 
								 | 
							
								prev_focused     = None
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								for window in ipc.get_tree():
							 | 
						||
| 
								 | 
							
								    if window.focused:
							 | 
						||
| 
								 | 
							
								        prev_focused = window
							 | 
						||
| 
								 | 
							
								    else:
							 | 
						||
| 
								 | 
							
								        window.command('opacity ' + transparency_val)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def on_window_focus(ipc, focused):
							 | 
						||
| 
								 | 
							
								    global prev_focused
							 | 
						||
| 
								 | 
							
								    if focused.container.id != prev_focused.id: # https://github.com/swaywm/sway/issues/2859
							 | 
						||
| 
								 | 
							
								        focused.container.command('opacity 1')
							 | 
						||
| 
								 | 
							
								        prev_focused.command('opacity ' + transparency_val)
							 | 
						||
| 
								 | 
							
								        prev_focused = focused.container
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								ipc.on("window::focus", on_window_focus)
							 | 
						||
| 
								 | 
							
								ipc.main()
							 |