sites

public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log | Files | Refs

commit 7e1f717272799e726befc7a0abd19be735c7d221
parent 03869813a4e47709b5cac33768a36d28469ee15e
Author: Francisco Tapia <link_1232@yahoo.com.mx>
Date:   Fri, 15 May 2020 19:18:52 -0500

[dwm][patch] selectivefakefullscreen

Diffstat:
Adwm.suckless.org/patches/selectivefakefullscreen/dwm-selectivefakefullscreen-20200513-f09418b.diff | 137+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adwm.suckless.org/patches/selectivefakefullscreen/index.md | 19+++++++++++++++++++
2 files changed, 156 insertions(+), 0 deletions(-)

diff --git a/dwm.suckless.org/patches/selectivefakefullscreen/dwm-selectivefakefullscreen-20200513-f09418b.diff b/dwm.suckless.org/patches/selectivefakefullscreen/dwm-selectivefakefullscreen-20200513-f09418b.diff @@ -0,0 +1,137 @@ +From 524ac2f4bc0a741cc6b1c43aa2e1b6bff2a57088 Mon Sep 17 00:00:00 2001 +From: Francisco Tapia <link_1232@yahoo.com.mx> +Date: Wed, 13 May 2020 15:47:16 -0500 +Subject: [PATCH] Selective fake full screen + +--- + config.def.h | 6 +++--- + dwm.c | 26 +++++++++++++++++++------- + 2 files changed, 22 insertions(+), 10 deletions(-) + +diff --git a/config.def.h b/config.def.h +index 1c0b587..b7a445b 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -26,9 +26,9 @@ static const Rule rules[] = { + * WM_CLASS(STRING) = instance, class + * WM_NAME(STRING) = title + */ +- /* class instance title tags mask isfloating monitor */ +- { "Gimp", NULL, NULL, 0, 1, -1 }, +- { "Firefox", NULL, NULL, 1 << 8, 0, -1 }, ++ /* class instance title tags mask isfloating isfakefullscreen monitor */ ++ { "Gimp", NULL, NULL, 0, 1, 0, -1 }, ++ { "Firefox", NULL, NULL, 1 << 8, 0, 1, -1 }, + }; + + /* layout(s) */ +diff --git a/dwm.c b/dwm.c +index 9fd0286..acc11db 100644 +--- a/dwm.c ++++ b/dwm.c +@@ -92,7 +92,7 @@ struct Client { + int basew, baseh, incw, inch, maxw, maxh, minw, minh; + int bw, oldbw; + unsigned int tags; +- int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen; ++ int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen, isfakefullscreen; + Client *next; + Client *snext; + Monitor *mon; +@@ -138,6 +138,7 @@ typedef struct { + const char *title; + unsigned int tags; + int isfloating; ++ int isfakefullscreen; + int monitor; + } Rule; + +@@ -299,6 +300,7 @@ applyrules(Client *c) + && (!r->instance || strstr(instance, r->instance))) + { + c->isfloating = r->isfloating; ++ c->isfakefullscreen = r->isfakefullscreen; + c->tags |= r->tags; + for (m = mons; m && m->num != r->monitor; m = m->next); + if (m) +@@ -522,7 +524,8 @@ clientmessage(XEvent *e) + if (cme->data.l[1] == netatom[NetWMFullscreen] + || cme->data.l[2] == netatom[NetWMFullscreen]) + setfullscreen(c, (cme->data.l[0] == 1 /* _NET_WM_STATE_ADD */ +- || (cme->data.l[0] == 2 /* _NET_WM_STATE_TOGGLE */ && !c->isfullscreen))); ++ || (cme->data.l[0] == 2 /* _NET_WM_STATE_TOGGLE */ ++ && (!c->isfullscreen || c->isfakefullscreen)))); + } else if (cme->message_type == netatom[NetActiveWindow]) { + if (c != selmon->sel && !c->isurgent) + seturgent(c, 1); +@@ -566,7 +569,8 @@ configurenotify(XEvent *e) + updatebars(); + for (m = mons; m; m = m->next) { + for (c = m->clients; c; c = c->next) +- if (c->isfullscreen) ++ if (c->isfullscreen ++ && !c->isfakefullscreen) + resizeclient(c, m->mx, m->my, m->mw, m->mh); + XMoveResizeWindow(dpy, m->barwin, m->wx, m->by, m->ww, bh); + } +@@ -1144,7 +1148,8 @@ movemouse(const Arg *arg) + + if (!(c = selmon->sel)) + return; +- if (c->isfullscreen) /* no support moving fullscreen windows by mouse */ ++ if (c->isfullscreen ++ && !c->isfakefullscreen) /* no support moving fullscreen windows by mouse */ + return; + restack(selmon); + ocx = c->x; +@@ -1299,7 +1304,8 @@ resizemouse(const Arg *arg) + + if (!(c = selmon->sel)) + return; +- if (c->isfullscreen) /* no support resizing fullscreen windows by mouse */ ++ if (c->isfullscreen ++ && !c->isfakefullscreen) /* no support resizing fullscreen windows by mouse */ + return; + restack(selmon); + ocx = c->x; +@@ -1477,6 +1483,8 @@ setfullscreen(Client *c, int fullscreen) + XChangeProperty(dpy, c->win, netatom[NetWMState], XA_ATOM, 32, + PropModeReplace, (unsigned char*)&netatom[NetWMFullscreen], 1); + c->isfullscreen = 1; ++ if (c->isfakefullscreen) ++ return; + c->oldstate = c->isfloating; + c->oldbw = c->bw; + c->bw = 0; +@@ -1487,6 +1495,8 @@ setfullscreen(Client *c, int fullscreen) + XChangeProperty(dpy, c->win, netatom[NetWMState], XA_ATOM, 32, + PropModeReplace, (unsigned char*)0, 0); + c->isfullscreen = 0; ++ if (c->isfakefullscreen) ++ return; + c->isfloating = c->oldstate; + c->bw = c->oldbw; + c->x = c->oldx; +@@ -1619,7 +1629,8 @@ showhide(Client *c) + if (ISVISIBLE(c)) { + /* show clients top down */ + XMoveWindow(dpy, c->win, c->x, c->y); +- if ((!c->mon->lt[c->mon->sellt]->arrange || c->isfloating) && !c->isfullscreen) ++ if ((!c->mon->lt[c->mon->sellt]->arrange || c->isfloating) ++ && (!c->isfullscreen || c->isfakefullscreen)) + resize(c, c->x, c->y, c->w, c->h, 0); + showhide(c->snext); + } else { +@@ -1713,7 +1724,8 @@ togglefloating(const Arg *arg) + { + if (!selmon->sel) + return; +- if (selmon->sel->isfullscreen) /* no support for fullscreen windows */ ++ if (selmon->sel->isfullscreen ++ && !selmon->sel->isfakefullscreen) /* no support for fullscreen windows */ + return; + selmon->sel->isfloating = !selmon->sel->isfloating || selmon->sel->isfixed; + if (selmon->sel->isfloating) +-- +2.20.1 + diff --git a/dwm.suckless.org/patches/selectivefakefullscreen/index.md b/dwm.suckless.org/patches/selectivefakefullscreen/index.md @@ -0,0 +1,19 @@ +selectivefakefullscreen +============== + +Description +----------- +Allows a specific application to fake a full screen while the rest behave as usual, +it's based on Jan Hendrik Farr's patch, [../fakefullscreen/index.md](fakefullscreen). + +Includes a modification to config.def.h in order to add a new member to Rules struct, +called "isfakefullscreen", set it to one for all the applications you want to +fake a full screen. + +Download +-------- +* [dwm-selectivefakefullscreen-20200513-f09418b.diff](dwm-selectivefakefullscreen-20200513-f09418b.diff) + +Author +------ +* Francisco Javier Tapia - <link_1232@yahoo.com.mx>