Force update using USR1 signal

This commit is contained in:
Joshua Barrass 2020-08-11 00:45:13 +01:00
parent f8d035c079
commit c77f3aa3bc
No known key found for this signature in database
GPG key ID: 8FDD085351BD1FF0
2 changed files with 10 additions and 1 deletions

View file

@ -4,6 +4,7 @@ import os
import sys
import json
import time
import signal
import socket
import select
import logging
@ -103,6 +104,12 @@ def main():
input_thread.daemon = True
input_thread.start()
def sig_USR1_handler(signum,stack):
if update_lock.acquire(blocking=False) == True:
core.event.trigger("update", redraw_only=False)
core.event.trigger("draw")
update_lock.release()
if config.debug():
modules.append(core.module.load("debug", config, theme))
@ -120,6 +127,7 @@ def main():
core.event.trigger("start")
started = True
signal.signal(10, sig_USR1_handler)
while True:
if update_lock.acquire(blocking=False) == True:
core.event.trigger("update")

View file

@ -222,13 +222,14 @@ class i3(object):
return blocks
# TODO: only updates full text, not the state!?
# can this TODO be removed now? Will update the state if not redraw_only
def update(self, affected_modules=None, redraw_only=False):
now = time.time()
for module in self.__modules:
if affected_modules and not module.id in affected_modules:
continue
if not affected_modules and module.next_update:
if now < module.next_update:
if now < module.next_update and redraw_only:
continue
if not redraw_only: