diff options
author | Manuel Palenzuela <manuelpalenzuelamerino@gmail.com> | 2019-06-18 00:40:37 +0200 |
---|---|---|
committer | Manuel Palenzuela <manuelpalenzuelamerino@gmail.com> | 2019-06-18 00:40:37 +0200 |
commit | 78c94bb7ba99bea753eca523afaadbd102ecc07d (patch) | |
tree | c235fc9f8c6e7f4d122c4d5afdf6b071d21096cb | |
parent | Fixed high temp icon in dwm-status (diff) | |
download | dwm-78c94bb7ba99bea753eca523afaadbd102ecc07d.tar.gz dwm-78c94bb7ba99bea753eca523afaadbd102ecc07d.tar.bz2 dwm-78c94bb7ba99bea753eca523afaadbd102ecc07d.zip |
Added togglefullscreen patch and keybinding [Patch]
-rw-r--r-- | config.h | 5 | ||||
-rw-r--r-- | dwm.c | 29 | ||||
-rw-r--r-- | patches/dwm-togglefullscreen.diff | 59 |
3 files changed, 91 insertions, 2 deletions
diff --git a/config.h b/config.h index 04fc97f..95b9ea1 100644 --- a/config.h +++ b/config.h @@ -22,14 +22,14 @@ static const char *colors[][3] = { /* fg bg border */ [SchemeNorm] = { col_gray3, col_gray1, col_gray2 }, [SchemeSel] = { col_gray4, col_cyan, col_cyan }, - [SchemeTitle]= { col_gray3, col_gray1, col_gray2 }, + [SchemeTitle]= { col_gray3, col_gray1, col_gray2 }, }; static const unsigned int alphas[][3] = { /* fg bg border */ [SchemeNorm] = { OPAQUE, baralpha, borderalpha }, [SchemeSel] = { OPAQUE, baralpha, borderalpha }, - [SchemeTitle]= { OPAQUE, baralpha, borderalpha}, + [SchemeTitle]= { OPAQUE, baralpha, borderalpha }, }; /* tagging */ @@ -90,6 +90,7 @@ static Key keys[] = { { MODKEY, XK_h, setmfact, {.f = -0.05} }, { MODKEY, XK_l, setmfact, {.f = +0.05} }, { MODKEY, XK_Return, zoom, {0} }, + { MODKEY, XK_f, togglefullscreen,{0}}, { MODKEY, XK_Tab, view, {0} }, { MODKEY, XK_q, killclient, {0} }, /* diff --git a/dwm.c b/dwm.c index cdba5eb..c05ef8c 100644 --- a/dwm.c +++ b/dwm.c @@ -218,6 +218,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 togglefullscreen(const Arg *arg); static void toggletag(const Arg *arg); static void toggleview(const Arg *arg); static void unfocus(Client *c, int setfocus); @@ -1770,6 +1771,34 @@ togglefloating(const Arg *arg) } void +togglefullscreen(const Arg *arg) +{ + if (!selmon->sel->isfullscreen) { + XChangeProperty(dpy, selmon->sel->win, netatom[NetWMState], XA_ATOM, 32, + PropModeReplace, (unsigned char*)&netatom[NetWMFullscreen], 1); + selmon->sel->isfullscreen = 1; + selmon->sel->oldstate = selmon->sel->isfloating; + selmon->sel->oldbw = selmon->sel->bw; + selmon->sel->bw = 0; + selmon->sel->isfloating = 1; + resizeclient(selmon->sel, selmon->sel->mon->mx, selmon->sel->mon->my, selmon->sel->mon->mw, selmon->sel->mon->mh); + XRaiseWindow(dpy, selmon->sel->win); + } else if (selmon->sel->isfullscreen){ + XChangeProperty(dpy, selmon->sel->win, netatom[NetWMState], XA_ATOM, 32, + PropModeReplace, (unsigned char*)0, 0); + selmon->sel->isfullscreen = 0; + selmon->sel->isfloating = selmon->sel->oldstate; + selmon->sel->bw = selmon->sel->oldbw; + selmon->sel->x = selmon->sel->oldx; + selmon->sel->y = selmon->sel->oldy; + selmon->sel->w = selmon->sel->oldw; + selmon->sel->h = selmon->sel->oldh; + resizeclient(selmon->sel, selmon->sel->x, selmon->sel->y, selmon->sel->w, selmon->sel->h); + arrange(selmon->sel->mon); + } +} + +void toggletag(const Arg *arg) { unsigned int newtags; diff --git a/patches/dwm-togglefullscreen.diff b/patches/dwm-togglefullscreen.diff new file mode 100644 index 0000000..78de821 --- /dev/null +++ b/patches/dwm-togglefullscreen.diff @@ -0,0 +1,59 @@ +diff --git a/config.h b/config.h +index 04fc97f..657e8f2 100644 +--- a/config.h ++++ b/config.h + + /* tagging */ +@@ -90,6 +90,7 @@ static Key keys[] = { + { MODKEY, XK_h, setmfact, {.f = -0.05} }, + { MODKEY, XK_l, setmfact, {.f = +0.05} }, + { MODKEY, XK_Return, zoom, {0} }, ++ { MODKEY, XK_f, togglefullscreen, {0} }, + { MODKEY, XK_Tab, view, {0} }, + { MODKEY, XK_q, killclient, {0} }, + /* +diff --git a/dwm.c b/dwm.c +index cdba5eb..c05ef8c 100644 +--- a/dwm.c ++++ b/dwm.c +@@ -218,6 +218,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 togglefullscreen(const Arg *arg); + static void toggletag(const Arg *arg); + static void toggleview(const Arg *arg); + static void unfocus(Client *c, int setfocus); + + ++void ++togglefullscreen(const Arg *arg) ++{ ++ if (!selmon->sel->isfullscreen) { ++ XChangeProperty(dpy, selmon->sel->win, netatom[NetWMState], XA_ATOM, 32, ++ PropModeReplace, (unsigned char*)&netatom[NetWMFullscreen], 1); ++ selmon->sel->isfullscreen = 1; ++ selmon->sel->oldstate = selmon->sel->isfloating; ++ selmon->sel->oldbw = selmon->sel->bw; ++ selmon->sel->bw = 0; ++ selmon->sel->isfloating = 1; ++ resizeclient(selmon->sel, selmon->sel->mon->mx, selmon->sel->mon->my, selmon->sel->mon->mw, selmon->sel->mon->mh); ++ XRaiseWindow(dpy, selmon->sel->win); ++ } else if (selmon->sel->isfullscreen){ ++ XChangeProperty(dpy, selmon->sel->win, netatom[NetWMState], XA_ATOM, 32, ++ PropModeReplace, (unsigned char*)0, 0); ++ selmon->sel->isfullscreen = 0; ++ selmon->sel->isfloating = selmon->sel->oldstate; ++ selmon->sel->bw = selmon->sel->oldbw; ++ selmon->sel->x = selmon->sel->oldx; ++ selmon->sel->y = selmon->sel->oldy; ++ selmon->sel->w = selmon->sel->oldw; ++ selmon->sel->h = selmon->sel->oldh; ++ resizeclient(selmon->sel, selmon->sel->x, selmon->sel->y, selmon->sel->w, selmon->sel->h); ++ arrange(selmon->sel->mon); ++ } ++} ++ + void + toggletag(const Arg *arg) + { |