|  |  | @ -38,6 +38,7 @@ static void daemonize() { | 
			
		
	
		
		
			
				
					
					|  |  |  | 		exit(1); |  |  |  | 		exit(1); | 
			
		
	
		
		
			
				
					
					|  |  |  | 	} |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  | 	if (fork() == 0) { |  |  |  | 	if (fork() == 0) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 		setsid(); | 
			
		
	
		
		
			
				
					
					|  |  |  | 		close(fds[0]); |  |  |  | 		close(fds[0]); | 
			
		
	
		
		
			
				
					
					|  |  |  | 		int devnull = open("/dev/null", O_RDWR); |  |  |  | 		int devnull = open("/dev/null", O_RDWR); | 
			
		
	
		
		
			
				
					
					|  |  |  | 		dup2(STDOUT_FILENO, devnull); |  |  |  | 		dup2(STDOUT_FILENO, devnull); | 
			
		
	
	
		
		
			
				
					|  |  | @ -406,7 +407,7 @@ int main(int argc, char **argv) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 		"  -v, --version                  Show the version number and quit.\n" |  |  |  | 		"  -v, --version                  Show the version number and quit.\n" | 
			
		
	
		
		
			
				
					
					|  |  |  | 		"  -i, --image [<output>:]<path>  Display the given image.\n" |  |  |  | 		"  -i, --image [<output>:]<path>  Display the given image.\n" | 
			
		
	
		
		
			
				
					
					|  |  |  | 		"  -u, --no-unlock-indicator      Disable the unlock indicator.\n" |  |  |  | 		"  -u, --no-unlock-indicator      Disable the unlock indicator.\n" | 
			
		
	
		
		
			
				
					
					|  |  |  | 		"  -f, --daemonize                Detach from the controlling terminal.\n"; |  |  |  | 		"  -f, --daemonize                Detach from the controlling terminal after locking.\n"; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	state.args = (struct swaylock_args){ |  |  |  | 	state.args = (struct swaylock_args){ | 
			
		
	
		
		
			
				
					
					|  |  |  | 		.mode = BACKGROUND_MODE_SOLID_COLOR, |  |  |  | 		.mode = BACKGROUND_MODE_SOLID_COLOR, | 
			
		
	
	
		
		
			
				
					|  |  | @ -454,7 +455,7 @@ int main(int argc, char **argv) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 			state.args.show_indicator = false; |  |  |  | 			state.args.show_indicator = false; | 
			
		
	
		
		
			
				
					
					|  |  |  | 			break; |  |  |  | 			break; | 
			
		
	
		
		
			
				
					
					|  |  |  | 		case 'f': |  |  |  | 		case 'f': | 
			
		
	
		
		
			
				
					
					|  |  |  | 			daemonize(); |  |  |  | 			state.args.daemonize = true; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 			break; |  |  |  | 			break; | 
			
		
	
		
		
			
				
					
					|  |  |  | 		default: |  |  |  | 		default: | 
			
		
	
		
		
			
				
					
					|  |  |  | 			fprintf(stderr, "%s", usage); |  |  |  | 			fprintf(stderr, "%s", usage); | 
			
		
	
	
		
		
			
				
					|  |  | @ -510,6 +511,11 @@ int main(int argc, char **argv) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 		create_layer_surface(surface); |  |  |  | 		create_layer_surface(surface); | 
			
		
	
		
		
			
				
					
					|  |  |  | 	} |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 	if (state.args.daemonize) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 		wl_display_roundtrip(state.display); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 		daemonize(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	state.run_display = true; |  |  |  | 	state.run_display = true; | 
			
		
	
		
		
			
				
					
					|  |  |  | 	while (wl_display_dispatch(state.display) != -1 && state.run_display) { |  |  |  | 	while (wl_display_dispatch(state.display) != -1 && state.run_display) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 		// This space intentionally left blank
 |  |  |  | 		// This space intentionally left blank
 | 
			
		
	
	
		
		
			
				
					|  |  | 
 |