mirror of
				https://codeberg.org/dwl/dwl.git
				synced 2025-11-03 09:01:45 -05:00 
			
		
		
		
	Toggle fullscreen on all clients
mod+e allows to toggle fullscreen any client, even those who don't support it themselves
This commit is contained in:
		
							parent
							
								
									d41cc60ec1
								
							
						
					
					
						commit
						f125e1b9a4
					
				
					 2 changed files with 19 additions and 3 deletions
				
			
		| 
						 | 
					@ -75,6 +75,7 @@ static const Key keys[] = {
 | 
				
			||||||
	{ MODKEY,                    XKB_KEY_m,          setlayout,      {.v = &layouts[2]} },
 | 
						{ MODKEY,                    XKB_KEY_m,          setlayout,      {.v = &layouts[2]} },
 | 
				
			||||||
	{ MODKEY,                    XKB_KEY_space,      setlayout,      {0} },
 | 
						{ MODKEY,                    XKB_KEY_space,      setlayout,      {0} },
 | 
				
			||||||
	{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_space,      togglefloating, {0} },
 | 
						{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_space,      togglefloating, {0} },
 | 
				
			||||||
 | 
						{ MODKEY, 					 XKB_KEY_e,    		togglefullscreen, {0} },
 | 
				
			||||||
	{ MODKEY,                    XKB_KEY_0,          view,           {.ui = ~0} },
 | 
						{ MODKEY,                    XKB_KEY_0,          view,           {.ui = ~0} },
 | 
				
			||||||
	{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_parenright, tag,            {.ui = ~0} },
 | 
						{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_parenright, tag,            {.ui = ~0} },
 | 
				
			||||||
	{ MODKEY,                    XKB_KEY_comma,      focusmon,       {.i = -1} },
 | 
						{ MODKEY,                    XKB_KEY_comma,      focusmon,       {.i = -1} },
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										21
									
								
								dwl.c
									
										
									
									
									
								
							
							
						
						
									
										21
									
								
								dwl.c
									
										
									
									
									
								
							| 
						 | 
					@ -267,6 +267,7 @@ static void setcursor(struct wl_listener *listener, void *data);
 | 
				
			||||||
static void setpsel(struct wl_listener *listener, void *data);
 | 
					static void setpsel(struct wl_listener *listener, void *data);
 | 
				
			||||||
static void setsel(struct wl_listener *listener, void *data);
 | 
					static void setsel(struct wl_listener *listener, void *data);
 | 
				
			||||||
static void setfloating(Client *c, int floating);
 | 
					static void setfloating(Client *c, int floating);
 | 
				
			||||||
 | 
					static void setfullscreen(Client *c, int fullscreen);
 | 
				
			||||||
static void setlayout(const Arg *arg);
 | 
					static void setlayout(const Arg *arg);
 | 
				
			||||||
static void setmfact(const Arg *arg);
 | 
					static void setmfact(const Arg *arg);
 | 
				
			||||||
static void setmon(Client *c, Monitor *m, unsigned int newtags);
 | 
					static void setmon(Client *c, Monitor *m, unsigned int newtags);
 | 
				
			||||||
| 
						 | 
					@ -278,6 +279,7 @@ static void tag(const Arg *arg);
 | 
				
			||||||
static void tagmon(const Arg *arg);
 | 
					static void tagmon(const Arg *arg);
 | 
				
			||||||
static void tile(Monitor *m);
 | 
					static void tile(Monitor *m);
 | 
				
			||||||
static void togglefloating(const Arg *arg);
 | 
					static void togglefloating(const Arg *arg);
 | 
				
			||||||
 | 
					static void togglefullscreen(const Arg *arg);
 | 
				
			||||||
static void toggletag(const Arg *arg);
 | 
					static void toggletag(const Arg *arg);
 | 
				
			||||||
static void toggleview(const Arg *arg);
 | 
					static void toggleview(const Arg *arg);
 | 
				
			||||||
static void unmaplayersurface(LayerSurface *layersurface);
 | 
					static void unmaplayersurface(LayerSurface *layersurface);
 | 
				
			||||||
| 
						 | 
					@ -1069,10 +1071,16 @@ destroyxdeco(struct wl_listener *listener, void *data)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
fullscreenotify(struct wl_listener *listener, void *data)
 | 
					togglefullscreen(const Arg *arg)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	Client *c = wl_container_of(listener, c, fullscreen);
 | 
						Client *sel = selclient();
 | 
				
			||||||
	c->isfullscreen = !c->isfullscreen;
 | 
						setfullscreen(sel, !sel->isfullscreen);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					setfullscreen(Client *c, int fullscreen)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						c->isfullscreen = fullscreen;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef XWAYLAND
 | 
					#ifdef XWAYLAND
 | 
				
			||||||
	if (c->type == X11Managed)
 | 
						if (c->type == X11Managed)
 | 
				
			||||||
| 
						 | 
					@ -1093,6 +1101,13 @@ fullscreenotify(struct wl_listener *listener, void *data)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					fullscreenotify(struct wl_listener *listener, void *data)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						Client *c = wl_container_of(listener, c, fullscreen);
 | 
				
			||||||
 | 
						setfullscreen(c, !c->isfullscreen);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Monitor *
 | 
					Monitor *
 | 
				
			||||||
dirtomon(int dir)
 | 
					dirtomon(int dir)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue