mirror of
				https://github.com/tiyn/dwm.git
				synced 2025-11-04 13:11:15 +01:00 
			
		
		
		
	Compare commits
	
		
			18 Commits
		
	
	
		
			81d1901820
			...
			master
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					f58d147e39 | ||
| 
						 | 
					35271b171c | ||
| 2d72ffe932 | |||
| 7458dff00f | |||
| 76e7f12b7d | |||
| 2b6678b993 | |||
| 3b66ee89b0 | |||
| 00aaef36c5 | |||
| 06edec0e26 | |||
| d7971a2924 | |||
| 22b482d2c9 | |||
| 5fb1ba1806 | |||
| 09cd0a6931 | |||
| 58c2988f12 | |||
| 6255476d24 | |||
| dd78bfd8a9 | |||
| a46043c632 | |||
| cdacc63d2c | 
@@ -23,6 +23,7 @@ The list below shows the currently applied patches to the master branch.
 | 
				
			|||||||
- dwm-noborder-6.2.diff (removes border if there is only one window)
 | 
					- dwm-noborder-6.2.diff (removes border if there is only one window)
 | 
				
			||||||
- dwm-notitle-6.2.diff (removes window title in the middle of the bar)
 | 
					- dwm-notitle-6.2.diff (removes window title in the middle of the bar)
 | 
				
			||||||
- dwm-pertag-20170513-ceac8c9.diff (allows having a layout/mwfact/barpos/nmaster per tag)
 | 
					- dwm-pertag-20170513-ceac8c9.diff (allows having a layout/mwfact/barpos/nmaster per tag)
 | 
				
			||||||
 | 
					- dwm-quitprompt-20220718-6613d9f.diff (adds a confirmation prompt before exiting dwm)
 | 
				
			||||||
- dwm-status2d-6.2.diff (adds colors and ability to draw rectangles)
 | 
					- dwm-status2d-6.2.diff (adds colors and ability to draw rectangles)
 | 
				
			||||||
- dwm-statusallmons-6.2.diff (display statusbar on every monitors)
 | 
					- dwm-statusallmons-6.2.diff (display statusbar on every monitors)
 | 
				
			||||||
- dwm-statuscmd-6.2.diff (enables dwmblocks compatibility)
 | 
					- dwm-statuscmd-6.2.diff (enables dwmblocks compatibility)
 | 
				
			||||||
@@ -43,7 +44,7 @@ build are the following.
 | 
				
			|||||||
| Super | | 1/2/.../9/0 | Show tag 1/2/.../9/0 |
 | 
					| Super | | 1/2/.../9/0 | Show tag 1/2/.../9/0 |
 | 
				
			||||||
| Super | | . | Show monitor lower in stack |
 | 
					| Super | | . | Show monitor lower in stack |
 | 
				
			||||||
| Super | | , | Show monitor higher in stack |
 | 
					| Super | | , | Show monitor higher in stack |
 | 
				
			||||||
| Super | Shift | Escape | Quit dwm |
 | 
					| Super | Shift | Escape | Quit dwm with call for confirmation |
 | 
				
			||||||
| Super | Shift | b | Toggle dwmbar |
 | 
					| Super | Shift | b | Toggle dwmbar |
 | 
				
			||||||
| Super | Shift | c | Enable deck(/card) layout |
 | 
					| Super | Shift | c | Enable deck(/card) layout |
 | 
				
			||||||
| Super | Shift | d | Toggle floating/tiled for selected window |
 | 
					| Super | Shift | d | Toggle floating/tiled for selected window |
 | 
				
			||||||
@@ -65,6 +66,10 @@ build are the following.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
## Installation
 | 
					## Installation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The following programs are required to be installed for full functionality.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- [dmenu](https://github.com/tiyn/dmenu)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The most basic way is to clone the repository and then invoke make.
 | 
					The most basic way is to clone the repository and then invoke make.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- `git clone https://github.com/tiyn/dwm`
 | 
					- `git clone https://github.com/tiyn/dwm`
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										32
									
								
								config.def.h
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								config.def.h
									
									
									
									
									
								
							@@ -13,7 +13,6 @@ static const int showsystray             = 1;     /* 0 means no systray */
 | 
				
			|||||||
static const int showbar                 = 1;        /* 0 means no bar */
 | 
					static const int showbar                 = 1;        /* 0 means no bar */
 | 
				
			||||||
static const int topbar                  = 1;        /* 0 means bottom bar */
 | 
					static const int topbar                  = 1;        /* 0 means bottom bar */
 | 
				
			||||||
static const char *fonts[]               = { "monospace:size=10" };
 | 
					static const char *fonts[]               = { "monospace:size=10" };
 | 
				
			||||||
static const char dmenufont[]            = "monospace:size=10";
 | 
					 | 
				
			||||||
static const char normbgcolor[]          = "#0e0f14";
 | 
					static const char normbgcolor[]          = "#0e0f14";
 | 
				
			||||||
static const char normbordercolor[]      = "#363b47";
 | 
					static const char normbordercolor[]      = "#363b47";
 | 
				
			||||||
static const char normfgcolor[]          = "#dfdfdf";
 | 
					static const char normfgcolor[]          = "#dfdfdf";
 | 
				
			||||||
@@ -36,15 +35,32 @@ static const unsigned int alphas[][3]      = {
 | 
				
			|||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* tagging */
 | 
					/* tagging */
 | 
				
			||||||
static const char *tags[] = { "", "", "", "", "", "", "", "", "", "" };
 | 
					static const char *tags[] = { "", "", "", "", "", "", "", "", "", "" };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const Rule rules[] = {
 | 
					static const Rule rules[] = {
 | 
				
			||||||
	/* xprop(1):
 | 
						/* xprop(1):
 | 
				
			||||||
	 *	WM_CLASS(STRING) = instance, class
 | 
						 *	WM_CLASS(STRING) = instance, class
 | 
				
			||||||
	 *	WM_NAME(STRING) = title
 | 
						 *	WM_NAME(STRING) = title
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	/* class    instance      title tags mask iscentered    isfloating   monitor */
 | 
						/* class              instance title                        tags center float mon */
 | 
				
			||||||
	{ NULL,	    "origin.exe", NULL, 0,        0,	        1,           -1 },
 | 
						{ "firefox",          0,  0,                                1 << 1, 0,  0,  -1 },
 | 
				
			||||||
 | 
						{ "zen",              0,  0,                                1 << 1, 0,  0,  -1 },
 | 
				
			||||||
 | 
						{ "Lutris",           0,  0,                                1 << 2, 0,  0,   0 },
 | 
				
			||||||
 | 
						{ "zenity",           0,  0,                                     0, 0,  1,  -1 },
 | 
				
			||||||
 | 
						{ "steam",            0,  0,                                1 << 2, 0,  0,   0 },
 | 
				
			||||||
 | 
						{ "discord",          0,  0,                                1 << 2, 0,  0,   1 },
 | 
				
			||||||
 | 
						{ "TeamSpeak",        0,  0,                                1 << 2, 0,  0,   1 },
 | 
				
			||||||
 | 
						{ "Element",          0,  0,                                1 << 2, 0,  0,   1 },
 | 
				
			||||||
 | 
						{ "Signal",           0,  0,                                1 << 4, 0,  0,   1 },
 | 
				
			||||||
 | 
						{ "TelegramDesktop",  0,  0,                                1 << 4, 0,  0,   1 },
 | 
				
			||||||
 | 
						{ "threema-web",      0,  0,                                1 << 4, 0,  0,   1 },
 | 
				
			||||||
 | 
						{ "thunderbird",      0,  0,                                1 << 4, 0,  0,   1 },
 | 
				
			||||||
 | 
						{ "Sonixd",           0,  0,                                1 << 8, 0,  0,   1 },
 | 
				
			||||||
 | 
						{ "KeePassXC",        0,  "Unlock Database - KeePassXC",    1 << 1, 0,  0,   0 },
 | 
				
			||||||
 | 
						{ "KeePassXC",        0,  0,                                1 << 9, 0,  0,   0 },
 | 
				
			||||||
 | 
						{ "easyeffects",      0,  0,                                1 << 9, 0,  0,   1 },
 | 
				
			||||||
 | 
						{ "pavucontrol",      0,  0,                                1 << 9, 0,  0,   1 },
 | 
				
			||||||
 | 
						{ "Onboard",          0,  0,                                     0, 0,  1,   0 },
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* layout(s) */
 | 
					/* layout(s) */
 | 
				
			||||||
@@ -74,13 +90,9 @@ static const Layout layouts[] = {
 | 
				
			|||||||
/* helper for spawning shell commands in the pre dwm-5.0 fashion */
 | 
					/* helper for spawning shell commands in the pre dwm-5.0 fashion */
 | 
				
			||||||
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
 | 
					#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* commands */
 | 
					 | 
				
			||||||
static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */
 | 
					 | 
				
			||||||
static const char *dmenucmd[] = { "dmenu_run", "-c", "-l", "20", NULL };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static Key keys[] = {
 | 
					static Key keys[] = {
 | 
				
			||||||
  /* modifier           key         function        argument */
 | 
					  /* modifier           key         function        argument */
 | 
				
			||||||
  { MODKEY|ShiftMask,   XK_Escape,  quit,           {0} },
 | 
					  { MODKEY|ShiftMask,   XK_Escape,  quitprompt,           {0} },
 | 
				
			||||||
  { MODKEY|ShiftMask,   XK_b,       togglebar,      {0} },
 | 
					  { MODKEY|ShiftMask,   XK_b,       togglebar,      {0} },
 | 
				
			||||||
  { MODKEY|ShiftMask,   XK_c,       setlayout,      {.v = &layouts[2]} },
 | 
					  { MODKEY|ShiftMask,   XK_c,       setlayout,      {.v = &layouts[2]} },
 | 
				
			||||||
  { MODKEY|ShiftMask,   XK_d,       togglefloating, {0} },
 | 
					  { MODKEY|ShiftMask,   XK_d,       togglefloating, {0} },
 | 
				
			||||||
@@ -124,7 +136,7 @@ static Key keys[] = {
 | 
				
			|||||||
static Button buttons[] = {
 | 
					static Button buttons[] = {
 | 
				
			||||||
  /* click          event mask  button    function        argument */
 | 
					  /* click          event mask  button    function        argument */
 | 
				
			||||||
  { ClkLtSymbol,    0,          Button1,  cyclelayout,    {.i = +1} },
 | 
					  { ClkLtSymbol,    0,          Button1,  cyclelayout,    {.i = +1} },
 | 
				
			||||||
  { ClkLtSymbol,    0,          Button2,  setlayout,      {.v = &layouts[0]} },
 | 
					  { ClkLtSymbol,    0,          Button2,  focusstack,     {.i = +1} },
 | 
				
			||||||
  { ClkLtSymbol,    0,          Button3,  cyclelayout,    {.i = -1} },
 | 
					  { ClkLtSymbol,    0,          Button3,  cyclelayout,    {.i = -1} },
 | 
				
			||||||
  { ClkStatusText,  0,          Button1,  sigdwmblocks,   {.i = 1} },
 | 
					  { ClkStatusText,  0,          Button1,  sigdwmblocks,   {.i = 1} },
 | 
				
			||||||
  { ClkStatusText,  0,          Button2,  sigdwmblocks,   {.i = 2} },
 | 
					  { ClkStatusText,  0,          Button2,  sigdwmblocks,   {.i = 2} },
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										92
									
								
								dwm-quitprompt-20220718-6613d9f.diff
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								dwm-quitprompt-20220718-6613d9f.diff
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,92 @@
 | 
				
			|||||||
 | 
					From eb558048819ed916b272765e64e1ea795a85740e Mon Sep 17 00:00:00 2001
 | 
				
			||||||
 | 
					From: Lerrrtaste <lerrrtaste@protonmail.com>
 | 
				
			||||||
 | 
					Date: Mon, 18 Jul 2022 12:22:39 +0200
 | 
				
			||||||
 | 
					Subject: [PATCH] This Patch replaces the default quit behavior with an dmenu
 | 
				
			||||||
 | 
					 prompt. Possible selections are (Quit DWM?) "yes", "no" and "restart". The
 | 
				
			||||||
 | 
					 additional confirmation can save your work from accidentally hitting the quit
 | 
				
			||||||
 | 
					 key by requiring two additional keystrokes (y/yes and RET). Additionally it
 | 
				
			||||||
 | 
					 allows for restarting / reloading dwm without ending the xsession and closing
 | 
				
			||||||
 | 
					 all open x windows. To abort press ESC or n/no and RET.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					 config.def.h |  2 +-
 | 
				
			||||||
 | 
					 dwm.c        | 30 ++++++++++++++++++++++++++++++
 | 
				
			||||||
 | 
					 2 files changed, 31 insertions(+), 1 deletion(-)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					diff --git a/config.def.h b/config.def.h
 | 
				
			||||||
 | 
					index a2ac963..9e3b394 100644
 | 
				
			||||||
 | 
					--- a/config.def.h
 | 
				
			||||||
 | 
					+++ b/config.def.h
 | 
				
			||||||
 | 
					@@ -94,7 +94,7 @@ static Key keys[] = {
 | 
				
			||||||
 | 
					 	TAGKEYS(                        XK_7,                      6)
 | 
				
			||||||
 | 
					 	TAGKEYS(                        XK_8,                      7)
 | 
				
			||||||
 | 
					 	TAGKEYS(                        XK_9,                      8)
 | 
				
			||||||
 | 
					-	{ MODKEY|ShiftMask,             XK_q,      quit,           {0} },
 | 
				
			||||||
 | 
					+	{ MODKEY|ShiftMask,             XK_q,      quitprompt,           {0} },
 | 
				
			||||||
 | 
					 };
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 /* button definitions */
 | 
				
			||||||
 | 
					diff --git a/dwm.c b/dwm.c
 | 
				
			||||||
 | 
					index 7c0f978..3761ba4 100644
 | 
				
			||||||
 | 
					--- a/dwm.c
 | 
				
			||||||
 | 
					+++ b/dwm.c
 | 
				
			||||||
 | 
					@@ -188,6 +188,7 @@ static Client *nexttiled(Client *c);
 | 
				
			||||||
 | 
					 static void pop(Client *c);
 | 
				
			||||||
 | 
					 static void propertynotify(XEvent *e);
 | 
				
			||||||
 | 
					 static void quit(const Arg *arg);
 | 
				
			||||||
 | 
					+static void quitprompt(const Arg *arg);
 | 
				
			||||||
 | 
					 static Monitor *recttomon(int x, int y, int w, int h);
 | 
				
			||||||
 | 
					 static void resize(Client *c, int x, int y, int w, int h, int interact);
 | 
				
			||||||
 | 
					 static void resizeclient(Client *c, int x, int y, int w, int h);
 | 
				
			||||||
 | 
					@@ -262,6 +263,7 @@ static void (*handler[LASTEvent]) (XEvent *) = {
 | 
				
			||||||
 | 
					 };
 | 
				
			||||||
 | 
					 static Atom wmatom[WMLast], netatom[NetLast];
 | 
				
			||||||
 | 
					 static int running = 1;
 | 
				
			||||||
 | 
					+static int restart = 1;
 | 
				
			||||||
 | 
					 static Cur *cursor[CurLast];
 | 
				
			||||||
 | 
					 static Clr **scheme;
 | 
				
			||||||
 | 
					 static Display *dpy;
 | 
				
			||||||
 | 
					@@ -1258,6 +1260,31 @@ quit(const Arg *arg)
 | 
				
			||||||
 | 
					 	running = 0;
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					+void
 | 
				
			||||||
 | 
					+quitprompt(const Arg *arg)
 | 
				
			||||||
 | 
					+{
 | 
				
			||||||
 | 
					+	FILE *pp = popen("echo -e \"no\nrestart\nyes\" | dmenu -i -sb red -p \"Quit DWM?\"", "r");
 | 
				
			||||||
 | 
					+	if(pp != NULL) {
 | 
				
			||||||
 | 
					+		char buf[1024];
 | 
				
			||||||
 | 
					+		if (fgets(buf, sizeof(buf), pp) == NULL) {
 | 
				
			||||||
 | 
					+			fprintf(stderr, "Quitprompt: Error reading pipe!\n");
 | 
				
			||||||
 | 
					+			return;
 | 
				
			||||||
 | 
					+		}
 | 
				
			||||||
 | 
					+		if (strcmp(buf, "yes\n") == 0) {
 | 
				
			||||||
 | 
					+			pclose(pp);
 | 
				
			||||||
 | 
					+			restart = 0;
 | 
				
			||||||
 | 
					+			quit(NULL);
 | 
				
			||||||
 | 
					+		} else if (strcmp(buf, "restart\n") == 0) {
 | 
				
			||||||
 | 
					+			pclose(pp);
 | 
				
			||||||
 | 
					+			restart = 1;
 | 
				
			||||||
 | 
					+			quit(NULL);
 | 
				
			||||||
 | 
					+		} else if (strcmp(buf, "no\n") == 0) {
 | 
				
			||||||
 | 
					+			pclose(pp);
 | 
				
			||||||
 | 
					+			return;
 | 
				
			||||||
 | 
					+		}
 | 
				
			||||||
 | 
					+	}
 | 
				
			||||||
 | 
					+}
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					 Monitor *
 | 
				
			||||||
 | 
					 recttomon(int x, int y, int w, int h)
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					@@ -2155,5 +2182,8 @@ main(int argc, char *argv[])
 | 
				
			||||||
 | 
					 	run();
 | 
				
			||||||
 | 
					 	cleanup();
 | 
				
			||||||
 | 
					 	XCloseDisplay(dpy);
 | 
				
			||||||
 | 
					+	if (restart == 1) {
 | 
				
			||||||
 | 
					+		execlp("dwm", "dwm", NULL);
 | 
				
			||||||
 | 
					+	}
 | 
				
			||||||
 | 
					 	return EXIT_SUCCESS;
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					-- 
 | 
				
			||||||
 | 
					2.36.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										32
									
								
								dwm.c
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								dwm.c
									
									
									
									
									
								
							@@ -222,6 +222,7 @@ static Client *nexttiled(Client *c);
 | 
				
			|||||||
static void pop(Client *);
 | 
					static void pop(Client *);
 | 
				
			||||||
static void propertynotify(XEvent *e);
 | 
					static void propertynotify(XEvent *e);
 | 
				
			||||||
static void quit(const Arg *arg);
 | 
					static void quit(const Arg *arg);
 | 
				
			||||||
 | 
					static void quitprompt(const Arg *arg);
 | 
				
			||||||
static Monitor *recttomon(int x, int y, int w, int h);
 | 
					static Monitor *recttomon(int x, int y, int w, int h);
 | 
				
			||||||
static void removesystrayicon(Client *i);
 | 
					static void removesystrayicon(Client *i);
 | 
				
			||||||
static void resize(Client *c, int x, int y, int w, int h, int interact);
 | 
					static void resize(Client *c, int x, int y, int w, int h, int interact);
 | 
				
			||||||
@@ -314,6 +315,7 @@ static void (*handler[LASTEvent]) (XEvent *) = {
 | 
				
			|||||||
};
 | 
					};
 | 
				
			||||||
static Atom wmatom[WMLast], netatom[NetLast], xatom[XLast];
 | 
					static Atom wmatom[WMLast], netatom[NetLast], xatom[XLast];
 | 
				
			||||||
static int running = 1;
 | 
					static int running = 1;
 | 
				
			||||||
 | 
					static int restart = 1;
 | 
				
			||||||
static Cur *cursor[CurLast];
 | 
					static Cur *cursor[CurLast];
 | 
				
			||||||
static Clr **scheme;
 | 
					static Clr **scheme;
 | 
				
			||||||
static Display *dpy;
 | 
					static Display *dpy;
 | 
				
			||||||
@@ -1623,6 +1625,31 @@ quit(const Arg *arg)
 | 
				
			|||||||
	running = 0;
 | 
						running = 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					quitprompt(const Arg *arg)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						FILE *pp = popen("echo \"no\nrestart\nyes\" | dmenu -i -p \"Quit DWM?\"", "r");
 | 
				
			||||||
 | 
						if(pp != NULL) {
 | 
				
			||||||
 | 
							char buf[1024];
 | 
				
			||||||
 | 
							if (fgets(buf, sizeof(buf), pp) == NULL) {
 | 
				
			||||||
 | 
								fprintf(stderr, "Quitprompt: Error reading pipe!\n");
 | 
				
			||||||
 | 
								return;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if (strcmp(buf, "yes\n") == 0) {
 | 
				
			||||||
 | 
								pclose(pp);
 | 
				
			||||||
 | 
								restart = 0;
 | 
				
			||||||
 | 
								quit(NULL);
 | 
				
			||||||
 | 
							} else if (strcmp(buf, "restart\n") == 0) {
 | 
				
			||||||
 | 
								pclose(pp);
 | 
				
			||||||
 | 
								restart = 1;
 | 
				
			||||||
 | 
								quit(NULL);
 | 
				
			||||||
 | 
							} else if (strcmp(buf, "no\n") == 0) {
 | 
				
			||||||
 | 
								pclose(pp);
 | 
				
			||||||
 | 
								return;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Monitor *
 | 
					Monitor *
 | 
				
			||||||
recttomon(int x, int y, int w, int h)
 | 
					recttomon(int x, int y, int w, int h)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@@ -2091,8 +2118,6 @@ sigdwmblocks(const Arg *arg)
 | 
				
			|||||||
void
 | 
					void
 | 
				
			||||||
spawn(const Arg *arg)
 | 
					spawn(const Arg *arg)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if (arg->v == dmenucmd)
 | 
					 | 
				
			||||||
		dmenumon[0] = '0' + selmon->num;
 | 
					 | 
				
			||||||
	if (fork() == 0) {
 | 
						if (fork() == 0) {
 | 
				
			||||||
		if (dpy)
 | 
							if (dpy)
 | 
				
			||||||
			close(ConnectionNumber(dpy));
 | 
								close(ConnectionNumber(dpy));
 | 
				
			||||||
@@ -2861,6 +2886,9 @@ main(int argc, char *argv[])
 | 
				
			|||||||
	run();
 | 
						run();
 | 
				
			||||||
	cleanup();
 | 
						cleanup();
 | 
				
			||||||
	XCloseDisplay(dpy);
 | 
						XCloseDisplay(dpy);
 | 
				
			||||||
 | 
						if (restart == 1) {
 | 
				
			||||||
 | 
							execlp("dwm", "dwm", NULL);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	return EXIT_SUCCESS;
 | 
						return EXIT_SUCCESS;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user