1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
import subprocess
desktop_name = 'term'
instance_name = 'tmux_term'
def is_term_running():
p = subprocess.run(['xdo', 'id', '-n', instance_name])
return p.returncode == 0
def run_term():
subprocess.Popen(['alacritty', '--class', instance_name,
'-e', 'tmux', 'new-session', '-A', '-s', 'default'])
def get_focused_desktop():
p = subprocess.run(['bspc', 'query', '-D', '--names', '-d', 'focused'],
capture_output=True,
check=True)
return p.stdout.decode('utf-8').strip()
def hide_term():
subprocess.run(['bspc', 'desktop', '-f', 'last.local'], check=True)
def show_term():
subprocess.run(['bspc', 'desktop', 'term', '-m', 'focused'])
subprocess.run(['bspc', 'desktop', '-f', 'term'], check=True)
def main():
if not is_term_running():
run_term()
focused_desktop = get_focused_desktop()
if focused_desktop == desktop_name:
hide_term()
else:
show_term()
if __name__ == '__main__':
main()
|