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

@@ -10,11 +10,9 @@ import i3_lemonbar_config as config
import i3_lemonbar_common as common
import i3_lemonbar_modules as modules
import i3_lemonbar_parser as lemonparser
import i3_workspaces as wspaces
p_conky_slow = None
p_lemonbar = None
i3_ws_obj = None
def assert_only_instance():
"""
@@ -90,19 +88,16 @@ def clean_up():
nice_delete(config.fifo_file_status)
nice_term(p_conky_slow)
modules.stop_all()
if i3_ws_obj is not None:
i3_ws_obj.quit()
sys.exit(0)
def write_sys_status():
global i3_ws_obj
i3_ws_obj = wspaces.i3ws(logger=common.logger, fifo_file=config.fifo_file_status)
i3_ws_obj.work()
def queue_parse_job(job):
common.parsing_queue.put(job)
def keep_fifo_open():
with open(config.fifo_file_status, 'w', buffering=1) as fifo_write:
while True:
fifo_write.write('HEARTBEAT\n')
time.sleep(30)
def put_fifo_in_queue():
with open(config.fifo_file_status, 'r', buffering=1) as fifo_read:
# Let parser read from fifo
@@ -263,8 +258,8 @@ if __name__ == "__main__":
# Create readers before writers
i3_thread(target = exec_commands, desc='Exec commands thread')
i3_thread(target = parse_status, desc='Parse status thread')
i3_thread(target = keep_fifo_open, desc='')
i3_thread(target = put_fifo_in_queue, desc='')
i3_thread(target = write_sys_status, desc='Write sys status thread')
i3_thread(target = user_screen, desc='Screen thread for user commands')
modules.start_all()