1
0
mirror of https://github.com/tiyn/dwm.git synced 2025-10-15 20:31:18 +02:00

3 Commits

Author SHA1 Message Date
40703982a8 updated gitignore 2023-10-24 06:04:08 +02:00
0b15868f9a added gitignore 2023-10-15 03:29:18 +02:00
TiynGER
7be627aa05 patching actualfullscreen 2020-04-07 22:13:03 +02:00
4 changed files with 63 additions and 123 deletions

View File

@@ -78,6 +78,7 @@ static Key keys[] = {
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
{ MODKEY, XK_space, setlayout, {0} },
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },
{ MODKEY|ShiftMask, XK_f, togglefullscr, {0} },
{ MODKEY, XK_0, view, {.ui = ~0 } },
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },
{ MODKEY, XK_comma, focusmon, {.i = -1 } },
@@ -93,7 +94,7 @@ static Key keys[] = {
TAGKEYS( XK_7, 6)
TAGKEYS( XK_8, 7)
TAGKEYS( XK_9, 8)
{ MODKEY|ShiftMask, XK_q, quitprompt, {0} },
{ MODKEY|ShiftMask, XK_q, quit, {0} },
};
/* button definitions */

View File

@@ -0,0 +1,53 @@
From 3a16816a6f5d38014c2a06ce395873c545c8789a Mon Sep 17 00:00:00 2001
From: Soenke Lambert <s.lambert@mittwald.de>
Date: Tue, 12 Nov 2019 10:44:02 +0100
Subject: [PATCH] Fullscreen current window with [Alt]+[Shift]+[f]
This actually fullscreens a window, instead of just hiding the statusbar
and applying the monocle layout.
---
config.def.h | 1 +
dwm.c | 8 ++++++++
2 files changed, 9 insertions(+)
diff --git a/config.def.h b/config.def.h
index 1c0b587..8cd3204 100644
--- a/config.def.h
+++ b/config.def.h
@@ -78,6 +78,7 @@ static Key keys[] = {
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
{ MODKEY, XK_space, setlayout, {0} },
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },
+ { MODKEY|ShiftMask, XK_f, togglefullscr, {0} },
{ MODKEY, XK_0, view, {.ui = ~0 } },
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },
{ MODKEY, XK_comma, focusmon, {.i = -1 } },
diff --git a/dwm.c b/dwm.c
index 4465af1..c1b899a 100644
--- a/dwm.c
+++ b/dwm.c
@@ -211,6 +211,7 @@ static void tagmon(const Arg *arg);
static void tile(Monitor *);
static void togglebar(const Arg *arg);
static void togglefloating(const Arg *arg);
+static void togglefullscr(const Arg *arg);
static void toggletag(const Arg *arg);
static void toggleview(const Arg *arg);
static void unfocus(Client *c, int setfocus);
@@ -1719,6 +1720,13 @@ togglefloating(const Arg *arg)
arrange(selmon);
}
+void
+togglefullscr(const Arg *arg)
+{
+ if(selmon->sel)
+ setfullscreen(selmon->sel, !selmon->sel->isfullscreen);
+}
+
void
toggletag(const Arg *arg)
{
--
2.17.1

View File

@@ -1,92 +0,0 @@
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

38
dwm.c
View File

@@ -187,7 +187,6 @@ static Client *nexttiled(Client *c);
static void pop(Client *);
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);
@@ -212,6 +211,7 @@ static void tagmon(const Arg *arg);
static void tile(Monitor *);
static void togglebar(const Arg *arg);
static void togglefloating(const Arg *arg);
static void togglefullscr(const Arg *arg);
static void toggletag(const Arg *arg);
static void toggleview(const Arg *arg);
static void unfocus(Client *c, int setfocus);
@@ -262,7 +262,6 @@ 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;
@@ -1253,31 +1252,6 @@ 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)
{
@@ -1746,6 +1720,13 @@ togglefloating(const Arg *arg)
arrange(selmon);
}
void
togglefullscr(const Arg *arg)
{
if(selmon->sel)
setfullscreen(selmon->sel, !selmon->sel->isfullscreen);
}
void
toggletag(const Arg *arg)
{
@@ -2172,8 +2153,5 @@ main(int argc, char *argv[])
run();
cleanup();
XCloseDisplay(dpy);
if (restart == 1) {
execlp("dwm", "dwm", NULL);
}
return EXIT_SUCCESS;
}