#!/usr/bin/env python3 import os, argparse def removeScreenFromIgnoreList(ignoreFileName = '/tmp/fenrirSuspend', screen = '1', useCurrentScreen = True): if useCurrentScreen: tty = open('/sys/devices/virtual/tty/tty0/active','r') screen = str(tty.read()[3:-1]) if not screen: print('No screen given.') ignoreScreens = [] ignoreScreensStr = '' if ignoreFileName != '': if os.access(ignoreFileName, os.R_OK): with open(ignoreFileName, 'r') as fp: try: ignoreScreens = [] content = str(fp.read()) if content != '': ignoreScreens = content.split(',') except Exception as e: print(e) removed = False if screen in ignoreScreens: ignoreScreens.remove(screen) removed = True ignoreScreensStr = ','.join(ignoreScreens) with open(ignoreFileName, 'w') as fp: fp.write(ignoreScreensStr) if removed: print('Remove screen {0} to ignore file:{1}'.format(screen, ignoreFileName)) else: print('Screen {0} does not exists in ignore file:{1}'.format(screen, ignoreFileName)) if __name__ == "__main__": parser = argparse.ArgumentParser(description='Unignore screens in fenrir to make it active again. If no screen is given use current screen.') parser.add_argument('-s', '--screen', metavar='SCREEN', default=None, help='Ignore a given screen. Use current screen as default.') parser.add_argument('-f', '--file', metavar='File', default='/tmp/fenrirSuspend', help='Specify the suspendingScreenFile') try: args = parser.parse_args() ignoreFileName = args.file useCurrentScreen = False screen = None if args.screen: screen = args.screen else: useCurrentScreen = True removeScreenFromIgnoreList(ignoreFileName, screen, useCurrentScreen) except Exception as e: parser.print_help()