apply patch dwm-winview-gaplessgrid-gridall-6.5.diff
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
/* See LICENSE file for copyright and license details. */
|
||||
#include "gaplessgrid.c"
|
||||
|
||||
/* appearance */
|
||||
static const unsigned int borderpx = 1; /* border pixel of windows */
|
||||
@@ -51,6 +52,7 @@ static const Layout layouts[] = {
|
||||
{ "[]=", tile }, /* first entry is default */
|
||||
{ "><>", NULL }, /* no layout function means floating behavior */
|
||||
{ "[M]", monocle },
|
||||
{ "HHH", gaplessgrid },
|
||||
};
|
||||
|
||||
/* key definitions */
|
||||
@@ -131,6 +133,9 @@ static const Key keys[] = {
|
||||
{ MODKEY|ShiftMask, XK_q, quit, {0} },
|
||||
{ MODKEY|ControlMask|ShiftMask, XK_q, quit, {1} },
|
||||
{ MODKEY|ShiftMask, XK_e, exitdwm, {0} },
|
||||
{ MODKEY, XK_o, winview, {0} },
|
||||
{ MODKEY, XK_g, gridall, {} },
|
||||
{ MODKEY, XK_r, winviewmono, {} },
|
||||
};
|
||||
|
||||
/* button definitions */
|
||||
|
||||
3
dwm.1
3
dwm.1
@@ -110,6 +110,9 @@ Increase master area size.
|
||||
.B Mod1\-h
|
||||
Decrease master area size.
|
||||
.TP
|
||||
.B Mod1\-o
|
||||
Select view of the window in focus. The list of tags to be displayed is matched to the window tag list.
|
||||
.TP
|
||||
.B Mod1\-Return
|
||||
Zooms/cycles focused window to/from master area (tiled layouts only).
|
||||
.TP
|
||||
|
||||
38
dwm.c
38
dwm.c
@@ -250,10 +250,13 @@ static void view(const Arg *arg);
|
||||
static void warp(const Client *c);
|
||||
static Client *wintoclient(Window w);
|
||||
static Monitor *wintomon(Window w);
|
||||
static void winview(const Arg* arg);
|
||||
static int xerror(Display *dpy, XErrorEvent *ee);
|
||||
static int xerrordummy(Display *dpy, XErrorEvent *ee);
|
||||
static int xerrorstart(Display *dpy, XErrorEvent *ee);
|
||||
static void zoom(const Arg *arg);
|
||||
static void gridall(const Arg *arg);
|
||||
static void winviewmono(const Arg *arg);
|
||||
|
||||
/* variables */
|
||||
static const char broken[] = "broken";
|
||||
@@ -2496,6 +2499,41 @@ wintomon(Window w)
|
||||
return selmon;
|
||||
}
|
||||
|
||||
/* Selects for the view of the focused window. The list of tags */
|
||||
/* to be displayed is matched to the focused window tag list. */
|
||||
void
|
||||
winview(const Arg* arg){
|
||||
Window win, win_r, win_p, *win_c;
|
||||
unsigned nc;
|
||||
int unused;
|
||||
Client* c;
|
||||
Arg a;
|
||||
|
||||
if (!XGetInputFocus(dpy, &win, &unused)) return;
|
||||
while(XQueryTree(dpy, win, &win_r, &win_p, &win_c, &nc)
|
||||
&& win_p != win_r) win = win_p;
|
||||
|
||||
if (!(c = wintoclient(win))) return;
|
||||
|
||||
a.ui = c->tags;
|
||||
view(&a);
|
||||
}
|
||||
|
||||
/* by desgua */
|
||||
void
|
||||
gridall(const Arg *arg)
|
||||
{
|
||||
setlayout(&(Arg){.v = &layouts[3]});
|
||||
view(&(Arg){.ui = ~0});
|
||||
}
|
||||
|
||||
void
|
||||
winviewmono(const Arg *arg)
|
||||
{
|
||||
winview(&(Arg){0});
|
||||
setlayout(&(Arg){.v = &layouts[2]});
|
||||
}
|
||||
|
||||
/* There's no way to check accesses to destroyed windows, thus those cases are
|
||||
* ignored (especially on UnmapNotify's). Other types of errors call Xlibs
|
||||
* default error handler, which may call exit. */
|
||||
|
||||
Reference in New Issue
Block a user