lemonbar: Attempt to restart i3ws connection 5 times with increasing delay
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user