lemonbar: Attempt to restart i3ws connection 5 times with increasing delay

This commit is contained in:
2020-02-01 22:01:13 +01:00
parent 4d8e0d1f97
commit b09891fd04
2 changed files with 18 additions and 4 deletions

View File

@@ -68,10 +68,21 @@ class i3ws(object):
self.logger.debug('Started i3 workspaces manager')
self.enterMain()
self.logger.debug('Finished i3 workspaces manager')
time.sleep(0.5) # TODO max number of attempts + catch exception instead
def resetConn(self):
self.conn = i3ipc.Connection()
def attempt_connection(attempt):
try:
self.conn = i3ipc.Connection()
except FileNotFoundError:
# Thrown when i3 is not up. Should try again in the case of a restart
self.logger.debug('Attempt {}: Failed connecting to i3 socket'.format(attempt))
if attempt > 5:
raise ConnectionError('Could not connect to i3 socked, quitting')
time.sleep(0.1 if attempt < 3 else 0.5)
attempt_connection(attempt + 1)
attempt_connection(attempt=1)
self.outputs = self.conn.get_outputs()
self.conn.on('workspace::focus' , self.change)