sites

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

commit 86378f819d2278eb3b9bae11fac8bae187687ff1
parent 888ac1793545dcf3bf011c5492b0eb8388aaa291
Author: memeplex <carlosjosepita@gmail.com>
Date:   Sun, 12 Jan 2014 21:24:23 -0300

Merge branch 'master' of git://git.suckless.org/sites

Diffstat:
Adwm.suckless.org/patches/cfacts.md | 56++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adwm.suckless.org/patches/dwm-6.1-cfacts.diff | 102+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asurf.suckless.org/patches/smoothscrolling-via-GTK3.md | 18++++++++++++++++++
Dsurf.suckless.org/patches/smoothscrolling.md | 18------------------
4 files changed, 176 insertions(+), 18 deletions(-)

diff --git a/dwm.suckless.org/patches/cfacts.md b/dwm.suckless.org/patches/cfacts.md @@ -0,0 +1,56 @@ +ctags +===== + +Description +----------- + +This patch provides the ability to assign different weights to +clients in their respective stack in tiled layout. It implements +a new function setcfact which will modify the cfact-value for the +currently selected client. It accepts the following values: + +* A positive float to increase a clients weight, thus increasing + the space the client is allocated in its current stack. + +* A negative float to decrease a clients weight, thus decreasing + the space the client is allocated in its current stack. + +* A zero-value float to reset a clients weight to default. + +Default cfact-value for each client is 1.0. If a client is +assigned a cfact value of 0.5 it will be allocated half of the +space other clients would be allocated. If a client is assigned a +cfact value of 2.0 it will be allocated twice the space other +clients would be allocated. + +The following illustrates the behavior. The clients cfact-values +are represented by floats inside the clients rectangles. + + +---------------------+ + | | 0.5 | + | 1.0 +----------+ + +----------+ | + | | 1.0 | + | +----------+ + | 2.0 | | + | | 1.0 | + +----------+----------+ + +Default key bindings +-------------------- + + Key | Argument | Description +:---------:|:----------:|:---------------- + `Mod-H` | `+0.25` | Increase cfact + `Mod-L` | `-0.25` | Decrease cfact + `Mod-O` | ` 0.00` | Reset cfact + +Download +-------- + +* [dwm-6.1-cfacts.diff](dwm-6.1-ctags.diff) + +Author +------ + +* Patrick Steinhardt (pks) <ps@pks.im> diff --git a/dwm.suckless.org/patches/dwm-6.1-cfacts.diff b/dwm.suckless.org/patches/dwm-6.1-cfacts.diff @@ -0,0 +1,102 @@ +diff --git a/config.def.h b/config.def.h +index 875885b..809788b 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -65,6 +65,9 @@ static Key keys[] = { + { MODKEY, XK_d, incnmaster, {.i = -1 } }, + { MODKEY, XK_h, setmfact, {.f = -0.05} }, + { MODKEY, XK_l, setmfact, {.f = +0.05} }, ++ { MODKEY|ShiftMask, XK_h, setcfact, {.f = +0.25} }, ++ { MODKEY|ShiftMask, XK_l, setcfact, {.f = -0.25} }, ++ { MODKEY|ShiftMask, XK_o, setcfact, {.f = 0.00} }, + { MODKEY, XK_Return, zoom, {0} }, + { MODKEY, XK_Tab, view, {0} }, + { MODKEY|ShiftMask, XK_c, killclient, {0} }, +diff --git a/dwm.c b/dwm.c +index 1bbb4b3..4ff74cc 100644 +--- a/dwm.c ++++ b/dwm.c +@@ -86,6 +86,7 @@ typedef struct Client Client; + struct Client { + char name[256]; + float mina, maxa; ++ float cfact; + int x, y, w, h; + int oldx, oldy, oldw, oldh; + int basew, baseh, incw, inch, maxw, maxh, minw, minh; +@@ -200,6 +201,7 @@ static void setclientstate(Client *c, long state); + static void setfocus(Client *c); + static void setfullscreen(Client *c, Bool fullscreen); + static void setlayout(const Arg *arg); ++static void setcfact(const Arg *arg); + static void setmfact(const Arg *arg); + static void setup(void); + static void showhide(Client *c); +@@ -1027,6 +1029,7 @@ manage(Window w, XWindowAttributes *wa) { + c->w = c->oldw = wa->width; + c->h = c->oldh = wa->height; + c->oldbw = wa->border_width; ++ c->cfact = 1.0; + + if(c->x + WIDTH(c) > c->mon->mx + c->mon->mw) + c->x = c->mon->mx + c->mon->mw - WIDTH(c); +@@ -1473,6 +1476,23 @@ setlayout(const Arg *arg) { + drawbar(selmon); + } + ++void setcfact(const Arg *arg) { ++ float f; ++ Client *c; ++ ++ c = selmon->sel; ++ ++ if(!arg || !c || !selmon->lt[selmon->sellt]->arrange) ++ return; ++ f = arg->f + c->cfact; ++ if(arg->f == 0.0) ++ f = 1.0; ++ else if(f < 0.25 || f > 4.0) ++ return; ++ c->cfact = f; ++ arrange(selmon); ++} ++ + /* arg > 1.0 will set mfact absolutly */ + void + setmfact(const Arg *arg) { +@@ -1602,9 +1622,15 @@ tagmon(const Arg *arg) { + void + tile(Monitor *m) { + unsigned int i, n, h, mw, my, ty; ++ float mfacts = 0, sfacts = 0; + Client *c; + +- for(n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++); ++ for(n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++) { ++ if(n < m->nmaster) ++ mfacts += c->cfact; ++ else ++ sfacts += c->cfact; ++ } + if(n == 0) + return; + +@@ -1614,14 +1640,16 @@ tile(Monitor *m) { + mw = m->ww; + for(i = my = ty = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++) + if(i < m->nmaster) { +- h = (m->wh - my) / (MIN(n, m->nmaster) - i); ++ h = (m->wh - my) * (c->cfact / mfacts); + resize(c, m->wx, m->wy + my, mw - (2*c->bw), h - (2*c->bw), False); + my += HEIGHT(c); ++ mfacts -= c->cfact; + } + else { +- h = (m->wh - ty) / (n - i); ++ h = (m->wh - ty) * (c->cfact / sfacts); + resize(c, m->wx + mw, m->wy + ty, m->ww - mw - (2*c->bw), h - (2*c->bw), False); + ty += HEIGHT(c); ++ sfacts -= c->cfact; + } + } + diff --git a/surf.suckless.org/patches/smoothscrolling-via-GTK3.md b/surf.suckless.org/patches/smoothscrolling-via-GTK3.md @@ -0,0 +1,18 @@ +smoothscrolling via GTK3 +======================== + +Description +----------- + +Enable smooth scrolling by compiling surf with GTK3 instead of GTK2. + +Download +-------- + +* [surf-0.6-smoothscrolling.diff](surf-0.6-smoothscrolling.diff) (9.4K) (20131229) + +Author +------ + +* Charles Lehner <[http://celehner.com](http://celehner.com)> + diff --git a/surf.suckless.org/patches/smoothscrolling.md b/surf.suckless.org/patches/smoothscrolling.md @@ -1,18 +0,0 @@ -smoothscrolling -========== - -Description ------------ - -Enable smooth scrolling by compiling surf with GTK3 instead of GTK2. - -Download --------- - -* [surf-0.6-smoothscrolling.diff](surf-0.6-smoothscrolling.diff) (9.4K) (20131229) - -Author ------- - -* Charles Lehner <[http://celehner.com](http://celehner.com)> -