| 
									
										
										
										
											2019-11-06 21:18:26 -05:00
										 |  |  | import ./make-test-python.nix ({ pkgs, ...} : { | 
					
						
							| 
									
										
										
										
											2017-09-04 14:03:20 -04:00
										 |  |  |   name = "xmonad"; | 
					
						
							| 
									
										
										
										
											2021-01-10 20:08:30 +01:00
										 |  |  |   meta = with pkgs.lib.maintainers; { | 
					
						
							| 
									
										
										
										
											2017-09-04 14:03:20 -04:00
										 |  |  |     maintainers = [ nequissimus ]; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-12-10 15:10:30 +01:00
										 |  |  |   machine = { pkgs, ... }: { | 
					
						
							| 
									
										
										
										
											2017-09-04 14:03:20 -04:00
										 |  |  |     imports = [ ./common/x11.nix ./common/user-account.nix ]; | 
					
						
							| 
									
										
										
										
											2020-01-26 17:41:19 -05:00
										 |  |  |     test-support.displayManager.auto.user = "alice"; | 
					
						
							| 
									
										
										
										
											2019-12-10 15:10:30 +01:00
										 |  |  |     services.xserver.displayManager.defaultSession = "none+xmonad"; | 
					
						
							| 
									
										
										
										
											2017-09-04 14:03:20 -04:00
										 |  |  |     services.xserver.windowManager.xmonad = { | 
					
						
							|  |  |  |       enable = true; | 
					
						
							|  |  |  |       enableContribAndExtras = true; | 
					
						
							|  |  |  |       extraPackages = with pkgs.haskellPackages; haskellPackages: [ xmobar ]; | 
					
						
							| 
									
										
										
										
											2018-11-28 23:08:20 +01:00
										 |  |  |       config = ''
 | 
					
						
							|  |  |  |         import XMonad | 
					
						
							| 
									
										
										
										
											2020-10-10 22:33:45 +02:00
										 |  |  |         import XMonad.Operations (restart) | 
					
						
							| 
									
										
										
										
											2018-11-28 23:08:20 +01:00
										 |  |  |         import XMonad.Util.EZConfig | 
					
						
							| 
									
										
										
										
											2020-10-10 22:33:45 +02:00
										 |  |  |         import XMonad.Util.SessionStart | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         main = launch $ def { startupHook = startup } `additionalKeysP` myKeys | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         startup = isSessionStart >>= \sessInit -> | 
					
						
							|  |  |  |           if sessInit then setSessionStarted else spawn "xterm" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         myKeys = [ ("M-C-x", spawn "xterm"), ("M-q", restart "xmonad" True) ] | 
					
						
							| 
									
										
										
										
											2018-11-28 23:08:20 +01:00
										 |  |  |       '';
 | 
					
						
							| 
									
										
										
										
											2017-09-04 14:03:20 -04:00
										 |  |  |     }; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-06 21:18:26 -05:00
										 |  |  |   testScript = { nodes, ... }: let | 
					
						
							|  |  |  |     user = nodes.machine.config.users.users.alice; | 
					
						
							|  |  |  |   in ''
 | 
					
						
							|  |  |  |     machine.wait_for_x() | 
					
						
							|  |  |  |     machine.wait_for_file("${user.home}/.Xauthority") | 
					
						
							|  |  |  |     machine.succeed("xauth merge ${user.home}/.Xauthority") | 
					
						
							| 
									
										
										
										
											2019-12-13 17:16:59 +01:00
										 |  |  |     machine.send_key("alt-ctrl-x") | 
					
						
							| 
									
										
										
										
											2019-11-06 21:18:26 -05:00
										 |  |  |     machine.wait_for_window("${user.name}.*machine") | 
					
						
							|  |  |  |     machine.sleep(1) | 
					
						
							| 
									
										
										
										
											2020-10-10 22:33:45 +02:00
										 |  |  |     machine.screenshot("terminal1") | 
					
						
							|  |  |  |     machine.send_key("alt-q") | 
					
						
							| 
									
										
										
										
											2019-11-06 21:18:26 -05:00
										 |  |  |     machine.sleep(3) | 
					
						
							|  |  |  |     machine.wait_for_window("${user.name}.*machine") | 
					
						
							|  |  |  |     machine.sleep(1) | 
					
						
							| 
									
										
										
										
											2020-10-10 22:33:45 +02:00
										 |  |  |     machine.screenshot("terminal2") | 
					
						
							| 
									
										
										
										
											2017-09-04 14:03:20 -04:00
										 |  |  |   '';
 | 
					
						
							|  |  |  | }) |