49 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
#!/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 = fp.read().split(',')#.replace('\n','').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()      
 |