mirror of
				https://codeberg.org/dwl/dwl.git
				synced 2025-10-31 20:14:20 +00:00 
			
		
		
		
	Merge branch 'main' into wlroots-next
This commit is contained in:
		
						commit
						432c15fb09
					
				| @ -2,7 +2,7 @@ | |||||||
| 
 | 
 | ||||||
| Join us on our [Discord server](https://discord.gg/jJxZnrGPWN)! | Join us on our [Discord server](https://discord.gg/jJxZnrGPWN)! | ||||||
| 
 | 
 | ||||||
| dwl is a compact, hackable compositor for Wayland based on [wlroots](https://github.com/swaywm/wlroots). It is intended to fill the same space in the Wayland world that dwm does in X11, primarily in terms of philosophy, and secondarily in terms of functionality. Like dwm, dwl is: | dwl is a compact, hackable compositor for Wayland based on [wlroots](https://gitlab.freedesktop.org/wlroots/wlroots/). It is intended to fill the same space in the Wayland world that dwm does in X11, primarily in terms of philosophy, and secondarily in terms of functionality. Like dwm, dwl is: | ||||||
| 
 | 
 | ||||||
| - Easy to understand, hack on, and extend with patches | - Easy to understand, hack on, and extend with patches | ||||||
| - One C source file (or a very small number) configurable via `config.h` | - One C source file (or a very small number) configurable via `config.h` | ||||||
|  | |||||||
							
								
								
									
										3
									
								
								client.h
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								client.h
									
									
									
									
									
								
							| @ -156,8 +156,7 @@ client_set_tiled(Client *c, uint32_t edges) | |||||||
| 	if (client_is_x11(c)) | 	if (client_is_x11(c)) | ||||||
| 		return; | 		return; | ||||||
| #endif | #endif | ||||||
| 	wlr_xdg_toplevel_set_tiled(c->surface.xdg->toplevel, WLR_EDGE_TOP | | 	wlr_xdg_toplevel_set_tiled(c->surface.xdg->toplevel, edges); | ||||||
| 			WLR_EDGE_BOTTOM | WLR_EDGE_LEFT | WLR_EDGE_RIGHT); |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static inline struct wlr_surface * | static inline struct wlr_surface * | ||||||
|  | |||||||
| @ -96,7 +96,7 @@ static const Key keys[] = { | |||||||
| 	TAGKEYS(          XKB_KEY_3, XKB_KEY_numbersign,                 2), | 	TAGKEYS(          XKB_KEY_3, XKB_KEY_numbersign,                 2), | ||||||
| 	TAGKEYS(          XKB_KEY_4, XKB_KEY_dollar,                     3), | 	TAGKEYS(          XKB_KEY_4, XKB_KEY_dollar,                     3), | ||||||
| 	TAGKEYS(          XKB_KEY_5, XKB_KEY_percent,                    4), | 	TAGKEYS(          XKB_KEY_5, XKB_KEY_percent,                    4), | ||||||
| 	TAGKEYS(          XKB_KEY_6, XKB_KEY_caret,                      5), | 	TAGKEYS(          XKB_KEY_6, XKB_KEY_asciicircum,                5), | ||||||
| 	TAGKEYS(          XKB_KEY_7, XKB_KEY_ampersand,                  6), | 	TAGKEYS(          XKB_KEY_7, XKB_KEY_ampersand,                  6), | ||||||
| 	TAGKEYS(          XKB_KEY_8, XKB_KEY_asterisk,                   7), | 	TAGKEYS(          XKB_KEY_8, XKB_KEY_asterisk,                   7), | ||||||
| 	TAGKEYS(          XKB_KEY_9, XKB_KEY_parenleft,                  8), | 	TAGKEYS(          XKB_KEY_9, XKB_KEY_parenleft,                  8), | ||||||
|  | |||||||
							
								
								
									
										13
									
								
								dwl.c
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								dwl.c
									
									
									
									
									
								
							| @ -120,11 +120,6 @@ typedef struct { | |||||||
| 	int isfullscreen; | 	int isfullscreen; | ||||||
| } Client; | } Client; | ||||||
| 
 | 
 | ||||||
| typedef struct { |  | ||||||
| 	struct wl_listener request_mode; |  | ||||||
| 	struct wl_listener destroy; |  | ||||||
| } Decoration; |  | ||||||
| 
 |  | ||||||
| typedef struct { | typedef struct { | ||||||
| 	uint32_t mod; | 	uint32_t mod; | ||||||
| 	xkb_keysym_t keysym; | 	xkb_keysym_t keysym; | ||||||
| @ -1321,6 +1316,7 @@ mapnotify(struct wl_listener *listener, void *data) | |||||||
| 
 | 
 | ||||||
| 	/* Set initial monitor, tags, floating status, and focus */ | 	/* Set initial monitor, tags, floating status, and focus */ | ||||||
| 	applyrules(c); | 	applyrules(c); | ||||||
|  | 	printstatus(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void | void | ||||||
| @ -1828,11 +1824,13 @@ run(char *startup_cmd) | |||||||
| 			EBARF("startup: fork"); | 			EBARF("startup: fork"); | ||||||
| 		if (startup_pid == 0) { | 		if (startup_pid == 0) { | ||||||
| 			dup2(piperw[0], STDIN_FILENO); | 			dup2(piperw[0], STDIN_FILENO); | ||||||
|  | 			close(piperw[0]); | ||||||
| 			close(piperw[1]); | 			close(piperw[1]); | ||||||
| 			execl("/bin/sh", "/bin/sh", "-c", startup_cmd, NULL); | 			execl("/bin/sh", "/bin/sh", "-c", startup_cmd, NULL); | ||||||
| 			EBARF("startup: execl"); | 			EBARF("startup: execl"); | ||||||
| 		} | 		} | ||||||
| 		dup2(piperw[1], STDOUT_FILENO); | 		dup2(piperw[1], STDOUT_FILENO); | ||||||
|  | 		close(piperw[1]); | ||||||
| 		close(piperw[0]); | 		close(piperw[0]); | ||||||
| 	} | 	} | ||||||
| 	/* If nobody is reading the status output, don't terminate */ | 	/* If nobody is reading the status output, don't terminate */ | ||||||
| @ -2285,6 +2283,10 @@ unmapnotify(struct wl_listener *listener, void *data) | |||||||
| { | { | ||||||
| 	/* Called when the surface is unmapped, and should no longer be shown. */ | 	/* Called when the surface is unmapped, and should no longer be shown. */ | ||||||
| 	Client *c = wl_container_of(listener, c, unmap); | 	Client *c = wl_container_of(listener, c, unmap); | ||||||
|  | 	if (c == grabc) { | ||||||
|  | 		cursor_mode = CurNormal; | ||||||
|  | 		grabc = NULL; | ||||||
|  | 	} | ||||||
| 	wl_list_remove(&c->link); | 	wl_list_remove(&c->link); | ||||||
| 	if (client_is_unmanaged(c)) | 	if (client_is_unmanaged(c)) | ||||||
| 		return; | 		return; | ||||||
| @ -2292,6 +2294,7 @@ unmapnotify(struct wl_listener *listener, void *data) | |||||||
| 	setmon(c, NULL, 0); | 	setmon(c, NULL, 0); | ||||||
| 	wl_list_remove(&c->flink); | 	wl_list_remove(&c->flink); | ||||||
| 	wl_list_remove(&c->slink); | 	wl_list_remove(&c->slink); | ||||||
|  | 	printstatus(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void | void | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Leonardo Hernández Hernández
						Leonardo Hernández Hernández