mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 21:12:43 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			32 lines
		
	
	
	
		
			900 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
	
		
			900 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| #include <WindowServer/WSScreen.h>
 | |
| #include <WindowServer/WSWindowManager.h>
 | |
| #include <WindowServer/WSEventLoop.h>
 | |
| #include <WindowServer/WSCompositor.h>
 | |
| #include <LibCore/CConfigFile.h>
 | |
| #include <signal.h>
 | |
| #include <stdio.h>
 | |
| 
 | |
| int main(int, char**)
 | |
| {
 | |
|     struct sigaction act;
 | |
|     memset(&act, 0, sizeof(act));
 | |
|     act.sa_flags = SA_NOCLDWAIT;
 | |
|     act.sa_handler = SIG_IGN;
 | |
|     int rc = sigaction(SIGCHLD, &act, nullptr);
 | |
|     if (rc < 0) {
 | |
|         perror("sigaction");
 | |
|         return 1;
 | |
|     }
 | |
| 
 | |
|     WSEventLoop loop;
 | |
| 
 | |
|     auto wm_config = CConfigFile::get_for_app("WindowManager");
 | |
|     WSScreen screen(wm_config->read_num_entry("Screen", "Width", 1024),
 | |
|                     wm_config->read_num_entry("Screen", "Height", 768));
 | |
|     WSCompositor::the();
 | |
|     WSWindowManager window_manager;
 | |
| 
 | |
|     dbgprintf("Entering WindowServer main loop.\n");
 | |
|     WSEventLoop::the().exec();
 | |
|     ASSERT_NOT_REACHED();
 | |
| }
 | 
