sites

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

commit 58ddd53a24f0d5c6d4a5bee948c419671f9f62d7
parent 88acfba0ad6896bd3e0ad80bf7cc20ac77b514a4
Author: Sourav Nayak <nonameblank007@gmail.com>
Date:   Thu,  2 Jul 2026 23:50:56 +0530

dwm: actualfullscreen: support overlay application

Patch now enables support for overlay requiring application to have fullscreen on startup.

Diffstat:
Adwm.suckless.org/patches/actualfullscreen/dwm-actualfullscreen-6.8.diff | 120+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mdwm.suckless.org/patches/actualfullscreen/index.md | 2++
2 files changed, 122 insertions(+), 0 deletions(-)

diff --git a/dwm.suckless.org/patches/actualfullscreen/dwm-actualfullscreen-6.8.diff b/dwm.suckless.org/patches/actualfullscreen/dwm-actualfullscreen-6.8.diff @@ -0,0 +1,120 @@ +From 12e0fc50ff6b02ac926b77b7d16601ef8051309b Mon Sep 17 00:00:00 2001 +From: Sourav Nayak <nonameblank007@gmail.com> +Date: Thu, 2 Jul 2026 23:01:18 +0530 +Subject: [PATCH] Fullscreen current window and overlay application + +This actually fullscreens a window, instead of just hiding the statusbar +and applying the monocle layout with [Alt]+[Shift]+[f]. + +Addition to this patch now supports overlay apllication through config rules, +that require fullscreen on run. e.g., KDE Presentation Mode, Quickshell custom overlays... etc. + +Note: If using a compositor like picom, do disable blur for those applications +--- + config.def.h | 7 ++++--- + dwm.1 | 3 +++ + dwm.c | 14 ++++++++++++++ + 3 files changed, 21 insertions(+), 3 deletions(-) + +diff --git a/config.def.h b/config.def.h +index 81c3fc0..03edae9 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 isfullscreen monitor */ ++ { "Gimp", NULL, NULL, 0, 1, 0, -1 }, ++ { "Firefox", NULL, NULL, 1 << 8, 0, 0, -1 }, + }; + + /* layout(s) */ +@@ -80,6 +80,7 @@ static const 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.1 b/dwm.1 +index ddc8321..3d310ac 100644 +--- a/dwm.1 ++++ b/dwm.1 +@@ -116,6 +116,9 @@ Zooms/cycles focused window to/from master area (tiled layouts only). + .B Mod1\-Shift\-c + Close focused window. + .TP ++.B Mod1\-Shift\-f ++Toggle fullscreen for focused window. ++.TP + .B Mod1\-Shift\-space + Toggle focused window between tiled and floating state. + .TP +diff --git a/dwm.c b/dwm.c +index 53b393e..228c9b3 100644 +--- a/dwm.c ++++ b/dwm.c +@@ -137,6 +137,7 @@ typedef struct { + const char *title; + unsigned int tags; + int isfloating; ++ int isfullscreen; + int monitor; + } Rule; + +@@ -210,6 +211,7 @@ static void tagmon(const Arg *arg); + static void tile(Monitor *m); + 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); +@@ -284,6 +286,7 @@ applyrules(Client *c) + XClassHint ch = { NULL, NULL }; + + /* rule matching */ ++ int isfullscreen = 0; + c->isfloating = 0; + c->tags = 0; + XGetClassHint(dpy, c->win, &ch); +@@ -296,6 +299,8 @@ applyrules(Client *c) + && (!r->class || strstr(class, r->class)) + && (!r->instance || strstr(instance, r->instance))) + { ++ isfullscreen = r->isfullscreen; ++ + c->isfloating = r->isfloating; + c->tags |= r->tags; + for (m = mons; m && m->num != r->monitor; m = m->next); +@@ -307,6 +312,8 @@ applyrules(Client *c) + XFree(ch.res_class); + if (ch.res_name) + XFree(ch.res_name); ++ if (isfullscreen) ++ setfullscreen(c, 1); + c->tags = c->tags & TAGMASK ? c->tags & TAGMASK : c->mon->tagset[c->mon->seltags]; + } + +@@ -1735,6 +1742,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.54.0 + diff --git a/dwm.suckless.org/patches/actualfullscreen/index.md b/dwm.suckless.org/patches/actualfullscreen/index.md @@ -10,7 +10,9 @@ Download -------- * [dwm-actualfullscreen-20191112-cb3f58a.diff](dwm-actualfullscreen-20191112-cb3f58a.diff) (1.8K) (2019-11-12) * [dwm-actualfullscreen-20211013-cb3f58a.diff](dwm-actualfullscreen-20211013-cb3f58a.diff) (2.1K) (2021-10-13) +* [dwm-actualfullscreen-6.8](dwm-actualfullscreen-6.8.diff) (4.0K) (2026-07-02) Author ------ * Sönke Lambert - <soelam@live.de> +* Sourav Nayak - <nonameblank007@gmail.com>