Files
dotfiles/.i3/lemonbar/i3_lemonbar_common.py
2019-07-09 22:06:48 +02:00

96 lines
2.6 KiB
Python
Executable File

import subprocess
from enum import Enum
import i3_lemonbar_config as config
p_bluetooth = None
kill_on_unfocus = []
class bar_mode(Enum):
power, normal, control = range(-1,2) # Don't cycle through power
def cycle(self):
try:
return bar_mode(self.value + 1)
except ValueError:
return bar_mode(0)
mode = bar_mode.normal
floatterm_args = lambda prog : ['terminator', '-r', 'FLOAT_TERM', '-p'
, 'dark', '-e', 'echo kill_unfocus $$ > {}; exec {}'.format(
config.fifo_file_executor, prog)]
def date_comm(args):
subprocess.Popen(['yad', '--no-buttons', '--calendar', '--sticky'
, '--on-top' , '--class' , '"YADWIN"', '--posx=1650', '--posy=24'
, '--close-on-unfocus'])
def pavu_comm(args):
global kill_on_unfocus
p = subprocess.Popen(['pavucontrol', '--class=FLOAT_PAVU'])
kill_on_unfocus.append(p.pid)
def htop_comm(args):
subprocess.Popen(floatterm_args('htop'))
def nmtui_comm(args):
subprocess.Popen(floatterm_args('nmtui'))
def lang_comm(args):
subprocess.Popen(['sh', '/home/kuba/.i3/scripts/lang.sh', 'next'])
def dpms_comm(args):
subprocess.Popen(['sh', '/home/kuba/.i3/scripts/dpmsctl.sh'])
def adj_br(args):
subprocess.Popen(['/home/kuba/.i3/scripts/adjbr.sh', '-b', config.fifo_file_executor])
def i3msg_comm(args):
subprocess.Popen(args.split())
def add_tokill(args):
global kill_on_unfocus
kill_on_unfocus.append(int(args.split()[1]))
def set_mode(args):
global mode
new_mode = args.split()[1]
if new_mode == "cycle":
mode = mode.cycle()
for m in bar_mode:
if new_mode == m.name:
mode = m
break
def bluetooth(args):
btcargs = args.split()[1:]
btcargs = [a.replace('pxc550', '00:16:94:22:29:0E') for a in btcargs]
btcargs.append('\n')
inp = ' '.join(btcargs)
p_bluetooth.stdin.write(inp)
p_bluetooth.stdin.flush()
show_secs = False
def toggle_secs(args):
global show_secs
show_secs = not show_secs
# Keymaps
def_keymap = 'pl'
keymaps = {'Firefox': 'se'}
cur_class = ''
def set_lang(args):
global keymaps
lang = args.split()[1]
keymaps[cur_class] = lang
commands_dict = {'toggle_secs': toggle_secs
,'date': date_comm
,'pavu': pavu_comm
,'load': htop_comm
,'wlan': nmtui_comm
,'dpms': dpms_comm
,'i3-msg': i3msg_comm
,'switch_lang': lang_comm
,'kill_unfocus': add_tokill
,'mode': set_mode
,'adj_br': adj_br
,'setlang': set_lang
,'bluetooth': bluetooth
}