- done = 0
- while done < len(outputs):
- done = 0
- for output in outputs:
- print 'output', output['name']
- if output['done']:
- print ' already done'
- done += 1
- else:
- if not output['use'] and not output['enabled']:
- print ' not enabled, not used'
- output['done'] = True
- done += 1
- elif output['use'] and not output['enabled']:
- if enabled_count < 2:
- print ' use previously unused'
- enabled_count += 1
- xrandr_on(output)
- output['done'] = True
- done += 1
- break
- else:
- print ' (skip) use previously unused'
- elif not output['use'] and output['enabled']:
- if enabled_count > 1:
- print ' unused, previously used'
- enabled_count -= 1
- xrandr_off(output)
- output['done'] = True
- done += 1
- break
- else:
- print ' (skip) unused, previously used'
- else:
- print ' used before, used again'
- xrandr_on(output)
- output['done'] = True
- done += 1
+ # Mark outputs that receive no change as done
+ for output in outputs:
+ if not output['use'] and not output['enabled']:
+ # Nothing to do for this output, mark as done
+ output['done'] = True
+
+ while not all_done(outputs):
+ if enabled_count > 1:
+ enabled_count -= disable_an_entry(outputs)
+ if enabled_count < 2:
+ enabled_count += enable_an_entry(outputs)