lemonbar: Move all lemonbar parsing to units.

Remove i3 workspaces dependency on lemonbar. Implement sorting and
alignment of modules
This commit is contained in:
kuben
2019-08-27 22:25:04 +02:00
parent c12d49f433
commit 0868cf101e
5 changed files with 419 additions and 322 deletions

View File

@@ -106,61 +106,6 @@ def strip_ansi_unicode(s):
strip_unicode = (strip_ansi.encode('ascii', 'ignore')).decode('utf-8')
return strip_unicode
# Callbacks for workspaces
def add_callbacks(i3ws): #TODO this should be done by module
i3ws.change_callbacks.append(set_bg)
i3ws.focus_callbacks.append(set_keymap)
i3ws.focus_callbacks.append(kill_floating_windows)
def img_path(num):
dir = '/home/kuba/Obrazy/Wallpapers/'
return dir + {
1: '1_main',
2: '2_web',
3: '3_music',
4: '4_work',
5: '5_terms',
6: '6_stats',
7: '7',
8: '8',
9: '9',
}.get(int(num), 'default')
def set_bg(i3ws):
cmd_args = ['sh', '/home/kuba/scripts/set_bg.sh']
for output in i3ws.outputs:
if output.active:
bg = img_path(output.current_workspace.partition(' ')[0])
cmd_args.append(bg)
subprocess.call(cmd_args)
def kill_floating_windows(i3ws):
global kill_on_unfocus, logger
role = i3ws.focused_window.window_role
wclass = i3ws.focused_window.window_class
if role != 'FLOAT_TERM' and wclass != 'FLOAT_PAVU' and wclass != 'YADWINBR':
# Is there a window that the bar has opened?
for pid in kill_on_unfocus:
try:
os.kill(pid, signal.SIGTERM)
except ProcessLookupError:
logger.debug('Tried killing process {} but it doesn\'t exist'.format(pid))
kill_on_unfocus = []
def set_keymap(i3ws):
global cur_class, keymaps, logger
wclass = i3ws.focused_window.window_class
cur_class = wclass
if wclass in keymaps:
new_km = keymaps[wclass]
logger.debug('Setting {} as keymap for {}'.format(new_km, wclass))
else:
new_km = def_keymap
logger.debug('Setting default keymap {} for {}'.format(def_keymap, wclass))
subprocess.call(['/home/kuba/.i3/scripts/lang.sh', 'qset', new_km])
def create_new_fifo(fifo_file):
"""
Create new fifo file, removing old one if it exists