52 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			2.1 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 = []
 | |
|                     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()      
 |