---- -Original Submission: [//lists.suckless.org/dev/1403/20488.html](//lists.suckless.org/dev/1403/20488.html) +Original Submission: +[//lists.suckless.org/dev/1403/20488.html](//lists.suckless.org/dev/1403/20488.html) diff --git a/dwm.suckless.org/patches/historical/nmaster/dwm-4.4.1-nmaster.diff b/dwm.suckless.org/patches/historical/nmaster/dwm-4.4.1-nmaster.diff new file mode 100644 index 00000000..6ee6fa03 --- /dev/null +++ b/dwm.suckless.org/patches/historical/nmaster/dwm-4.4.1-nmaster.diff _AT_@ -0,0 +1,114 @@ +diff -r 795c26a59016 config.default.h +--- a/config.default.h Sun Aug 26 12:54:20 2007 +0200 ++++ b/config.default.h Sun Aug 26 15:06:20 2007 +0200 +_AT_@ -33,6 +33,7 @@ static Layout layouts[] = { \ + { "><>", floating }, \ + }; + #define MWFACT 0.6 /* master width factor [0.1 .. 0.9] */ ++#define NMASTER 1 /* clients in master area */ + #define SNAP 32 /* snap pixel */ + + /* key definitions */ +_AT_@ -48,6 +49,8 @@ Key keys[] = { \ + { MODKEY, XK_k, focusprev, NULL }, \ + { MODKEY, XK_h, setmwfact, "-0.05" }, \ + { MODKEY, XK_l, setmwfact, "+0.05" }, \ ++ { MODKEY|ShiftMask, XK_h, incnmaster, "-1" }, \ ++ { MODKEY|ShiftMask, XK_l, incnmaster, "1" }, \ + { MODKEY, XK_m, togglemax, NULL }, \ + { MODKEY, XK_Return, zoom, NULL }, \ + { MODKEY|ShiftMask, XK_space, togglefloating, NULL }, \ +diff -r 795c26a59016 tile.c +--- a/tile.c Sun Aug 26 12:54:20 2007 +0200 ++++ b/tile.c Sun Aug 26 15:06:20 2007 +0200 +_AT_@ -5,8 +5,29 @@ + /* static */ + + static double mwfact = MWFACT; ++static unsigned int nmaster = NMASTER; + + /* extern */ ++ ++void ++incnmaster(const char *arg) { ++ int i; ++ ++ if(!isarrange(tile)) ++ return; ++ if(!arg) ++ nmaster = NMASTER; ++ else { ++ i = atoi(arg); ++ if((nmaster + i) < 1 || wah / (nmaster + i) <= 2 * BORDERPX) ++ return; ++ nmaster += i; ++ } ++ if(sel) ++ arrange(); ++ else ++ drawstatus(); ++} + + void + setmwfact(const char *arg) { +_AT_@ -32,28 +53,33 @@ setmwfact(const char *arg) { + + void + tile(void) { +- unsigned int i, n, nx, ny, nw, nh, mw, th; ++ unsigned int i, n, nx, ny, nw, nh, mw, mh, th; + Client *c; + + for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next)) + n++; + + /* window geoms */ +- mw = (n == 1) ? waw : mwfact * waw; +- th = (n > 1) ? wah / (n - 1) : 0; +- if(n > 1 && th < bh) ++ mh = (n <= nmaster) ? wah / (n > 0 ? n : 1) : wah / nmaster; ++ mw = (n <= nmaster) ? waw : mwfact * waw; ++ th = (n > nmaster) ? wah / (n - nmaster) : 0; ++ if(n > nmaster && th < bh) + th = wah; + + nx = wax; + ny = way; + for(i = 0, c = nexttiled(clients); c; c = nexttiled(c->next), i++) { + c->ismax = False; +- if(i == 0) { /* master */ ++ if(i < nmaster) { /* master */ ++ ny = way + i * mh; + nw = mw - 2 * c->border; +- nh = wah - 2 * c->border; ++ nh = mh; ++ if(i + 1 == (n < nmaster ? n : nmaster)) /* remainder */ ++ nh = wah - mh * i; ++ nh -= 2 * c->border; + } + else { /* tile window */ +- if(i == 1) { ++ if(i == nmaster) { + ny = way; + nx += mw; + } +_AT_@ -64,7 +90,7 @@ tile(void) { + nh = th - 2 * c->border; + } + resize(c, nx, ny, nw, nh, False); +- if(n > 1 && th != wah) ++ if(n > nmaster && th != wah) + ny += nh + 2 * c->border; + } + } +diff -r 795c26a59016 tile.h +--- a/tile.h Sun Aug 26 12:54:20 2007 +0200 ++++ b/tile.h Sun Aug 26 15:06:20 2007 +0200 +_AT_@ -1,6 +1,7 @@ + /* See LICENSE file for copyright and license details. */ + + /* tile.c */ ++void incnmaster(const char *arg); /* increments nmaster value */ + void setmwfact(const char *arg); /* sets master width factor */ + void tile(void); /* arranges all windows tiled */ + void zoom(const char *arg); /* zooms the focused client to master area, arg is ignored */ diff --git a/dwm.suckless.org/patches/historical/nmaster/index.md b/dwm.suckless.org/patches/historical/nmaster/index.md index c3ea4130..92f5007d 100644 --- a/dwm.suckless.org/patches/historical/nmaster/index.md +++ b/dwm.suckless.org/patches/historical/nmaster/index.md _AT_@ -1,11 +1,13 @@ -# NMASTER PATCH +nmaster patch +============= -## Description +Description +----------- +This patch restores the ability to have multiple clients in the master area of +the tiled layout. This feature was dropped from vanilla dwm in version 4.4. -This patch restores the ability to have multiple clients in the master area of the tiled layout. -This feature was dropped from vanilla dwm in version 4.4. - -See [nmaster.c][1] header documentation for installing this patch with tilecols and clientspertag for dwm 4.6. +See nmaster.c header documentation for installing this patch with tilecols +and clientspertag for dwm 4.6. ntile (-|=) +----------+------+ _AT_@ -16,41 +18,39 @@ See [nmaster.c][1] header documentation for installing this patch with tilecols | | | +----------+------+ -NOTE: The nmaster.c (patch for dwm 4.6) mixes the clientspertag patch together with another layout called tilecols. - -## Usage +Note: The nmaster.c (patch for dwm 4.6) mixes the clientspertag patch together +with another layout called tilecols. +Usage +----- 1. Download the patch and apply according to the [general instructions](.). 2. Add the `NMASTER` value to your `config.h`. Example from `config.default.h`: - #define NMASTER 2 /* clients in master area*/ + #define NMASTER 2 /* clients in master area*/ 3. Add keybindings to `incmaster()` to your `config.h`. Example from `config.default.h`: - { MODKEY|ShiftMask, XK_k, incnmaster, "-1" }, \ - { MODKEY|ShiftMask, XK_j, incnmaster, "1" }, \ - -The nmaster patch for dwm 4.6 (current development hg branch) installation is far more simple. -Installation instructions are placed on the top of the .c file. + { MODKEY|ShiftMask, XK_k, incnmaster, "-1" }, \ + { MODKEY|ShiftMask, XK_j, incnmaster, "1" }, \ -The nmaster patch for dwm 4.6 adds two new layouts called ntile (classic) and dntile (dinamic). +The nmaster patch for dwm 4.6 (current development hg branch) installation is +far more simple. Installation instructions are placed on the top of the .c +file. -## Download +The nmaster patch for dwm 4.6 adds two new layouts called ntile (classic) and +dntile (dinamic). -* [nmaster-4.7.c][3] (dwm 4.7) (7.3kb (20071123) -* [nmaster.c][2] (dwm 4.6) (7.3kb) (20071025) - - contains ntile, dntile and tilecols. Also supports the clients-per-tag -* [dwm-4.4.1-nmaster.diff][1] (dwm 4.4) (2.8kb) (20070826) +Download +-------- +* [nmaster-4.7.c](nmaster-4.7.c) (dwm 4.7) (7.3kb (20071123) +* [nmaster.c](nmaster.c) (dwm 4.6) (7.3kb) (20071025) + * contains ntile, dntile and tilecols. Also supports the clients-per-tag +* [dwm-4.4.1-nmaster.diff](dwm-4.4.1-nmaster.diff) (dwm 4.4) (2.8kb) (20070826) * [nmaster+bstack-5.6.1.diff](nmaster+bstack-5.6.1.diff) (dwm 5.6.1) (5.9kb) (20090824) - - another variation; contains bstack with nmaster support - -[1]: http://schot.a-eskwadraat.nl/files/dwm-4.4.1-nmaster.diff -[2]: http://www.lolcathost.org/b/dwm/nmaster.c -[3]: http://www.lolcathost.org/b/dwm/nmaster-4.7.c - -## Maintainer - -* pancake <youterm.com> + * another variation; contains bstack with nmaster support +Maintainer +---------- +* pancake <youterm.com> diff --git a/dwm.suckless.org/patches/historical/nmaster/nmaster-4.7.c b/dwm.suckless.org/patches/historical/nmaster/nmaster-4.7.c new file mode 100644 index 00000000..345fb9d4 --- /dev/null +++ b/dwm.suckless.org/patches/historical/nmaster/nmaster-4.7.c _AT_@ -0,0 +1,505 @@ +#if 0 + +TITLE +----- + descrp: ntile/tilecols layouts with clientspertag for dwm-4.7 + author: pancake <youterm.com> + update: 2007-12-01 + + +CONFIGURATION +------------- + You should modify your config.h to include "nmaster.c" AFTER setting + the NMASTER, NCOLS, NROWS, BORDERPX, and RESIZEHINTS macro definitions + and BEFORE the layouts definition. + + A sample configuration with ntile will be: + + #define NMASTER 1 + #define NCOLS 1 + #define NROWS 1 + #define CPTH 32 + #include "nmaster-4.7.c" + + Layout layouts[] = { + { "-|=" , ntile }, + // ... + }; + + // keys + { MODKEY|ShiftMask , XK_j , setnmaster , "+1" } , \ + { MODKEY|ShiftMask , XK_k , setnmaster , "-1" } , \ + { MODKEY , XK_q , clientspertag ,"^1" } , \ + { MODKEY , XK_w , clientspertag , "2" } , \ + { MODKEY , XK_e , clientspertag , "3" } , \ + { MODKEY , XK_n , setcpth , "+32" } , \ + { MODKEY|ShiftMask , XK_n , setcpth , "-32" } , \ + + + clientspertag: + + both of them features the new cpt patch (clients per tag) which enables + to define the maximum number of clients you want to focus, the rest are + stacked at the bottom of the screen. This area has CPTH height and this + value can be changed on the fly using the setcpth function. + + +------+----+ + | | | Valid values are: + | |----| -1 - show all clients + | | | 0 - show all clients in the bottom stack area + +---+--^+---+ >0 - show N clients + +---+---+---+ + + #define CPTH 32 // num of pixels of the height of the stacked cpt area + + { MODKEY , XK_q , clientspertag ,"^1" } , \ + { MODKEY , XK_w , clientspertag , "2" } , \ + { MODKEY , XK_e , clientspertag , "3" } , \ + { MODKEY , XK_r , clientspertag , "4" } , \ + { MODKEY , XK_t , clientspertag , "5" } , \ + + { MODKEY , XK_n , setcpth , "+32" } , \ + { MODKEY|ShiftMask , XK_n , setcpth , "-32" } , \ + + + This source adds two new layouts: + + ntile: + + +-----+--+ + |_____|--| + | |--| + +-----+--+ + + #define NMASTER 1 + + { "-|=" , ntile } , \ + + { MODKEY|ShiftMask , XK_j , setnmaster , "+1" } , \ + { MODKEY|ShiftMask , XK_k , setnmaster , "-1" } , \ + + + tilecols: + + +--+--+--+ + |__| |__| + | | | | + +--+--+--+ + + #define NCOLS 2 + #define NROWS 1 + + { "E|]" , tilecols } , \ + + { MODKEY|ShiftMask , XK_j , setnrows , "+1" } , \ + { MODKEY|ShiftMask , XK_k , setnrows , "-1" } , \ + { MODKEY|ShiftMask , XK_h , setncols , "+1" } , \ + { MODKEY|ShiftMask , XK_l , setncols , "-1" } , + +#endif + + +/* height for bottom stacked clients */ +#ifndef CPTH +#define CPTH 32 +#endif +/* initial value for clients per tag */ +#ifndef CPT +#define CPT -1 +#endif + +void +maxzoom(const char *arg) { + if (sel->isfloating) + togglemax(NULL); + else + zoom(NULL); +} + +int cpt = CPT; +int Cpth = CPTH; + +void +clientspertag(const char *arg) { + if (*arg=='+' || *arg=='-') { + cpt += atoi(arg); + } else if (arg[0]=='^') { + if (cpt==-1) cpt = atoi(arg+1); + else cpt = -1; + } else cpt = atoi(arg); + arrange(); +} + +void +setcpth(const char *arg) { + int i; + + if(!arg) + Cpth = CPTH; + else { + Cpth += atoi(arg); + if (Cpth-CPTH<=0) + Cpth = CPTH; + if (Cpth+CPTH>=wah) + Cpth = wah - CPTH; + } + if(sel) + arrange(); +} + +#ifdef NMASTER +int nmaster = NMASTER; + +void +ntile(void) { + unsigned int i, n, t, nx, ny, nw, nh, mw, mh, th; + int cptn = 0, cpth = 0; + Client *c; + + domwfact = dozoom = True; + + for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next)) { + //if (cpt!=-1 && n>=cpt && sel == c) { n=cpt; zoom(NULL); break; } + n++; + } + t = n; + if (cpt!=-1&&n>cpt) { + n = cpt; + cpth = Cpth; + wah -= cpth; + } + /* window geoms */ + mh = (n <= nmaster) ? wah / (n > 0 ? n : 1) : wah / nmaster; + mw = (n <= nmaster) ? waw : mwfact * waw; + th = (n > nmaster) ? wah / (n - nmaster) : 0; + if(n > nmaster && th < bh) + th = wah; + + nx = wax; + ny = way; + + for(i = 0, c = nexttiled(clients); c; c = nexttiled(c->next), i++) { + if (cpt!=-1 && i>=cpt) { + nw = waw/(t-n) - c->border*2; + nx = (nw+c->border*2)*cptn; + cptn++; + ny = wah + way; + nh = cpth-(c->border*2); + if (nh<c->border) nh = cpth; + resize(c, nx, ny, nw, nh, RESIZEHINTS); + continue; + } + c->ismax = False; + if(i < nmaster) { /* master */ + ny = way + i * mh; + nw = mw - 2 * c->border; + nh = mh; + if(i + 1 == (n < nmaster ? n : nmaster)) /* remainder */ + nh = wah - mh * i; + nh -= 2 * c->border; + } + else { /* tile window */ + if(i == nmaster) { + ny = way; + nx += mw; + } + nw = waw - mw - 2 * c->border; + if(i + 1 == n) /* remainder */ + nh = (way + wah) - ny - 2 * c->border; + else + nh = th - 2 * c->border; + } + resize(c, nx, ny, nw, nh, RESIZEHINTS); + if(n > nmaster && th != wah) + ny += nh + 2 * c->border; + } + wah += cpth; +} + +void +setnmaster(const char *arg) { + int i; + + if(!arg) + nmaster = NMASTER; + else { + i = atoi(arg); + if((nmaster + i) < 1 || wah / (nmaster + i) <= 2 * BORDERPX) + return; + nmaster += i; + } + if(sel) + arrange(); +} +#endif + +#ifdef NCOLS +#ifdef NROWS +unsigned int ncols = NCOLS; +unsigned int nrows = NROWS; + +void +setncols(const char *arg) { + int i; + + if(!arg) + i = NCOLS; + else if(arg[0] != '+' && arg[0] != '-') + i = atoi(arg); + else + i = ncols + atoi(arg); + + if((i < 1) || (i >= 1 && waw / i <= 2 * BORDERPX)) + return; + ncols = i; + + if(sel) + arrange(); +} + +void +setnrows(const char *arg) { + int i; + + if(!arg) + i = NROWS; + else if(arg[0] != '+' && arg[0] != '-') + i = atoi(arg); + else + i = nrows + atoi(arg); + + if(i < 1 || wah <= 2 * BORDERPX * i) + return; + nrows = i; + + if(sel) + arrange(); +} + +void +tilecols(void) { + unsigned int i, n, nx, ny, nw, nh, mw, mh, tw, th, tw1, cols, rows, rows1, t; + int cpth = 0, cptn = 0; + Client *c; + + domwfact = dozoom = True; + + for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next)) { + // if (cpt!=-1 && n>=cpt && sel == c) { n=cpt; zoom(NULL); break; } + n++; + } + + /* calculate correct number of rows */ + if(ncols > 0 && n - nmaster > nrows * ncols) + rows = (n - nmaster) / ncols + ((n - nmaster) % ncols ? 1 : 0); + else + rows = nrows; + + t = n; + if (cpt!=-1&&n>cpt) { + n = cpt; + cpth = Cpth; + wah -= cpth; + } + + /* window geoms */ + mh = (n <= nmaster) ? wah / (n > 0 ? n : 1) : wah / nmaster; + + if (nmaster == 0) { + mh = mw = 0; + } + else if (n <= nmaster) { + mh = wah / (n > 0 ? n : 1); + mw = waw; + } + else { + mh = wah / nmaster; + mw = mwfact * waw; + } + + if(rows == 0 || n <= nmaster + rows) { + rows1 = n > nmaster ? n - nmaster : 1; + tw = tw1 = waw - mw; + th = wah / rows1; + } + else { + rows1 = 1 + (n - nmaster - 1) % rows; + cols = (n - nmaster) / rows + ((n - nmaster) % rows ? 1 : 0); + tw = (waw - mw) / cols; + tw1 = waw - mw - (cols - 1) * tw; + th = wah / rows; + } + + nx = wax; + ny = way; + + for(i = 0, c = nexttiled(clients); c; c = nexttiled(c->next), i++) { +#if 0 + if (cpt!=-1 && i>=cpt) { + ban(c); + continue; + } +#endif + if (cpt!=-1 && i>=cpt) { + nw = waw/(t-n) - c->border*2; + nx = (nw+c->border*2)*cptn; + cptn++; + ny = wah + way; + nh = cpth-(c->border*2); + if (nh<c->border) nh = cpth; + resize(c, nx, ny, nw, nh, RESIZEHINTS); + continue; + } + c->ismax = False; + if(i < nmaster) { /* master column */ + ny = way + i * mh; + nw = mw - 2 * c->border; + nh = mh - 2 * c->border; + if(i == 0) + nh += wah - mh * (n < nmaster ? n : nmaster); + nh = mh; + if(i + 1 == (n < nmaster ? n : nmaster)) /* remainder */ + nh = wah - mh * i; + nh -= 2 * c->border; + } + else if(i < nmaster + rows1) { /* first stack column */ + if(i == nmaster) { /* initialise */ + ny = way; + nx += mw; + nh = wah - 2*c->border - (rows1 - 1) * th; + } else + nh = th - 2 * c->border; + nw = tw1 - 2 * c->border; + } + else { /* successive stack columns - rows > 0 if we reach here */ + if((i - nmaster - rows1) % rows == 0) { /* reinitialise */ + ny = way; + nx += nw + 2 * c-> border; + nh = wah - 2*c->border - (rows - 1) * th; + } + else { + nh = th - 2 * c->border; + } + nw = tw - 2 * c->border; + } + resize(c, nx, ny, nw, nh, RESIZEHINTS); + ny += nh + 2 * c->border; + } + wah += cpth; +} +#endif +#endif + +/* EXPERIMENTAL: + * + * Work in progress stuff + */ +#ifdef EXPERIMENTAL +void +swapclients(Client *c1, Client *c2) +{ + Client *tmp; + + if (c2 == NULL) { + c1->prev->next = NULL; + c1->next = clients; + clients = c1; + return; + } + + tmp = c1->next; + c1->next = c2->next; + c2->next = (tmp == c2 ? c1 : tmp); + + tmp = c2->prev; + c2->prev = c1->prev; + c1->prev = (tmp == c1 ? c2 : tmp ); + + if(c1->next) + c1->next->prev = c1; + + if(c1->prev) + c1->prev->next = c1; + + if(c2->next) + c2->next->prev = c2; + + if(c2->prev) + c2->prev->next = c2; + + //if(clients == c1) + // clients = c2; +} + +void +swap(const char *arg) { + int i; + + if(sel) { + if (*arg=='+') + swapclients(sel, sel->next); + else + if (*arg=='-') + swapclients(sel, sel->prev); + arrange(); + } +} +#endif + +#ifdef EXPERIMENTAL +void +dntile(void) { + unsigned int i, n, nx, ny, nw, nh, mw, mh, th, inc; + Client *c; + + for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next)) + n++; + if (cpt!=-1 && n>cpt) n = cpt; + + /* dynamic nmaster */ + if (n<5) inc = 0; + else if (n<7) inc = 1; + else inc = 2; + nmaster+=inc; + + /* window geoms */ + mh = (n <= nmaster) ? wah / (n > 0 ? n : 1) : wah / nmaster; + mw = (n <= nmaster) ? waw : mwfact * waw; + th = (n > nmaster) ? wah / (n - nmaster) : 0; + if(n > nmaster && th < bh) + th = wah; + + nx = wax; + ny = way; + for(i = 0, c = nexttiled(clients); c; c = nexttiled(c->next), i++) { + if (cpt!=-1 && i>=cpt) { + ban(c); + continue; + } + c->ismax = False; + if(i < nmaster) { /* master */ + ny = way + i * mh; + nw = mw - 2 * c->border; + nh = mh; + if(i + 1 == (n < nmaster ? n : nmaster)) /* remainder */ + nh = wah - mh * i; + nh -= 2 * c->border; + } + else { /* tile window */ + if(i == nmaster) { + ny = way; + nx += mw; + } + nw = waw - mw - 2 * c->border; + if(i + 1 == n) /* remainder */ + nh = (way + wah) - ny - 2 * c->border; + else + nh = th - 2 * c->border; + } + resize(c, nx, ny, nw, nh, False); + if(n > nmaster && th != wah) + ny += nh + 2 * c->border; + } + nmaster -= inc; +} +#endif diff --git a/dwm.suckless.org/patches/historical/nmaster/nmaster.c b/dwm.suckless.org/patches/historical/nmaster/nmaster.c new file mode 100644 index 00000000..eab55103 --- /dev/null +++ b/dwm.suckless.org/patches/historical/nmaster/nmaster.c _AT_@ -0,0 +1,343 @@ +#if 0 + +TITLE + + subject: ntile/nmaster/tilecols layouts with cpt patch included for dwm-4.6 + author: pancake <youterm.com> * + + +NOTES + + Remember to append a ISTILE line like that one in your config.h: + +#define ISTILE isarrange(tile) || isarrange(ntile) || isarrange(dntile) || isarrange(tilecols) + + +INSTALLATION + + Copy this file into the dwm root directory (the one) and follow the instructions + related into the configuration section. + + +CONFIGURATION + +You should modify your config.h to include "nmaster.c" from it after +setting the NMASTER, NCOLS and NROWS macro definitions. + + + *** NMASTER *** + +#define NMASTER 1 +#include "nmaster.c" + +Layout layouts[] = { + { "-|=", ntile }, /* first entry is default */ +.. + { MODKEY|ShiftMask, XK_j, setnmaster, "+1"}, \ + { MODKEY|ShiftMask, XK_k, setnmaster, "-1"}, \ + + + + *** TILECOLS *** + +#define NCOLS 2 +#define NROWS 1 +#include "nmaster.c" + +Layout layouts[] = { + { "E|]", tilecols }, /* first entry is default */ +.. + { MODKEY|ShiftMask, XK_j, setnrows, "+1" }, \ + { MODKEY|ShiftMask, XK_k, setnrows, "-1" }, \ + { MODKEY|ShiftMask, XK_l, setncols, "+1" }, \ + { MODKEY|ShiftMask, XK_h, setncols, "-1" }, \ + + + *** CLIENTS PER TAG *** + + Valid values are: + -1 - show all clients + 0 - show no clients + >0 - show N clients + + Example configuration: + { MODKEY|ShiftMask, XK_q, clientspertag, "0" }, \ + { MODKEY, XK_q, clientspertag, "^1" }, \ + { MODKEY, XK_w, clientspertag, "^2" }, \ + { MODKEY, XK_e, clientspertag, "^3" }, \ + +#endif + +int cpt = -1; +void clientspertag(const char *arg) { + if (arg[0]=='^') { + if (cpt==-1) cpt = atoi(arg+1); + else cpt = -1; + } else cpt = atoi(arg); + arrange(); +} + +#ifdef NMASTER +int nmaster = NMASTER; +void +ntile(void) { + unsigned int i, n, nx, ny, nw, nh, mw, mh, th; + Client *c; + + for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next)) + n++; + + if (cpt!=-1 && n>cpt) n = cpt; + + /* window geoms */ + mh = (n <= nmaster) ? wah / (n > 0 ? n : 1) : wah / nmaster; + mw = (n <= nmaster) ? waw : mwfact * waw; + th = (n > nmaster) ? wah / (n - nmaster) : 0; + if(n > nmaster && th < bh) + th = wah; + + nx = wax; + ny = way; + for(i = 0, c = nexttiled(clients); c; c = nexttiled(c->next), i++) { + if (cpt!=-1 && i>=cpt) { + ban(c); + continue; + } + c->ismax = False; + if(i < nmaster) { /* master */ + ny = way + i * mh; + nw = mw - 2 * c->border; + nh = mh; + if(i + 1 == (n < nmaster ? n : nmaster)) /* remainder */ + nh = wah - mh * i; + nh -= 2 * c->border; + } + else { /* tile window */ + if(i == nmaster) { + ny = way; + nx += mw; + } + nw = waw - mw - 2 * c->border; + if(i + 1 == n) /* remainder */ + nh = (way + wah) - ny - 2 * c->border; + else + nh = th - 2 * c->border; + } + resize(c, nx, ny, nw, nh, False); + if(n > nmaster && th != wah) + ny += nh + 2 * c->border; + } +} + +void +dntile(void) { + unsigned int i, n, nx, ny, nw, nh, mw, mh, th, inc; + Client *c; + + for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next)) + n++; + if (cpt!=-1 && n>cpt) n = cpt; + + /* dynamic nmaster */ + if (n<5) inc = 0; + else if (n<7) inc = 1; + else inc = 2; + nmaster+=inc; + + /* window geoms */ + mh = (n <= nmaster) ? wah / (n > 0 ? n : 1) : wah / nmaster; + mw = (n <= nmaster) ? waw : mwfact * waw; + th = (n > nmaster) ? wah / (n - nmaster) : 0; + if(n > nmaster && th < bh) + th = wah; + + nx = wax; + ny = way; + for(i = 0, c = nexttiled(clients); c; c = nexttiled(c->next), i++) { + if (cpt!=-1 && i>=cpt) { + ban(c); + continue; + } + c->ismax = False; + if(i < nmaster) { /* master */ + ny = way + i * mh; + nw = mw - 2 * c->border; + nh = mh; + if(i + 1 == (n < nmaster ? n : nmaster)) /* remainder */ + nh = wah - mh * i; + nh -= 2 * c->border; + } + else { /* tile window */ + if(i == nmaster) { + ny = way; + nx += mw; + } + nw = waw - mw - 2 * c->border; + if(i + 1 == n) /* remainder */ + nh = (way + wah) - ny - 2 * c->border; + else + nh = th - 2 * c->border; + } + resize(c, nx, ny, nw, nh, False); + if(n > nmaster && th != wah) + ny += nh + 2 * c->border; + } + nmaster-=inc; +} + +void +setnmaster(const char *arg) { + int i; + + if(!isarrange(ntile)&&!isarrange(dntile)) + return; + if(!arg) + nmaster = NMASTER; + else { + i = atoi(arg); + if((nmaster + i) < 1 || wah / (nmaster + i) <= 2 * BORDERPX) + return; + nmaster += i; + } + if(sel) + arrange(); +} +#endif + +#ifdef NCOLS +#ifdef NROWS +unsigned int ncols = NCOLS; +unsigned int nrows = NROWS; + +void +setncols(const char *arg) { + int i; + + if(!isarrange(tile)) + return; + if(!arg) + i = NCOLS; + else if(arg[0] != '+' && arg[0] != '-') + i = atoi(arg); + else + i = ncols + atoi(arg); + + if((i < 1) || (i >= 1 && waw / i <= 2 * BORDERPX)) + return; + ncols = i; + + if(sel) + arrange(); +} + +void +setnrows(const char *arg) { + int i; + + if(!isarrange(tile)) + return; + if(!arg) + i = NROWS; + else if(arg[0] != '+' && arg[0] != '-') + i = atoi(arg); + else + i = nrows + atoi(arg); + + if(i < 1 || wah <= 2 * BORDERPX * i) + return; + nrows = i; + + if(sel) + arrange(); +} + +void +tilecols(void) { + unsigned int i, n, nx, ny, nw, nh, mw, mh, tw, th, tw1, cols, rows, rows1; + Client *c; + + for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next)) + n++; + /* calculate correct number of rows */ + if(ncols > 0 && n - nmaster > nrows * ncols) + rows = (n - nmaster) / ncols + ((n - nmaster) % ncols ? 1 : 0); + else + rows = nrows; + + if (cpt!=-1 && n>cpt) n = cpt; + + /* window geoms */ + mh = (n <= nmaster) ? wah / (n > 0 ? n : 1) : wah / nmaster; + + if (nmaster == 0) { + mh = mw = 0; + } + else if (n <= nmaster) { + mh = wah / (n > 0 ? n : 1); + mw = waw; + } + else { + mh = wah / nmaster; + mw = mwfact * waw; + } + + if(rows == 0 || n <= nmaster + rows) { + rows1 = n > nmaster ? n - nmaster : 1; + tw = tw1 = waw - mw; + th = wah / rows1; + } + else { + rows1 = 1 + (n - nmaster - 1) % rows; + cols = (n - nmaster) / rows + ((n - nmaster) % rows ? 1 : 0); + tw = (waw - mw) / cols; + tw1 = waw - mw - (cols - 1) * tw; + th = wah / rows; + } + + nx = wax; + ny = way; + + for(i = 0, c = nexttiled(clients); c; c = nexttiled(c->next), i++) { + if (cpt!=-1 && i>=cpt) { + ban(c); + continue; + } + c->ismax = False; + if(i < nmaster) { /* master column */ + ny = way + i * mh; + nw = mw - 2 * c->border; + nh = mh - 2 * c->border; + if(i == 0) + nh += wah - mh * (n < nmaster ? n : nmaster); + //nh = mh; + if(i + 1 == (n < nmaster ? n : nmaster)) /* remainder */ + nh = wah - mh * i; + nh -= 2 * c->border; + } + else if(i < nmaster + rows1) { /* first stack column */ + if(i == nmaster) { /* initialise */ + ny = way; + nx += mw; + nh = wah - 2*c->border - (rows1 - 1) * th; + } else + nh = th - 2 * c->border; + nw = tw1 - 2 * c->border; + } + else { /* successive stack columns - rows > 0 if we reach here */ + if((i - nmaster - rows1) % rows == 0) { /* reinitialise */ + ny = way; + nx += nw + 2 * c-> border; + nh = wah - 2*c->border - (rows - 1) * th; + } + else { + nh = th - 2 * c->border; + } + nw = tw - 2 * c->border; + } + resize(c, nx, ny, nw, nh, False); + ny += nh + 2 * c->border; + } +} +#endif +#endif + diff --git a/dwm.suckless.org/patches/historical/raiselower/index.md b/dwm.suckless.org/patches/historical/raiselower/index.md index c68b39cc..b46f3cf7 100644 --- a/dwm.suckless.org/patches/historical/raiselower/index.md +++ b/dwm.suckless.org/patches/historical/raiselower/index.md _AT_@ -1,12 +1,15 @@ -# RAISELOWER - -## Description +Raiselower +========== +Description +----------- This patch enables you to raise or lower the selected floating window. -## Download -* None anymore, the last download location was: http://www.e-jc.de/dwm/5.0/current/dwm-5.0-raiselower.diff - -## Author +Download +-------- +* None anymore, the last download location was: +http://www.e-jc.de/dwm/5.0/current/dwm-5.0-raiselower.diff +Author +------ * Jan Christoph Ebersbach - <jceb_AT_e-jc.de> diff --git a/dwm.suckless.org/patches/historical/taglayouts/index.md b/dwm.suckless.org/patches/historical/taglayouts/index.md index cf1ba68b..e0fcb1ac 100644 --- a/dwm.suckless.org/patches/historical/taglayouts/index.md +++ b/dwm.suckless.org/patches/historical/taglayouts/index.md _AT_@ -1,20 +1,23 @@ -# taglayouts +taglayouts +========== -## Description +Description +----------- +This patch enables one layout per tag in contrast of one layout for all tags. - +A more general approach is the [pertag patch](/patches/pertag). -This patch enables one layout per tag in contrast of one layout for all tags. - A more general approach is the [pertag patch](/patches/pertag). - -## Download +Download +-------- * None anymore -## Known Bugs - +Known Bugs +---------- * If you had selected multiple tags and try to get back to them with the - viewprevtag method, keep in mind that the layout of the FIRST tag is used, - that was previously selected. - -## Author + viewprevtag method, keep in mind that the layout of the FIRST tag is used, + that was previously selected. +Author +------ * http://na.srck.net/dwm * Updated by Jan Christoph Ebersbach - <jceb_AT_e-jc.de> diff --git a/dwm.suckless.org/patches/historical/tilemovemouse/index.md b/dwm.suckless.org/patches/historical/tilemovemouse/index.md index d9247eed..6283aae3 100644 --- a/dwm.suckless.org/patches/historical/tilemovemouse/index.md +++ b/dwm.suckless.org/patches/historical/tilemovemouse/index.md _AT_@ -1,4 +1,4 @@ -MOVE TILED WINDOW WITH MOUSE +Move tiled window with mouse ============================ Description _AT_@ -11,10 +11,6 @@ floating it. Reordering windows this way is fun. { ClkClientWin, MODKEY, Button1, tilemovemouse, {0} }, }; - Download -------- -[tilemovemouse](//lists.suckless.org/dwm/0903/7773.html) - - -Last update: 2009-03-20 +* [tilemovemouse](//lists.suckless.org/dwm/0903/7773.html) diff --git a/dwm.suckless.org/patches/historical/workspaces/index.md b/dwm.suckless.org/patches/historical/workspaces/index.md index a667bcfb..2bf880d8 100644 --- a/dwm.suckless.org/patches/historical/workspaces/index.md +++ b/dwm.suckless.org/patches/historical/workspaces/index.md _AT_@ -1,14 +1,12 @@ Workspaces ========== - -*by [Jesus Galan (yiyus)](mailto:yiyu dot jgl at gmail>) (aug 30 21:41:42 CEST 2008)* - -Adds to dwm the functionality of remembering tagset, layout and mfact for a given number of workspaces. You can also define preconfigured workspaces. +Adds to dwm the functionality of remembering tagset, layout and mfact for a +given number of workspaces. You can also define preconfigured workspaces. Code ---- - -Insert this code before your keys definitions in config.h or in an included .c file: +Insert this code before your keys definitions in config.h or in an included .c +file: typedef struct Workspace Workspace; struct Workspace { _AT_@ -65,12 +63,15 @@ Or mouse buttons: Comments -------- +It is so easy to change the viewed tags, layout and mfact in dwm than having +artifacts to remember them are not necessary, this patch is just an example of +how it could be implemented, but it won't be updated for future releases. -It is so easy to change the viewed tags, layout and mfact in dwm than having artifacts to remember them are not necessary, this patch is just an example of how it could be implemented, but it won't be updated for future releases. - -It should be easy to add to the workspaces the possibility to remember bar position too. +It should be easy to add to the workspaces the possibility to remember bar +position too. -It is not necessary to define all your workspaces (or any of them). You can perfectly do: +It is not necessary to define all your workspaces (or any of them). You can +perfectly do: static Workspace workspaces[16] = { /* tagset layout fact */ _AT_@ -82,3 +83,6 @@ or: static Workspace workspaces[16]; +Authors +------- +* [Jesus Galan (yiyus)](mailto:yiyu dot jgl at gmail>) (aug 30 21:41:42 CEST 2008)* diff --git a/dwm.suckless.org/patches/historical/xft/index.md b/dwm.suckless.org/patches/historical/xft/index.md index 0d3545ff..b8916991 100644 --- a/dwm.suckless.org/patches/historical/xft/index.md +++ b/dwm.suckless.org/patches/historical/xft/index.md _AT_@ -3,18 +3,18 @@ xft Description ----------- - The `xft` patch patch implements Xft. This allows users to utilize the UTF8 character set. Look at the patch below which is more advance. The `xft-with-fallback-font` patch adds Xft and fallback-font support to dwm. -This patch was built on top of the [Xft patch written by -Quentin](//lists.suckless.org/dev/1311/18279.html). With fallback font -support, multiple fonts can now be specified in config.h which are used to -render characters not present in the first font. If none of the user-specified -fonts contains a given character, this patch attempts to automatically fallback -to whatever suitable font it can find on the host system. -**NOTE: This is enabled by default when you are using the latest dwm-git.** +This patch was built on top of the +[Xft patch written by Quentin](//lists.suckless.org/dev/1311/18279.html). With +fallback font support, multiple fonts can now be specified in config.h which +are used to render characters not present in the first font. If none of the +user-specified fonts contains a given character, this patch attempts to +automatically fallback to whatever suitable font it can find on the host +system. **NOTE: This is enabled by default when you are using the latest +dwm-git.** With this patch, the "font" variable in config.h is superseded by the "fonts" variable which is a priority-ordered list of fonts that should be used to _AT_@ -35,10 +35,9 @@ Download * [dwm-6.0-xft.diff](dwm-6.0-xft.diff) (6.6k) (16 May 2012) * memory leak fixed and improved implementation. * include config.def.h and config.mk changes. - * [dwm-6.1-xft-with-fallback-font.diff](dwm-6.1-xft-with-fallback-font.diff) (20k) -Author ------- +Authors +------- * Lee Fallat (lf94)<ircsurfer33_AT_gmail.com> * [Eric Pruitt](https://github.com/ericpruitt/) diff --git a/dwm.suckless.org/patches/horizgrid/index.md b/dwm.suckless.org/patches/horizgrid/index.md index 86c479ea..ca84e89c 100644 --- a/dwm.suckless.org/patches/horizgrid/index.md +++ b/dwm.suckless.org/patches/horizgrid/index.md _AT_@ -3,11 +3,13 @@ horizontal grid Description ----------- -This patch is a variant of [gapless_grid](../gapless_grid/). It arranges windows in a grid pattern in which every window is roughly the same size, adjusted such that there are no gaps. However, this layout arranges the windows in a horizontal grid, rather than a vertical grid. +This patch is a variant of [gapless\_grid](../gapless_grid/). It arranges +windows in a grid pattern in which every window is roughly the same size, +adjusted such that there are no gaps. However, this layout arranges the windows +in a horizontal grid, rather than a vertical grid. Horizontal Grid Layout ---------------------- - horizgrid (###) +--------+--------+ | | | _AT_@ -28,10 +30,8 @@ Horizontal Grid Layout Download -------- - * [dwm-horizgrid-6.1.diff](dwm-horizgrid-6.1.diff) (20160108) Authors ------- - * Marshall Mason - `<marshallmason2_AT_gmail.com>` diff --git a/dwm.suckless.org/patches/index.md b/dwm.suckless.org/patches/index.md index bfe0d3e2..b6bd8095 100644 --- a/dwm.suckless.org/patches/index.md +++ b/dwm.suckless.org/patches/index.md _AT_@ -1,5 +1,4 @@ patches ======= - For instructions on how to submit and format patches, take a look at the [hacking guidelines](//suckless.org/hacking). diff --git a/dwm.suckless.org/patches/ispermanent/index.md b/dwm.suckless.org/patches/ispermanent/index.md index 8891b30f..51738f10 100644 --- a/dwm.suckless.org/patches/ispermanent/index.md +++ b/dwm.suckless.org/patches/ispermanent/index.md _AT_@ -3,16 +3,13 @@ ispermanent Description ----------- - Property for clients to avoid accidental termination by `killclient` for sticky windows. Download -------- - * [dwm-ispermanent-6.0.diff](dwm-ispermanent-6.0.diff) -Author ------- - +Authors +------- * [Chris Down](https://chrisdown.name) (cdown) <chris_AT_chrisdown.name> diff --git a/dwm.suckless.org/patches/keycodes/index.md b/dwm.suckless.org/patches/keycodes/index.md index 39a0f12a..03782f6c 100644 --- a/dwm.suckless.org/patches/keycodes/index.md +++ b/dwm.suckless.org/patches/keycodes/index.md _AT_@ -1,14 +1,14 @@ Keycodes ======== With this patch, handling key input is done with keycodes instead of keysyms. -This way, input is independent from keyboard layout (you can get keycodes -using xev to adapt config.h) +This way, input is independent from keyboard layout (you can get keycodes using +xev to adapt config.h) Download -------- * [dwm-keycodes-6.1.diff](dwm-keycodes-6.1.diff) * [dwm-keycodes-20170511-ceac8c9.diff](dwm-keycodes-20170511-ceac8c9.diff) -Author ------- +Authors +------- * Quentin Rameau <quinq_AT_fifth.space> diff --git a/dwm.suckless.org/patches/keymodes/index.md b/dwm.suckless.org/patches/keymodes/index.md index 4ac302e3..2350506e 100644 --- a/dwm.suckless.org/patches/keymodes/index.md +++ b/dwm.suckless.org/patches/keymodes/index.md _AT_@ -1,50 +1,67 @@ -# keymodes - -## Description +keymodes +======== +Description +----------- This patch provides key modes (like in Vim). There are two key modes: -1. `COMMANDMODE`: In this mode any key is grabbed and only the registered command keys have any effect. -2. `INSERTMODE`: This is the normal key mode, in which the original key bindings of dwm and applications are effective and text can be entered. +1. `COMMANDMODE`: In this mode any key is grabbed and only the registered + command keys have any effect. +2. `INSERTMODE`: This is the normal key mode, in which the original key + bindings of dwm and applications are effective and text can be entered. -With key modes you can use any key binding for window management without risking conflicts with existing key bindings in applications or have a Vim-style dwm. +With key modes you can use any key binding for window management without +risking conflicts with existing key bindings in applications or have a +Vim-style dwm. There are two different patches: * keymodes: the minimal patch -* vim-keymodes: This patch tries to emulate the key bindings of Vim. Therefor it includes additional functions, which depend on the [flextile patch](../flextile/). - - -## Configuration - -1. Download the favoured patch and apply it according to the [general instructions](.). If you choose vim-keymodes you will have to apply the [flextile patch](../flextile/) first. - -2. Transfer the changes made by the patch in `config.def.h` to your `config.h`, if needed; please see the patch file for details. - -3. Verify the following lines in the aforementioned arrays; the key bindings are set in reference to a german keyboard layout. The entries in the `cmdkeys` array are defined like those in the original `keys` array of dwm and take precedence over the key bindings defined in the `commands` array. The modifier and keysym definitions in the `commands` array are themselves arrays with four entries, whereas the first entry in the modifier array corresponds to the first entry in the keysym array and so forth. You can find an example configuration [here][dwm-keymodes-vim-config.h]. - - static Key keys[] = { - /* modifier key function argument */ - { MODKEY, XK_Escape, setkeymode, {.ui = COMMANDMODE} }, - - static Key cmdkeys[] = { - /* modifier keys function argument */ - { 0, XK_Escape, clearcmd, {0} }, - { ControlMask, XK_c, clearcmd, {0} }, - { 0, XK_i, setkeymode, {.ui = INSERTMODE} }, - }; - static Command commands[] = { - /* modifier (4 keys) keysyms (4 keys) function argument */ - ... - }; - - -## Usage - -With this patch dwm starts in `COMMANDMODE` and you can use the key bindings as defined in the `commands` array in `config.h`. Press `Escape` or `CTRL+c` to abort a command input and press `i` (in the default configuration) to enter `INSERTMODE` and use dwm normally with the key bindings defined in the `keys` array, navigate in applications and insert text. To get from `INSERTMODE` to `COMMANDMODE` press `ALT+Escape` (in the default configuration). - - -## Download - +* vim-keymodes: This patch tries to emulate the key bindings of Vim. Therefor + it includes additional functions, which depend on the + [flextile patch](../flextile/). + +Configuration +------------- +1. Download the favoured patch and apply it according to the + [general instructions](.). If you choose vim-keymodes you will have to apply + the [flextile patch](../flextile/) first. +2. Transfer the changes made by the patch in `config.def.h` to your `config.h`, + if needed; please see the patch file for details. +3. Verify the following lines in the aforementioned arrays; the key bindings + are set in reference to a german keyboard layout. The entries in the `cmdkeys` + array are defined like those in the original `keys` array of dwm and take + precedence over the key bindings defined in the `commands` array. The modifier + and keysym definitions in the `commands` array are themselves arrays with four + entries, whereas the first entry in the modifier array corresponds to the first + entry in the keysym array and so forth. You can find an example configuration + [here][dwm-keymodes-vim-config.h]. + + static Key keys[] = { + /* modifier key function argument */ + { MODKEY, XK_Escape, setkeymode, {.ui = COMMANDMODE} }, + + static Key cmdkeys[] = { + /* modifier keys function argument */ + { 0, XK_Escape, clearcmd, {0} }, + { ControlMask, XK_c, clearcmd, {0} }, + { 0, XK_i, setkeymode, {.ui = INSERTMODE} }, + }; + static Command commands[] = { + /* modifier (4 keys) keysyms (4 keys) function argument */ + ... + }; + +Usage +----- +With this patch dwm starts in `COMMANDMODE` and you can use the key bindings as +defined in the `commands` array in `config.h`. Press `Escape` or `CTRL+c` to +abort a command input and press `i` (in the default configuration) to enter +`INSERTMODE` and use dwm normally with the key bindings defined in the `keys` +array, navigate in applications and insert text. To get from `INSERTMODE` to +`COMMANDMODE` press `ALT+Escape` (in the default configuration). + +Download +-------- * [dwm-keymodes-5.8.2.diff](dwm-keymodes-5.8.2.diff) (20100611, joten (at) freenet (dot) de) * [dwm-keymodes-vim-5.8.2.diff](dwm-keymodes-vim-5.8.2.diff) (20100611, joten (at) freenet (dot) de) diff --git a/dwm.suckless.org/patches/keypressrelease/index.md b/dwm.suckless.org/patches/keypressrelease/index.md index aa5ccd71..2004c28c 100644 --- a/dwm.suckless.org/patches/keypressrelease/index.md +++ b/dwm.suckless.org/patches/keypressrelease/index.md _AT_@ -3,36 +3,36 @@ keypressrelease Description ----------- +This patch lets you specify whether a key binding should be executed at the +_KeyPress_ or _KeyRelease_ event. Executing on _KeyRelease_ fixes bugs such as +`scrot -s` failing to execute from a key binding due to keys not being released +in time [1], [2]. -This patch lets you specify whether a key binding should be executed at the _KeyPress_ or _KeyRelease_ event. -Executing on _KeyRelease_ fixes bugs such as `scrot -s` failing to execute from a key binding due to keys not being released in time [1][2]. - -Note that the new parameter must be added to all non-standard key bindings manually after patching. +Note that the new parameter must be added to all non-standard key bindings +manually after patching. Usage ----- - A working `scrot -s` key binding: static const char *scrot[] = { "scrot", "-s", NULL }; ... { KeyRelease, 0, XK_Print, spawn, {.v = scrot } }, -Or to only display the bar while the toggle key is held down (requires that it is hidden to start with), add: +Or to only display the bar while the toggle key is held down (requires that it +is hidden to start with), add: { KeyRelease, MODKEY, XK_b, togglebar, {0} }, Download -------- - * [dwm-keypressrelease-6.0.diff](dwm-keypressrelease-6.0.diff) Author ------ - * Niklas Høj - `<niklas at hoej dot me>` --- -[1] Error produced: "giblib error: couldn't grab keyboard: Resource temporarily unavailable" -[2] Old discussion thread: [//lists.suckless.org/dev/1108/9185.html](//lists.suckless.org/dev/1108/9185.html) +[1]: Error produced: "giblib error: couldn't grab keyboard: Resource temporarily unavailable" +[2]: Old discussion thread: [//lists.suckless.org/dev/1108/9185.html](//lists.suckless.org/dev/1108/9185.html) diff --git a/dwm.suckless.org/patches/killunsel/index.md b/dwm.suckless.org/patches/killunsel/index.md index ab070628..e65a7e08 100644 --- a/dwm.suckless.org/patches/killunsel/index.md +++ b/dwm.suckless.org/patches/killunsel/index.md _AT_@ -3,7 +3,6 @@ killunsel Description ----------- - Kills all visible clients that are unselected. That is, after running `killunsel`, only the selected client will remain. The rest will not only be not visible, but they will have been killed. _AT_@ -13,11 +12,9 @@ per-"tab") in vim. Download -------- - * [dwm-killunsel-ceac8c91ff.diff](dwm-killunsel-ceac8c91ff.diff) (1.7k) (20170728) Author ------ - * [Chris Down](https://chrisdown.name) (cdown) <chris_AT_chrisdown.name> diff --git a/dwm.suckless.org/patches/leftlayout/index.md b/dwm.suckless.org/patches/leftlayout/index.md index 213640dd..399b5fdf 100644 --- a/dwm.suckless.org/patches/leftlayout/index.md +++ b/dwm.suckless.org/patches/leftlayout/index.md _AT_@ -1,13 +1,14 @@ -# leftlayout - -## Description +leftlayout +========== +Description +----------- Moves the layout symbol in the status bar to the left hand side. -## Download - +Download +-------- * [dwm-leftlayout-20180524-c8e9479.diff](dwm-leftlayout-20180524-c8e9479.diff) (24.05.2018) -## Author - +Author +------ * cd diff --git a/dwm.suckless.org/patches/mark/index.md b/dwm.suckless.org/patches/mark/index.md index 82e3f551..024a1ea7 100644 --- a/dwm.suckless.org/patches/mark/index.md +++ b/dwm.suckless.org/patches/mark/index.md _AT_@ -1,7 +1,8 @@ -# mark - -## Description +mark +==== +Description +----------- This patch provides an mechanism to easily jump between any 2 clients, or to swap any 2 clients through shortcuts by introcuding mark. The mark is global, and only one mark is allowed at the same time. The marked client is _AT_@ -13,8 +14,8 @@ This patch adds 3 functions to dwm: * swapclient - swap focused client with marked client * swapfocus - swap focus with mark. -## Configuration - +Configuration +------------- static const char normmarkcolor[] = "#775500"; /*border color for marked client*/ static const char selmarkcolor[] = "#775577"; /*border color for marked client on focus*/ _AT_@ -25,18 +26,16 @@ This patch adds 3 functions to dwm: Some ideas for combinations of key mappings: -* togglemark x2 - clear the mark -* swapclient, swapfocus - shift the client to another client frame without losing focus -* swapclient, togglemark x2 - swap 2 clients and clear the mark -* swapfocus, togglemark x2 - jump to mark and clear the mark +* togglemark x2 clear the mark +* swapclient, swapfocus shift the client to another client frame without losing + focus +* swapclient, togglemark x2 swap 2 clients and clear the mark +* swapfocus, togglemark x2 jump to mark and clear the mark -## Download -this patch has been revised, it's recommended to use dwm-6.1-mark-new.diff -old behaviours of the patch(dwm-mark-6.1.diff): +Download +-------- +this patch has been revised, it's recommended to use dwm-6.1-mark-new.diff old +behaviours of the patch(dwm-mark-6.1.diff): 1. crashes when using mark features while the marked client has been killed. 2. swapclient clears the mark. _AT_@ -47,5 +46,6 @@ old behaviours of the patch(dwm-mark-6.1.diff): * [dwm-mark-new-6.1.diff](dwm-mark-new-6.1.diff) * [dwm-mark-6.1.diff](dwm-mark-6.1.diff) -## Author +Author +------ * phi <crispyfrog_AT_163.com> diff --git a/dwm.suckless.org/patches/maximize/index.md b/dwm.suckless.org/patches/maximize/index.md index 8f1bc71b..31d23b87 100644 --- a/dwm.suckless.org/patches/maximize/index.md +++ b/dwm.suckless.org/patches/maximize/index.md _AT_@ -18,9 +18,9 @@ Insert the bindings into the keys list. Here is an example: Download -------- -* [dwm-maximize_vert_horz-20160731-56a31dc.diff](dwm-maximize_vert_horz-20160731-56a31dc.diff) -* [dwm-maximize_vert_horz-6.1.diff](dwm-maximize_vert_horz-6.1.diff) (Unclean patch) -* [dwm-maximize_vert_horz-6.0.diff](dwm-maximize_vert_horz-6.0.diff) +* [dwm-maximize\_vert\_horz-20160731-56a31dc.diff](dwm-maximize_vert_horz-20160731-56a31dc.diff) +* [dwm-maximize\_vert\_horz-6.1.diff](dwm-maximize_vert_horz-6.1.diff) (Unclean patch) +* [dwm-maximize\_vert\_horz-6.0.diff](dwm-maximize_vert_horz-6.0.diff) Author ------ diff --git a/dwm.suckless.org/patches/monocle_count/index.md b/dwm.suckless.org/patches/monocle_count/index.md index 95d14395..e3967aa9 100644 --- a/dwm.suckless.org/patches/monocle_count/index.md +++ b/dwm.suckless.org/patches/monocle_count/index.md _AT_@ -9,7 +9,7 @@ current release prints only the number of total clients within the symbol. Download -------- -* [dwm-monocle_count-5.8.2.diff](dwm-monocle_count-5.8.2.diff) +* [dwm-monocle\_count-5.8.2.diff](dwm-monocle_count-5.8.2.diff) Author ------ diff --git a/dwm.suckless.org/patches/moveontagmon/index.md b/dwm.suckless.org/patches/moveontagmon/index.md index f6de2dc4..4fabd62b 100644 --- a/dwm.suckless.org/patches/moveontagmon/index.md +++ b/dwm.suckless.org/patches/moveontagmon/index.md _AT_@ -1,11 +1,14 @@ -# move on tagmon() - -## Description +move on tagmon() +================ +Description +----------- This patch moves floating windows if their monitor gets changed. -## Download +Download +-------- * [dwm-r1437-moveontagmon.diff](dwm-r1437-moveontagmon.diff) -## Author +Author +------ * Apo - a-p_AT_0au.de diff --git a/dwm.suckless.org/patches/moveplace/index.md b/dwm.suckless.org/patches/moveplace/index.md index 2f45e62b..a15310cb 100644 --- a/dwm.suckless.org/patches/moveplace/index.md +++ b/dwm.suckless.org/patches/moveplace/index.md _AT_@ -1,7 +1,8 @@ -# moveplace - -## Description +moveplace +========= +Description +----------- This patch was culled from 'exresize' which in turn is based on 'maximize', 'moveresize', and 'savefloats' _AT_@ -10,22 +11,21 @@ in case that is all you need, or if you want to use this with other patches. Makes a window floating and 1/3rd the height and 1/3rd the width of the screen. -The window is then positioned in either the center, or one of 8 cardinal directions -depending on which key is pressed. +The window is then positioned in either the center, or one of 8 cardinal +directions depending on which key is pressed. MOD+ - qwe asd zxc with `s` being the center. -## Download - +Download +-------- * [dwm-moveplace-20180524-c8e9479.diff](dwm-moveplace-20180524-c8e9479.diff) (24.05.2018) -## Author - +Author +------ * cd * Krister Svanlun - <krister.svanlund-AT-gmail.com> (original exresize) diff --git a/dwm.suckless.org/patches/moveresize/index.md b/dwm.suckless.org/patches/moveresize/index.md index 15c994b0..db3189ee 100644 --- a/dwm.suckless.org/patches/moveresize/index.md +++ b/dwm.suckless.org/patches/moveresize/index.md _AT_@ -11,36 +11,36 @@ Usage 1. Put the following `moveresize()` function somewhere in your `dwm.c`, **after** the line which includes the config.h file: - static void - moveresize(const Arg *arg) - { - XEvent ev; - Monitor *m = selmon; - - if(!(m->sel && arg && arg->v && m->sel->isfloating)) - return; - - resize(m->sel, m->sel->x + ((int *)arg->v)[0], - m->sel->y + ((int *)arg->v)[1], - m->sel->w + ((int *)arg->v)[2], - m->sel->h + ((int *)arg->v)[3], - True); - - while(XCheckMaskEvent(dpy, EnterWindowMask, &ev)); - } + static void + moveresize(const Arg *arg) + { + XEvent ev; + Monitor *m = selmon; + + if(!(m->sel && arg && arg->v && m->sel->isfloating)) + return; + + resize(m->sel, m->sel->x + ((int *)arg->v)[0], + m->sel->y + ((int *)arg->v)[1], + m->sel->w + ((int *)arg->v)[2], + m->sel->h + ((int *)arg->v)[3], + True); + + while(XCheckMaskEvent(dpy, EnterWindowMask, &ev)); + } 2. Insert the bindings into the keys list. Here is an example which uses the arrow keys to move (mod+arrow) or resize (mod+shift+arrow) the selected - client: - - { MODKEY, XK_Down, moveresize, {.v = (int []){ 0, 25, 0, 0 }}}, - { MODKEY, XK_Up, moveresize, {.v = (int []){ 0, -25, 0, 0 }}}, - { MODKEY, XK_Right, moveresize, {.v = (int []){ 25, 0, 0, 0 }}}, - { MODKEY, XK_Left, moveresize, {.v = (int []){ -25, 0, 0, 0 }}}, - { MODKEY|ShiftMask, XK_Down, moveresize, {.v = (int []){ 0, 0, 0, 25 }}}, - { MODKEY|ShiftMask, XK_Up, moveresize, {.v = (int []){ 0, 0, 0, -25 }}}, - { MODKEY|ShiftMask, XK_Right, moveresize, {.v = (int []){ 0, 0, 25, 0 }}}, - { MODKEY|ShiftMask, XK_Left, moveresize, {.v = (int []){ 0, 0, -25, 0 }}}, + client: + + { MODKEY, XK_Down, moveresize, {.v = (int []){ 0, 25, 0, 0 }}}, + { MODKEY, XK_Up, moveresize, {.v = (int []){ 0, -25, 0, 0 }}}, + { MODKEY, XK_Right, moveresize, {.v = (int []){ 25, 0, 0, 0 }}}, + { MODKEY, XK_Left, moveresize, {.v = (int []){ -25, 0, 0, 0 }}}, + { MODKEY|ShiftMask, XK_Down, moveresize, {.v = (int []){ 0, 0, 0, 25 }}}, + { MODKEY|ShiftMask, XK_Up, moveresize, {.v = (int []){ 0, 0, 0, -25 }}}, + { MODKEY|ShiftMask, XK_Right, moveresize, {.v = (int []){ 0, 0, 25, 0 }}}, + { MODKEY|ShiftMask, XK_Left, moveresize, {.v = (int []){ 0, 0, -25, 0 }}}, If you want to automatically toggle the client floating when move/resize, replace the `if()` statement above with this code: diff --git a/dwm.suckless.org/patches/movestack/index.md b/dwm.suckless.org/patches/movestack/index.md index ade84ee4..73cde6ba 100644 --- a/dwm.suckless.org/patches/movestack/index.md +++ b/dwm.suckless.org/patches/movestack/index.md _AT_@ -1,17 +1,19 @@ -# movestack - -## Description +movestack +========= +Description +----------- This plugin allows you to move clients around in the stack and swap them with -the master. It emulates the behavior off mod+shift+j and mod+shift+k in Xmonad. +the master. It emulates the behavior off mod+shift+j and mod+shift+k in Xmonad. movestack(+1) will swap the client with the current focus with the next client. -movestack(-1) will swap the client with the current focus with the previous client. - -## Usage +movestack(-1) will swap the client with the current focus with the previous +client. - 1. Download the patch and apply according to the [general instructions](../). - 2. Include the `movestack.c` source file and add keys that call movestack. - Example from `config.default.h`: +Usage +----- +1. Download the patch and apply according to the [general instructions](../). +2. Include the `movestack.c` source file and add keys that call movestack. + Example from `config.default.h`: #include "movestack.c" static Key keys[] = { _AT_@ -21,19 +23,19 @@ movestack(-1) will swap the client with the current focus with the previous clie { MODKEY|ShiftMask, XK_k, movestack, {.i = -1 } }, ... -## Download - +Download +-------- * [dwm-movestack-6.1.diff](dwm-movestack-6.1.diff) * [dwm-movestack-5.8.2.diff](dwm-movestack-5.8.2.diff) -## Author - +Author +------ * Niki Yoshiuchi - `<`aplusbi_AT_gmail.com`>` -## Contributors - -* Moritz Wilhelmy (fix to work with dwm 5.8) - `<`moritz plus suckless at wzff dot de`>` - -## Note +Contributors +------------ +* Moritz Wilhelmy (fix to work with dwm 5.8) - <moritz plus suckless at wzff dot de> +Note +---- This patch seems to be equivalent to the [push](../push/) patch. diff --git a/dwm.suckless.org/patches/mpdcontrol/index.md b/dwm.suckless.org/patches/mpdcontrol/index.md index 908735f8..7955f2aa 100644 --- a/dwm.suckless.org/patches/mpdcontrol/index.md +++ b/dwm.suckless.org/patches/mpdcontrol/index.md _AT_@ -5,10 +5,9 @@ Description ----------- Control Music Player Daemon via keybinds. -By default `MODKEY + Escape` stops/pauses the current song or plays it depending -on the state of the player. -If the song is a file on disk it pauses it, if it's a stream it stops it since -pause on a stream doesn't make sense. +By default `MODKEY + Escape` stops/pauses the current song or plays it +depending on the state of the player. If the song is a file on disk it pauses +it, if it's a stream it stops it since pause on a stream doesn't make sense. `MODKEY + F1` goes to previous song. `MODKEY + F2` goes to next song. diff --git a/dwm.suckless.org/patches/nametag/index.md b/dwm.suckless.org/patches/nametag/index.md index 3817edcc..0a4ca920 100644 --- a/dwm.suckless.org/patches/nametag/index.md +++ b/dwm.suckless.org/patches/nametag/index.md _AT_@ -3,20 +3,24 @@ nametag Description ----------- +This patch allows you to change the names of dwm's tags while it's running. By +default there is a 16 byte limit on tag names, and it uses dmenu to prompt for +tag names. The 6.1 patch is for the current tip +(cdec9782a1789bd5c3a84772fd59abb9da288597). It works with 6.0 but you should +add -D\_POSIX\_C\_SOURCE=2 to CPPFLAGS or you will get implicit delcaration +warnings for popen and pclose. -This patch allows you to change the names of dwm's tags while it's running. By default there is a 16 byte limit on tag names, and it uses dmenu to prompt for tag names. The 6.1 patch is for the current tip (cdec9782a1789bd5c3a84772fd59abb9da288597). It works with 6.0 but you should add -D_POSIX_C_SOURCE=2 to CPPFLAGS or you will get implicit delcaration warnings for popen and pclose. - -The `prepend` version prepends the tag name with a short string which is used as a format string for `sprintf` which gets the tag number as the argument. By default a tag name "foo" given to tag 5 will become tag "5:foo". +The `prepend` version prepends the tag name with a short string which is used +as a format string for `sprintf` which gets the tag number as the argument. By +default a tag name "foo" given to tag 5 will become tag "5:foo". Download -------- - * [dwm-nametag-6.1.diff](dwm-nametag-6.1.diff) * [dwm-nametag-prepend-6.1.diff](dwm-nametag-prepend-6.1.diff) * [dwm-nametag-5.7.2.diff](dwm-nametag-5.7.2.diff) Author ------ - * Evan Gates (emg) <[evan.gates_AT_gmail.com](mailto:evan.gates_AT_gmail.com)> * prepend version by [Ondřej Grover](mailto:ondrej.grover_AT_gmail.com) diff --git a/dwm.suckless.org/patches/nextprev/index.md b/dwm.suckless.org/patches/nextprev/index.md index 816079fd..f512e595 100644 --- a/dwm.suckless.org/patches/nextprev/index.md +++ b/dwm.suckless.org/patches/nextprev/index.md _AT_@ -1,17 +1,18 @@ -# next prev tag - -## Description +next prev tag +============= +Description +----------- * Increment or decrement the selected tag * [shiftview](//lists.suckless.org/dev/1104/7590.html).c is a better implementation of this, allowing you to rotate the selected tags -## Download - +Download +-------- * [nextprevtag.c](nextprevtag.c) -## Example Usage - +Example +------- static Key keys[] = { /* ... */ { MODKEY, XK_i, view_adjacent, { .i = +1 } }, _AT_@ -27,6 +28,6 @@ }; -## Author - +Author +------ * Rob Pilling - robpilling gmail com diff --git a/dwm.suckless.org/patches/nmaster/index.md b/dwm.suckless.org/patches/nmaster/index.md index ab59c35d..c069ce27 100644 --- a/dwm.suckless.org/patches/nmaster/index.md +++ b/dwm.suckless.org/patches/nmaster/index.md _AT_@ -1,14 +1,14 @@ -# nmaster +nmaster +======= -## History - -This patch restores the ability to have multiple clients in the master -area of the tiled layout. This feature was dropped from vanilla dwm in -version 4.4. The ntile mode from below is included in dwm as of version -6.0. - -## Description +History +------- +This patch restores the ability to have multiple clients in the master area of +the tiled layout. This feature was dropped from vanilla dwm in version 4.4. The +ntile mode from below is included in dwm as of version 6.0. +Description +----------- The figures show how tiling will work when the patch is applied. ntile (-|=) _AT_@ -29,16 +29,16 @@ The figures show how tiling will work when the patch is applied. | | | | +-----+-----+-----+ -## Usage - +Usage +----- * Download `nmaster.c` into the source directory of dwm. * Add `nmaster` default value to your `config.h`. * Include `nmaster.c` in `config.h` after the definition of `nmaster`. * Add `ntile` and/or `nbstack` to your layouts. * Add keybindings to `incnmaster` and/or `setnmaster` to your `config.h`. -## Example - +Example +------- static const int nmaster = 2; /* default number of clients in the master area */ #include "nmaster.c" _AT_@ -58,8 +58,8 @@ The figures show how tiling will work when the patch is applied. { MODKEY, XK_b, setlayout, {.v = &layouts[1] } }, ... -## Download - +Download +-------- * [nmaster-ncol.c](nmaster-ncol.c) (dwm 5.9) (20101210) - additional ncol layout (multiple masters side by side) * [nmaster-sym.c](nmaster-sym.c) (dwm 5.7.1) (20090927) - layout symbol shows the number of masters: `n]=`, `TnT` * [nmaster.c](nmaster.c) (dwm 5.6.1) (20090908) diff --git a/dwm.suckless.org/patches/noborder/index.md b/dwm.suckless.org/patches/noborder/index.md index a27b17f6..f9971033 100644 --- a/dwm.suckless.org/patches/noborder/index.md +++ b/dwm.suckless.org/patches/noborder/index.md _AT_@ -3,19 +3,16 @@ noborder Description ----------- - Remove the border when there is only one window visible. Download -------- - * [dwm-noborder-20170207-bb3bd6f.diff](dwm-noborder-20170207-bb3bd6f.diff) * [dwm-noborder-6.1.diff](dwm-noborder-6.1.diff) * [dwm-noborder-20160718-56a31dc.diff](dwm-noborder-20160718-56a31dc.diff) Authors ------- - * Eric Pruitt - <eric.pruitt_AT_gmail.com> * Laslo Hunhold - <dev_AT_frign.de> (6.1, git port) * Markus Teich - markus(DOT)teich(AT)stusta(DOT)de (simplification) diff --git a/dwm.suckless.org/patches/nrowgrid/index.md b/dwm.suckless.org/patches/nrowgrid/index.md index 4570e1d9..d72e7683 100644 --- a/dwm.suckless.org/patches/nrowgrid/index.md +++ b/dwm.suckless.org/patches/nrowgrid/index.md _AT_@ -3,7 +3,6 @@ nrowgrid Description ----------- - This grid layout gives you the option of determining the row count, which is set by `nmaster + 1`. So except for giving you a customizable grid, you also get the ability to show everything in one row, or in one column (`row = 1` and _AT_@ -17,14 +16,12 @@ Example: splitting 2560 pixels into 6 cells gives you 2 cells with a width of an off trade I believe many would be comfortable with. I personally want the presence of only 2 clients to always result in a vertical -split. If you don't like this feature set the FORCE_VSPLIT to 0 in `config.h`. +split. If you don't like this feature set the FORCE\_VSPLIT to 0 in `config.h`. Download -------- - * [dwm-nrowgrid-6.1.diff](dwm-nrowgrid-6.1.diff) Authors ------- - * Chris Noxz - <chris_AT_noxz.tech> diff --git a/dwm.suckless.org/patches/onlyquitonempty/index.md b/dwm.suckless.org/patches/onlyquitonempty/index.md index 1b968dfc..7d096bb6 100644 --- a/dwm.suckless.org/patches/onlyquitonempty/index.md +++ b/dwm.suckless.org/patches/onlyquitonempty/index.md _AT_@ -3,7 +3,6 @@ onlyquitonempty Description ----------- - On the default keybinding of Alt-Shift-Q, it is possible to press it by accident, closing all your work. This patch makes it so dwm will only exit via quit() if no windows are open. _AT_@ -13,12 +12,8 @@ count considered to be 'empty' via `EMPTY_WINDOW_COUNT`. Download -------- - * [dwm-onlyquitonempty-20180428-ba1a2cb.diff](dwm-onlyquitonempty-20180428-ba1a2cb.diff) Author ------ - * thatlittlegit - <personal_AT_thatlittlegit.tk> - -index.md diff --git a/dwm.suckless.org/patches/pango/index.md b/dwm.suckless.org/patches/pango/index.md index c6bf9430..801a1e25 100644 --- a/dwm.suckless.org/patches/pango/index.md +++ b/dwm.suckless.org/patches/pango/index.md _AT_@ -3,38 +3,37 @@ Pango Description ----------- - This relatively simple patch adds pango support for the status bar. This not only adds TrueType font support but also opens a couple of interesting possibilities that are not possible under barebone xft: -* **Simple markup** for status messages (optional, enable/disable it in your config.h) - using [pango markup](https://developer.gnome.org/pango/stable/PangoMarkupFormat.html). - So you can format your status messages specifying fg/bg colors, sizes, sub/superscripts, - underline, emphasis, bold, etc. You can do dynamic font switching, also! To play safe - with the rest of the status bar, markup support is restricted to the status message area - over which you have direct control. - -* **Fallback fonts**, so you can use -for example- some set of iconic fonts as your second - family: "DejaVu Sans, Icons 8" (see below). There are tons of monochromatic nice looking - TTF icons around the web these days as webfonts are becoming more and more popular. - Notice that you can also use the more powerful font switching enabled by pango markup to - achieve the same goal. Also don't be mislead by the fact that fontconfig understands - descriptors like "DejaVu Sans, Icons-8" or even font sequences defined as alias in your - fonts.conf. xft will pick one font once and for all, not on a char-by-char basis. +**Simple markup** for status messages (optional, enable/disable it in your +config.h) using +[pango markup](https://developer.gnome.org/pango/stable/PangoMarkupFormat.html). So +you can format your status messages specifying fg/bg colors, sizes, +sub/superscripts, underline, emphasis, bold, etc. You can do dynamic font +switching, also! To play safe with the rest of the status bar, markup support +is restricted to the status message area over which you have direct control. + +**Fallback fonts**, so you can use -for example- some set of iconic fonts as +your second family: "DejaVu Sans, Icons 8" (see below). There are tons of +monochromatic nice looking TTF icons around the web these days as webfonts are +becoming more and more popular. Notice that you can also use the more powerful +font switching enabled by pango markup to achieve the same goal. Also don't be +mislead by the fact that fontconfig understands descriptors like "DejaVu Sans, +Icons-8" or even font sequences defined as alias in your fonts.conf. xft will +pick one font once and for all, not on a char-by-char basis. The [Icons family](https://aur.archlinux.org/packages/ttf-font-icons/) is a -non-overlapping merge of Awesome and Ionicons fonts I've made for my statusbar. In case -you want to take a look at it, there is a -[cheatsheet](https://www.dropbox.com/s/9iysh2i0gadi4ic/icons.pdf) listing the icons and -their unicode points. +non-overlapping merge of Awesome and Ionicons fonts I've made for my statusbar. +In case you want to take a look at it, there is a +[cheatsheet](https://www.dropbox.com/s/9iysh2i0gadi4ic/icons.pdf) listing the +icons and their unicode points. Download -------- - * [dwm-pango-6.0.diff](dwm-pango-6.0.diff) Author ------ - * Carlos Pita (memeplex) <carlosjosepita_AT_gmail.com> diff --git a/dwm.suckless.org/patches/pertag/index.md b/dwm.suckless.org/patches/pertag/index.md index 107c7241..5e1b0e4f 100644 --- a/dwm.suckless.org/patches/pertag/index.md +++ b/dwm.suckless.org/patches/pertag/index.md _AT_@ -21,8 +21,8 @@ Download * [dwm-pertag-5.1.diff](dwm-pertag-5.1.diff) * Using pertag but with the same barpos - * [dwm-6.1-pertag_without_bar.diff](dwm-6.1-pertag_without_bar.diff) (5.2K) (20151109) - * [dwm-6.0-pertag_without_bar.diff](dwm-6.0-pertag_without_bar.diff) (5578b) (20140530) + * [dwm-6.1-pertag\_without\_bar.diff](dwm-6.1-pertag_without_bar.diff) (5.2K) (20151109) + * [dwm-6.0-pertag\_without\_bar.diff](dwm-6.0-pertag_without_bar.diff) (5578b) (20140530) * [dwm-5.8.2-pertag\_without\_bar.diff](dwm-5.8.2-pertag_without_bar.diff) Authors diff --git a/dwm.suckless.org/patches/pledge/index.md b/dwm.suckless.org/patches/pledge/index.md index e17827b8..1a4c86cf 100644 --- a/dwm.suckless.org/patches/pledge/index.md +++ b/dwm.suckless.org/patches/pledge/index.md _AT_@ -3,15 +3,12 @@ pledge Description ----------- - Restrict system operations on OpenBSD using [pledge(2)](https://man.openbsd.org/pledge). Download -------- - * [dwm-pledge-6.1.diff](dwm-pledge-6.1.diff) Authors ------- - * Klemens Nanni <kn_AT_openbsd.org> diff --git a/dwm.suckless.org/patches/push/index.md b/dwm.suckless.org/patches/push/index.md index 3a30ef00..ae55ab11 100644 --- a/dwm.suckless.org/patches/push/index.md +++ b/dwm.suckless.org/patches/push/index.md _AT_@ -1,7 +1,8 @@ -# push up/down - -## Description +push up/down +============ +Description +----------- `pushup` and `pushdown` provide a way to move clients inside the clients list. #include "push.c" _AT_@ -11,19 +12,23 @@ { MODKEY|ControlMask, XK_j, pushdown, {0} }, { MODKEY|ControlMask, XK_k, pushup, {0} }, -`push_no_master` is the same as the regular `push` patch, but it does not push up nor push down into the master area. We have zoom() for that. +`push_no_master` is the same as the regular `push` patch, but it does not push +up nor push down into the master area. We have zoom() for that. -## Download +Download +-------- * [dwm-push-20160731-56a31dc.diff](dwm-push-20160731-56a31dc.diff) * [dwm-push-6.0.diff](dwm-push-6.0.diff) (1332b) - 2012/4/6 -* [dwm-6.0-push_no_master.diff](dwm-6.0-push_no_master.diff) +* [dwm-6.0-push\_no\_master.diff](dwm-6.0-push_no_master.diff) * [dwm-push-6.1.diff](dwm-push-6.1.diff) (1402b) - 2014/2/9 -* [dwm-6.1-push_no_master.diff](dwm-6.1-push_no_master.diff) - 2015/11/21 +* [dwm-6.1-push\_no\_master.diff](dwm-6.1-push_no_master.diff) - 2015/11/21 -## Note +Note +---- This patch seems to be equivalent to the [movestack](../movestack/) patch. -## Author +Author +------ * Unknown? * Updated by Jan Christoph Ebersbach <jceb_AT_e-jc.de> -* push_no_master by Jente Hidskes <jthidskes_AT_outlook.com> +* push\_no\_master by Jente Hidskes <jthidskes_AT_outlook.com> diff --git a/dwm.suckless.org/patches/pwkl/index.md b/dwm.suckless.org/patches/pwkl/index.md index 4ba96735..d113369b 100644 --- a/dwm.suckless.org/patches/pwkl/index.md +++ b/dwm.suckless.org/patches/pwkl/index.md _AT_@ -3,15 +3,15 @@ Per-window keyboard layout Description ----------- -Basically, this patch implements per-window keyboard layout support in dwm. -It makes dwm remember current keyboard layout when a window is unfocused, -and restore it back when that window is focused again. +Basically, this patch implements per-window keyboard layout support in dwm. It +makes dwm remember current keyboard layout when a window is unfocused, and +restore it back when that window is focused again. Notes ----------- -Andreas Amann pointed out that "you cannot switch between tags per mouse -if an alternate layout is activated". He kindly created a patch that fixes -this: [see ml](//lists.suckless.org/dev/1010/6195.html). +Andreas Amann pointed out that "you cannot switch between tags per mouse if an +alternate layout is activated". He kindly created a patch that fixes this: +[see ml](//lists.suckless.org/dev/1010/6195.html). Download -------- diff --git a/dwm.suckless.org/patches/resizecorners/index.md b/dwm.suckless.org/patches/resizecorners/index.md index 12201801..f62b4816 100644 --- a/dwm.suckless.org/patches/resizecorners/index.md +++ b/dwm.suckless.org/patches/resizecorners/index.md _AT_@ -1,15 +1,17 @@ -# resizecorners +resizecorners +============= -## Description - -By default, windows only from the bottom right corner. With this Patch, the mouse is warped to the nearest corner and you resize from there. - -## Download +Description +----------- +By default, windows only from the bottom right corner. With this Patch, the +mouse is warped to the nearest corner and you resize from there. +Download +-------- * [dwm-resizecorners-6.1.diff](dwm-resizecorners-6.1.diff) (17.02.2016) * [dwm-resizecorners-6.0.diff](dwm-resizecorners-6.0.diff) (12.05.2015) -## Author - +Author +------ * dusty - <dusty_AT_teknik.io> * Klemens Nanni <[kl3_AT_posteo.org](mailto:kl3_AT_posteo.org)> (6.1 version) diff --git a/dwm.suckless.org/patches/restartsig/index.md b/dwm.suckless.org/patches/restartsig/index.md index c968f7a4..47ef253a 100644 --- a/dwm.suckless.org/patches/restartsig/index.md +++ b/dwm.suckless.org/patches/restartsig/index.md _AT_@ -1,16 +1,17 @@ -# restartsig - -## Description +restartsig +========== +Description +----------- dwm can now be restarted via MOD+CTRL+SHIFT+Q or by kill -HUP dwmpid -In addition, a signal handler was added so that dwm cleanly quits by kill -TERM dwmpid - - -## Download +In addition, a signal handler was added so that dwm cleanly quits by kill -TERM +dwmpid. +Download +-------- * [dwm-restartsig-20180523-2991f37.diff](dwm-restartsig-20180523-2991f37.diff) (23.05.2018) -## Author - +Author +------ * cd diff --git a/dwm.suckless.org/patches/rmaster/index.md b/dwm.suckless.org/patches/rmaster/index.md index 828a6e27..ca62be5b 100644 --- a/dwm.suckless.org/patches/rmaster/index.md +++ b/dwm.suckless.org/patches/rmaster/index.md _AT_@ -1,22 +1,23 @@ -# rmaster - -## Description +rmaster +======= +Description +----------- Toggling between left-master (original behaviour) and right-master for the current monitor. -This patch only modifies the deafult layout 'tile', similar modifications can be -made to other custom layouts, like 'deck'. - -## Configuration +This patch only modifies the deafult layout 'tile', similar modifications can +be made to other custom layouts, like 'deck'. +Configuration +------------- /*config.h*/ { MODKEY, XK_i, togglermaster, {0} }, -## Download - +Download +-------- * [dwm-rmaster-6.1.diff](dwm-rmaster-6.1.diff) (1836b) (20170213) -## Author - +Author +------ * phi <crispyfrog_AT_163.com> diff --git a/dwm.suckless.org/patches/rotatestack/index.md b/dwm.suckless.org/patches/rotatestack/index.md index cc15da5f..0382ad54 100644 --- a/dwm.suckless.org/patches/rotatestack/index.md +++ b/dwm.suckless.org/patches/rotatestack/index.md _AT_@ -1,19 +1,16 @@ - Rotate stack ============ Description ----------- - -Stack rotation moves a client from the bottom to the top of the stack -(or the other way round). This effectively rotates the clients by one -position clockwise (or CCW, respectively). +Stack rotation moves a client from the bottom to the top of the stack (or the +other way round). This effectively rotates the clients by one position +clockwise (or CCW, respectively). It should play well with arbitrary stack layouts and nmaster values. -One may think of it as moving the zoom through the list of clients, very -much in the same way as scrolling moves the view port around a pane. - +One may think of it as moving the zoom through the list of clients, very much +in the same way as scrolling moves the view port around a pane. Download -------- diff --git a/dwm.suckless.org/patches/runorraise/index.md b/dwm.suckless.org/patches/runorraise/index.md index 08b1d6ee..42cd5dbc 100644 --- a/dwm.suckless.org/patches/runorraise/index.md +++ b/dwm.suckless.org/patches/runorraise/index.md _AT_@ -5,25 +5,24 @@ Description ----------- This patch adds a equivalent to stumpwm's [run-or-raise] action for DWM. -The idea is to have each frequently-used application one key combination away at all times, irrespective of which workspace it is on, -or how recently it has been used, or even whether it’s running or not. +The idea is to have each frequently-used application one key combination away +at all times, irrespective of which workspace it is on, or how recently it has +been used, or even whether it’s running or not. Usage ----- - -1 In your config.h: +1. In your config.h: static const char *emacs[] = { "emacsclient", "-c", NULL, NULL, "Emacs" }; static const char *browser[] = { "firefox", NULL, NULL, NULL, "Firefox" }; -2 In your keybindings add something like: +2. In your keybindings add something like: { Modkey, XK_e, runorraise, {.v = emacs } }, { Modkey, XK_f, runorraise, {.v = firefox } }, Download -------- - * [dwm-6.1-runorraise.diff](dwm-6.1-runorraise.diff) Authors diff --git a/dwm.suckless.org/patches/save_floats/index.md b/dwm.suckless.org/patches/save_floats/index.md index 33e75648..f71be901 100644 --- a/dwm.suckless.org/patches/save_floats/index.md +++ b/dwm.suckless.org/patches/save_floats/index.md _AT_@ -1,19 +1,22 @@ -# save floats patch +save floats patch +================= -## Description +Description +----------- This patch saves size and position of every floating window before it is forced into tiled mode. If the window is made floating again, the old dimensions will be restored. -## Download - +Download +-------- * [dwm-savefloats-20181212-b69c870.diff](dwm-savefloats-20181212-b69c870.diff) * [dwm-savefloats-20160723-56a31dc.diff](dwm-savefloats-20160723-56a31dc.diff) * [dwm-savefloats-20120406-10e232f.diff](dwm-savefloats-20120406-10e232f.diff) * [dwm-savefloats-6.1.diff](dwm-savefloats-6.1.diff) * [dwm-savefloats-6.0.diff](dwm-savefloats-6.0.diff) -## Author +Author +------ * http://nymu.net/patches * Updated by Jan Christoph Ebersbach - <jceb_AT_e-jc.de> * Ivan Tham <pickfire_AT_riseup.net> (git port) diff --git a/dwm.suckless.org/patches/scheme_switch/index.md b/dwm.suckless.org/patches/scheme_switch/index.md index e0db2267..c7a2d91f 100644 --- a/dwm.suckless.org/patches/scheme_switch/index.md +++ b/dwm.suckless.org/patches/scheme_switch/index.md _AT_@ -6,21 +6,22 @@ Description [Solarized](http://ethanschoonover.com/solarized) is a color scheme by Ethan Schoonover which exists in a dark and a light variant. -This patch allows you defining more then one color-Scheme in the colors array in -config.def.h (or config.h) and cycle through the schemes by schemeCycle() function -(bound to Mod+Shift+z) and toggle between corresponding light and dark schemes -with schemeToggle() function (bound to Mod+Shift+t). +This patch allows you defining more then one color-Scheme in the colors array +in config.def.h (or config.h) and cycle through the schemes by schemeCycle() +function (bound to Mod+Shift+z) and toggle between corresponding light and dark +schemes with schemeToggle() function (bound to Mod+Shift+t). -In the example config.def.h there are first defined the colors for the dark variant of -solarized theme, after that the colors for the light variant, and then the original dwm -colorscheme, wich has no corresponding light scheme. If the last one is selected -shemeToggle() will do nothing, but one can cycle to the dark scheme (or the light one) -and then toggle between light and dark. If there where colors defined after the original -scheme, then schemeToggle() would toggle between original and the consecutive. +In the example config.def.h there are first defined the colors for the dark +variant of solarized theme, after that the colors for the light variant, and +then the original dwm colorscheme, wich has no corresponding light scheme. If +the last one is selected shemeToggle() will do nothing, but one can cycle to +the dark scheme (or the light one) and then toggle between light and dark. If +there where colors defined after the original scheme, then schemeToggle() would +toggle between original and the consecutive. Download -------- -* [dwm-scheme_switch-20170804-ceac8c9.diff](dwm-scheme_switch-20170804-ceac8c9.diff) +* [dwm-scheme\_switch-20170804-ceac8c9.diff](dwm-scheme_switch-20170804-ceac8c9.diff) Authors ------- diff --git a/dwm.suckless.org/patches/scratchpad/index.md b/dwm.suckless.org/patches/scratchpad/index.md index 1350ce9b..a03ac971 100644 --- a/dwm.suckless.org/patches/scratchpad/index.md +++ b/dwm.suckless.org/patches/scratchpad/index.md _AT_@ -3,22 +3,19 @@ scratchpad Description ----------- +The scratchpad patch allows you to spawn or restore a floating terminal window. +It is usually useful to have one to do some short typing. -The scratchpad patch allows you to spawn or restore a floating terminal -window. It is usually useful to have one to do some short typing. - -A tool like detach (http://detach.sourceforge.net) turns it into a -launchpad for X applications. +A tool like detach (http://detach.sourceforge.net) turns it into a launchpad +for X applications. By default your terminal (st) is used, and the default key binding is `MODKEY+XK_grave`. A `config.def.h` change is included in the patch. Download -------- - * [dwm-scratchpad-20170207-bb3bd6f.diff](dwm-scratchpad-20170207-bb3bd6f.diff) Author ------ - * Ivan J. <parazyd_AT_dyne.org> diff --git a/dwm.suckless.org/patches/single_tagset/index.md b/dwm.suckless.org/patches/single_tagset/index.md index f7e21817..b91e5e00 100644 --- a/dwm.suckless.org/patches/single_tagset/index.md +++ b/dwm.suckless.org/patches/single_tagset/index.md _AT_@ -3,12 +3,11 @@ single tagset Description ----------- - This patch addresses the multi-monitor setup. Instead of having separate tags for every monitor there is just one list of tags for all monitors. Instead of -moving windows from one monitor to the other, the desired tag from the -other monitor can just be selected and all windows will be drawn on the -current monitor. +moving windows from one monitor to the other, the desired tag from the other +monitor can just be selected and all windows will be drawn on the current +monitor. Several deep changes needed to be made: 1. Macro ISVISIBLE expects a second parameter, the monitor _AT_@ -19,12 +18,10 @@ Several deep changes needed to be made: Download -------- -Please be aware that this patch probably breaks any other patch! - -* [dwm-single_tagset-20160731-56a31dc.diff](dwm-single_tagset-20160731-56a31dc.diff) -* [dwm-6.1-single_tagset.diff](dwm-6.1-single_tagset.diff) (16634b) (20140209) -* [dwm-10e232f9ace7-single_tagset.diff](dwm-10e232f9ace7-single_tagset.diff) (14748b) (20120406) -* [dwm-single_tagset-6.0.diff](dwm-single_tagset-6.0.diff) (14417b) (20120406) +* [dwm-single\_tagset-20160731-56a31dc.diff](dwm-single_tagset-20160731-56a31dc.diff) +* [dwm-6.1-single\_tagset.diff](dwm-6.1-single_tagset.diff) (16634b) (20140209) +* [dwm-10e232f9ace7-single\_tagset.diff](dwm-10e232f9ace7-single_tagset.diff) (14748b) (20120406) +* [dwm-single\_tagset-6.0.diff](dwm-single_tagset-6.0.diff) (14417b) (20120406) Authors ------- diff --git a/dwm.suckless.org/patches/singularborders/index.md b/dwm.suckless.org/patches/singularborders/index.md index bfc75049..16e28549 100644 --- a/dwm.suckless.org/patches/singularborders/index.md +++ b/dwm.suckless.org/patches/singularborders/index.md _AT_@ -3,7 +3,9 @@ singular borders Description ----------- -`singular borders` changes the way DWM handles the borders. Firsty, borders against the left, bottom and right screen edges are removed (they are placed off-screen) and secondly, borders between clients now overlap eachother. +`singular borders` changes the way DWM handles the borders. Firsty, borders +against the left, bottom and right screen edges are removed (they are placed +off-screen) and secondly, borders between clients now overlap eachother. Original behaviour : _AT_@ -31,12 +33,14 @@ Description Issues ------ -* In a multi-monitor setup, you will see monitor one's borders on monitor two and vice-versa. This is because the borders on screen edges are simply placed off-screen. +* In a multi-monitor setup, you will see monitor one's borders on monitor two + and vice-versa. This is because the borders on screen edges are simply placed + off-screen. Download -------- * [dwm-6.0-singularborders.diff](dwm-6.0-singularborders.diff) -* [dwm-6.0-singularborders_bstack.diff](dwm-6.0-singularborders_bstack.diff) +* [dwm-6.0-singularborders\_bstack.diff](dwm-6.0-singularborders_bstack.diff) Author ------ diff --git a/dwm.suckless.org/patches/sizehints/index.md b/dwm.suckless.org/patches/sizehints/index.md index fb25381e..865b04a5 100644 --- a/dwm.suckless.org/patches/sizehints/index.md +++ b/dwm.suckless.org/patches/sizehints/index.md _AT_@ -1,19 +1,22 @@ -# obey all sizehints +obey all sizehints +================== -## Description +Description +----------- +This patch makes dwm obey even "soft" sizehints for new clients. Any window +that requests a specific initial size will be floated and set to that size. +Unlike with "fixed size" windows, you are able to resize and/or unfloat these +windows freely - only the initial state is affected. -This patch makes dwm obey even "soft" sizehints for new clients. -Any window that requests a specific initial size will be floated and set to that size. -Unlike with "fixed size" windows, you are able to resize and/or unfloat these windows freely - only the initial state is affected. - -This patch is honestly of limited utility since there are many clients that will abuse it. +This patch is honestly of limited utility since there are many clients that +will abuse it. There is no configuration for this patch. -## Download - +Download +-------- * [dwm-sizehints-5.7.2.diff](dwm-sizehints-5.7.2.diff) (695B) (20091221) -## Author - +Author +------ * Ray Kohler - ataraxia937 gmail com diff --git a/dwm.suckless.org/patches/spawn_cwd/index.md b/dwm.suckless.org/patches/spawn_cwd/index.md index a4dd5c25..bdee1a64 100644 --- a/dwm.suckless.org/patches/spawn_cwd/index.md +++ b/dwm.suckless.org/patches/spawn_cwd/index.md _AT_@ -1,16 +1,17 @@ -# spawn_cwd +spawn\_cwd +========== -## Description - -Spawns programs from currently focused client's working directory. See this +Description +----------- +Spawns programs from currently focused client's working directory. See this [blog post](https://sunaku.github.io/dwm-spawn-cwd-patch.html) and this [announcement thread](http://thread.gmane.org/gmane.comp.misc.suckless/7959) for more information. -## Download - -* [dwm-5.9.1-spawn_cwd.diff](dwm-5.9.1-spawn_cwd.diff) - -## Author +Download +-------- +* [dwm-5.9.1-spawn\_cwd.diff](dwm-5.9.1-spawn_cwd.diff) +Author +------ * Suraj N. Kurapati - <sunaku_AT_gmail.com> diff --git a/dwm.suckless.org/patches/stacker/index.md b/dwm.suckless.org/patches/stacker/index.md index 6cc99ee2..1a739d7d 100644 --- a/dwm.suckless.org/patches/stacker/index.md +++ b/dwm.suckless.org/patches/stacker/index.md _AT_@ -3,32 +3,31 @@ stacker Description ----------- - -This patch provides comprehensive utilities for managing the client stack. It implements -two new commands: `focusstack` (which is a replacement for the original `focusstack` -command) and `pushstack`. The first one is for focusing clients while the second one moves -clients around the stack. Both commands take the same kind of argument: - -* Pass `PREVSEL` to focus/push the previously selected client in the current tagset. - -* Pass `INC(+/-inc)` to focus/push relatively to the selected client. This will wrap - around the stack limits. - -* Pass a positive number to focus/push relatively to the beginning of the stack. Out of - limit values will be truncated to the position of the last visible client and won't wrap - around. - -* Pass a negative number to focus/push relatively to the last visible client in the stack. - Here -1 means the last client, -2 the previous to last client, etc. Out of limit values - will be truncated to the position of the first visible client (0) and won't wrap +This patch provides comprehensive utilities for managing the client stack. It +implements two new commands: `focusstack` (which is a replacement for the +original `focusstack` command) and `pushstack`. The first one is for focusing +clients while the second one moves clients around the stack. Both commands take +the same kind of argument: + +* Pass `PREVSEL` to focus/push the previously selected client in the current + tagset. +* Pass `INC(+/-inc)` to focus/push relatively to the selected client. This will + wrap around the stack limits. +* Pass a positive number to focus/push relatively to the beginning of the + stack. Out of limit values will be truncated to the position of the last + visible client and won't wrap around. +* Pass a negative number to focus/push relatively to the last visible client in + the stack. Here -1 means the last client, -2 the previous to last client, etc. + Out of limit values will be truncated to the position of the first visible + client (0) and won't wrap around. Default key bindings -------------------- - -There are two parallel sets of bindings: one for the `focus*` family and the other for the -`push*` family. The keys are the same for both sets but they do differ in the modifiers: -simply `MODKEY` for the `focus*` family and `MODKEY|ShiftMask` for the `push*` family. +There are two parallel sets of bindings: one for the `focus*` family and the +other for the `push*` family. The keys are the same for both sets but they do +differ in the modifiers: simply `MODKEY` for the `focus*` family and +`MODKEY|ShiftMask` for the `push*` family. Key Argument Description --------------------------------------- _AT_@ -40,22 +39,21 @@ simply `MODKEY` for the `focus*` family and `MODKEY|ShiftMask` for the `push*` f z 2 Third position x -1 Last position -The `q`, `a`, `z` keys are aligned more or less vertically in the us keyboard layout. They -are intended to be used as quick positional shortcuts to specific applications. So if you -have 9 tags you get 9\*3=27 shortcuts in a two-level hierarchy of clients. The \` key is -above the `Tab` key and it's intended to complement the "move to previously selected -tag" function of dwm at the intra-tag level. Finally, the `x` key is like "I don't care so -much about you just right now but you can still live in this tag". +The `q`, `a`, `z` keys are aligned more or less vertically in the us keyboard +layout. They are intended to be used as quick positional shortcuts to specific +applications. So if you have 9 tags you get 9\*3=27 shortcuts in a two-level +hierarchy of clients. The \` key is above the `Tab` key and it's intended to +complement the "move to previously selected tag" function of dwm at the +intra-tag level. Finally, the `x` key is like "I don't care so much about you +just right now but you can still live in this tag". -Notice that `MODKEY|ShiftMask+q` collides with the default binding for quitting dwm, which -stacker changes to `MODKEY|ShiftMask+BackSpace`. +Notice that `MODKEY|ShiftMask+q` collides with the default binding for quitting +dwm, which stacker changes to `MODKEY|ShiftMask+BackSpace`. Download -------- - * [dwm-stacker-6.0.diff](dwm-stacker-6.0.diff) Author ------ - * Carlos Pita (memeplex) <carlosjosepita_AT_gmail.com> diff --git a/dwm.suckless.org/patches/stackmfact/index.md b/dwm.suckless.org/patches/stackmfact/index.md index 7ff281c2..1d7f4672 100644 --- a/dwm.suckless.org/patches/stackmfact/index.md +++ b/dwm.suckless.org/patches/stackmfact/index.md _AT_@ -3,7 +3,8 @@ stackmfact Description ----------- -`stackmfact` enables you to vertically resize clients in the stack, like the regular mfact enables you to horizontally resize the master client(s). +`stackmfact` enables you to vertically resize clients in the stack, like the +regular mfact enables you to horizontally resize the master client(s). smfact 0.00 (original behaviour): diff --git a/dwm.suckless.org/patches/status2d/index.md b/dwm.suckless.org/patches/status2d/index.md index ceff6b77..cea4c891 100644 --- a/dwm.suckless.org/patches/status2d/index.md +++ b/dwm.suckless.org/patches/status2d/index.md _AT_@ -3,8 +3,8 @@ status2d Description ----------- -Status2d allows colors and rectangle drawing in your DWM status bar. -See below an example of my status bar with multi-cpu and battery. +Status2d allows colors and rectangle drawing in your DWM status bar. See below +an example of my status bar with multi-cpu and battery. ![Status2d screenshot](status2d.png) _AT_@ -16,17 +16,18 @@ Download Usage ----- -* ^rx,y,w,h^ : draw a rectangle. +* ^rx,y,w,h^: draw a rectangle. -* ^c#FF0000^ : set foreground color. +* ^c#FF0000^: set foreground color. -* ^f11^ : forward the x draawing cursor, only needed for drawings, not text. +* ^f11^: forward the x draawing cursor, only needed for drawings, not text. -* ^d^ : reset foreground color to SchemeNorm. +* ^d^: reset foreground color to SchemeNorm. Example ------- -xsetroot -name "dwmstatus ^c#FF0000^ in red with red rectangle ^r0,0,10,10^^f10^^c#FFFFFF^ and white text" +xsetroot -name "dwmstatus ^c#FF0000^ in red with red rectangle +^r0,0,10,10^^f10^^c#FFFFFF^ and white text" Authors ------- diff --git a/dwm.suckless.org/patches/statusbutton/index.md b/dwm.suckless.org/patches/statusbutton/index.md index 6629e406..f2f96fb8 100644 --- a/dwm.suckless.org/patches/statusbutton/index.md +++ b/dwm.suckless.org/patches/statusbutton/index.md _AT_@ -1,19 +1,22 @@ -# statusbutton - -## Description +statusbutton +============ +Description +----------- Adds a clickable button to the left hand side of the statusbar. -The appearance of this button can be configured by modifying buttonbar in config.def.h +The appearance of this button can be configured by modifying buttonbar in +config.def.h ClkButton is added as the target for clicking this button. -It has been configured for now in config.def.h to spawn dmenucmd when clicked with Button1. - -## Download +It has been configured for now in config.def.h to spawn dmenucmd when clicked +with Button1. +Download +-------- * [dwm-statusbutton-20180524-c8e9479.diff](dwm-statusbutton-20180524-c8e9479.diff) (24.05.2018) -## Author - +Author +------ * cd diff --git a/dwm.suckless.org/patches/statuscolors/index.md b/dwm.suckless.org/patches/statuscolors/index.md index cbe142c7..cf84b80f 100644 --- a/dwm.suckless.org/patches/statuscolors/index.md +++ b/dwm.suckless.org/patches/statuscolors/index.md _AT_@ -1,18 +1,30 @@ -# colored status text +colored status text +=================== -## Description - -This patch enables colored text in the status bar. It changes the way colors are defined in config.h, allowing the user to define multiple color combinations for use in their status script. - -## Configuration +Description +----------- +This patch enables colored text in the status bar. It changes the way colors +are defined in config.h, allowing the user to define multiple color +combinations for use in their status script. +Configuration +------------- Download the patch and apply it according to the [general instructions](../). -Modify the colors definition in 'config.h' to suit your needs. Make sure to define at least 3 colors as they will be used for 'normal', 'selected', and 'urgent' windows, respectively. - -## Usage - -Add code to your status script to output the raw characters '\x03' to switch to the 'urgent' color, or '\x04' to switch to the 4th defined color, etc. Note that the color indices in the status text are +1 from the definition in 'config.h' (because '+Modify the colors definition in 'config.h' to suit your needs. Make sure to +define at least 3 colors as they will be used for 'normal', 'selected', and +'urgent' windows, respectively. + +Usage +----- +Add code to your status script to output the raw characters '\x03' to switch to +the 'urgent' color, or '\x04' to switch to the 4th defined color, etc. Note +that the color indices in the status text are +1 from the definition in +'config.h' (because '+normal text color use '\x01'. To enter the raw character '\x01' in vim, press +ctrl+v followed by x, 0, and 1 in that order. '\x01' gives the first character, +which appears as a bold "A" on the screen to distinguish it from the regular +character A. ### Example _AT_@ -28,8 +40,8 @@ The following definition in 'config.h': // add more here }; -Coupled with a matching status script produces the following: - ![Example Colored Status Text](statuscolors.png) +Coupled with a matching status script produces the following: ![Example Colored +Status Text](statuscolors.png) A really silly example: _AT_@ -54,17 +66,18 @@ An example status script snippet to take advantage of the colors: echo -e $status -## Download - +Download +-------- * [dwm-5.7.2-statuscolors.diff](dwm-5.7.2-statuscolors.diff) * [dwm-5.8.2-statuscolors.diff](dwm-5.8.2-statuscolors.diff) * [dwm-statuscolors-5.9.diff](dwm-statuscolors-5.9.diff) * [dwm-statuscolors-6.1.diff](dwm-statuscolors-6.1.diff) * [dwm-statuscolors-20181008-b69c870.diff](dwm-statuscolors-20181008-b69c870.diff) - : This patch applies cleanly on mainline dwm from Jan 7 2017 to at least Oct + This patch applies cleanly on mainline dwm from Jan 7 2017 to at least Oct 8 2018. It includes additional config.def.h color entries. -## Authors +Authors +------- * Jeremy Jay - [(original patch)](//lists.suckless.org/dwm/0812/7023.html) * Axel Bayerl - (update to 5.7.2) * Voltaic - (update to 5.8.2, 5.9) diff --git a/dwm.suckless.org/patches/statuspadding/index.md b/dwm.suckless.org/patches/statuspadding/index.md index 228a2dcb..17a3d031 100644 --- a/dwm.suckless.org/patches/statuspadding/index.md +++ b/dwm.suckless.org/patches/statuspadding/index.md _AT_@ -1,7 +1,8 @@ -# statuspadding - -## Description +statuspadding +============= +Description +----------- This makes the amount of horizontal and vertical padding in the status bar into configurable options. _AT_@ -17,10 +18,10 @@ vertpadbar The defaults in config.def.h leave dwm with the same appearance as pre-patch except StatusText now has left padding in addition to right padding. -## Download - +Download +-------- * [dwm-statuspadding-20150524-c8e9479.diff](dwm-statuspadding-20150524-c8e9479.diff) (24.05.2018) -## Author - +Author +------ * cd diff --git a/dwm.suckless.org/patches/stdin/index.md b/dwm.suckless.org/patches/stdin/index.md index 48f33f98..16fc1234 100644 --- a/dwm.suckless.org/patches/stdin/index.md +++ b/dwm.suckless.org/patches/stdin/index.md _AT_@ -3,19 +3,16 @@ stdin Description ----------- - -dwm releases before 5.3 read the status text from stdin. -This patch is mainly a workaround for the freezing issue caused by -`XSelectInput` with the previous version of the [warp](../warp/) patch. -Some people might like to write their status to a pipe, though. +dwm releases before 5.3 read the status text from stdin. This patch is mainly a +workaround for the freezing issue caused by `XSelectInput` with the previous +version of the [warp](../warp/) patch. Some people might like to write their +status to a pipe, though. Download -------- - * [dwm-r1533-stdin.diff](dwm-r1533-stdin.diff) Author ------ - -This was originally part of dwm-5.2 and written by Anselm R. Garbe. -It was ported to later versions of dwm by Moritz Wilhelmy, mw wzff de. +This was originally part of dwm-5.2 and written by Anselm R. Garbe. It was +ported to later versions of dwm by Moritz Wilhelmy, mw wzff de. diff --git a/dwm.suckless.org/patches/sticky/index.md b/dwm.suckless.org/patches/sticky/index.md index 106ee421..3aa2d1e0 100644 --- a/dwm.suckless.org/patches/sticky/index.md +++ b/dwm.suckless.org/patches/sticky/index.md _AT_@ -1,16 +1,18 @@ -# sticky - -## Description +sticky +====== +Description +----------- Press `MODKEY+s` (default) to make a client 'sticky'. A sticky client is visible on all tags. This is similar to setting the client's `tags` to all 1's, but with the ability to easily return it to its original tag by toggling it off by pressing `MODKEY+s` again. -## Download - +Download +-------- * [dwm-sticky-6.1.diff](dwm-sticky-6.1.diff) * [dwm-sticky-20160911-ab9571b.diff](dwm-sticky-20160911-ab9571b.diff) -## Author +Author +------ * Ryan Roden-Corrent <ryan_AT_rcorre.net> diff --git a/dwm.suckless.org/patches/swallow/index.md b/dwm.suckless.org/patches/swallow/index.md index 7606b109..a72f61fd 100644 --- a/dwm.suckless.org/patches/swallow/index.md +++ b/dwm.suckless.org/patches/swallow/index.md _AT_@ -3,23 +3,19 @@ swallow Description ----------- - This patch adds "window swallowing" to dwm as known from Plan 9's windowing system `rio`. -Clients marked with `isterminal` in config.h swallow a window opened by -any child process, e.g. running `xclock` in a terminal. -Closing the `xclock` window restores the terminal window in the current -position. +Clients marked with `isterminal` in config.h swallow a window opened by any +child process, e.g. running `xclock` in a terminal. Closing the `xclock` window +restores the terminal window in the current position. -This patch helps users spawning a lot of graphical programs from their -command line by avoiding cluttering the screen with many unusable terminals. -Being deep down in a directory hierarchy just does not make the use of -dmenu feasible. +This patch helps users spawning a lot of graphical programs from their command +line by avoiding cluttering the screen with many unusable terminals. Being deep +down in a directory hierarchy just does not make the use of dmenu feasible. Dependencies ------------ - * libxcb * Xlib-libxcb * xcb-res _AT_@ -29,25 +25,22 @@ Resource Extension which is unsupported in vanilla Xlib. Download -------- - * [dwm-swallow-20170909-ceac8c9.diff](dwm-swallow-20170909-ceac8c9.diff) * [dwm-swallow-6.1.diff](dwm-swallow-6.1.diff) * [dwm-swallow-20160717-56a31dc.diff](dwm-swallow-20160717-56a31dc.diff) Notes ----- - The window swallowing functionality requires `dwm` to walk the process tree, which is an inherently OS-specific task. Only Linux is supported at this time. -Please contact one of the authors if you would like to help expand the list -of supported operating systems. +Please contact one of the authors if you would like to help expand the list of +supported operating systems. -Only terminals created by local processes can swallow windows, and only -windows created by local processes can be swallowed. +Only terminals created by local processes can swallow windows, and only windows +created by local processes can be swallowed. Authors ------- - * Rob King - <jking_AT_deadpixi.com> * Laslo Hunhold - <dev_AT_frign.de> (6.1, git port) * Petr Šabata - <contyk_AT_redhat.com> (bugfixes) diff --git a/dwm.suckless.org/patches/swapfocus/index.md b/dwm.suckless.org/patches/swapfocus/index.md index 3980a7d6..eba15831 100644 --- a/dwm.suckless.org/patches/swapfocus/index.md +++ b/dwm.suckless.org/patches/swapfocus/index.md _AT_@ -1,15 +1,21 @@ -# swap focus +swap focus +========== -## Description -This patch makes it possible to switch focus with one single shortcut (alt-s) instead of having to think if you should use alt-j or alt-k for reaching the last used window. +Description +----------- +This patch makes it possible to switch focus with one single shortcut (alt-s) +instead of having to think if you should use alt-j or alt-k for reaching the +last used window. -## Download +Download +-------- * [dwm-swapfocus-20160731-56a31dc.diff](dwm-swapfocus-20160731-56a31dc.diff) * [dwm-6.1-swapfocus.diff](dwm-6.1-swapfocus.diff) (1807b) (20140209) * [dwm-10e232f9ace7-swapfocus.diff](dwm-10e232f9ace7-swapfocus.diff) (1484b) (20120406) * [dwm-swapfocus-6.0.diff](dwm-swapfocus-6.0.diff) (1482b) (20120406) * [dwm-5.8.2-swap.diff](dwm-5.8.2-swap.diff) (dwm 5.8.2) -## Author +Author +------ * Lasse Engblom * Jan Christoph Ebersbach - <jceb_AT_e-jc.de> diff --git a/dwm.suckless.org/patches/switchcol/index.md b/dwm.suckless.org/patches/switchcol/index.md index 9bb8292e..78d50784 100644 --- a/dwm.suckless.org/patches/switchcol/index.md +++ b/dwm.suckless.org/patches/switchcol/index.md _AT_@ -1,20 +1,22 @@ -# switchcol - -## Description +switchcol +========= +Description +----------- Switch focus between the 2 columns (master or stack) easily. This patch only has one function, it remembers the most recently focused client in the 2 columns for each tag (it is implemented by searching the stack list to find the most recent client in the other column). -## Configuration - +Configuration +------------- /*config.h*/ { MODKEY, XK_n, switchcol, {0} }, -## Download - +Download +-------- * [dwm-switchcol-6.1.diff](dwm-switchcol-6.1.diff) (1126b) (20160325) -## Author +Author +------ * phi <crispyfrog_AT_163.com> diff --git a/dwm.suckless.org/patches/tab/index.md b/dwm.suckless.org/patches/tab/index.md index 82b573e7..281c3470 100644 --- a/dwm.suckless.org/patches/tab/index.md +++ b/dwm.suckless.org/patches/tab/index.md _AT_@ -3,15 +3,15 @@ tab Description ----------- - Transforms the monocle layout into a ''tabbed'' layout if more than one window -is present on the monocle view. Navigating from window to window is done by -clicking on the window tabs or using the usual Mod1-j, Mod1-k keys. The tabs are -arranged in a bar on top or at bottom of the screen, which can also be displayed -in the other layouts than monocle. Three display modes can be selected at run -time, auto display, permanent display and no display. In permanent mode the tab -bar is always display independently of the layout, while in the auto mode it is -displayed only with the monocle layout and in presence of several windows. +is present on the monocle view. Navigating from window to window is done by +clicking on the window tabs or using the usual Mod1-j, Mod1-k keys. The tabs +are arranged in a bar on top or at bottom of the screen, which can also be +displayed in the other layouts than monocle. Three display modes can be +selected at run time, auto display, permanent display and no display. In +permanent mode the tab bar is always display independently of the layout, while +in the auto mode it is displayed only with the monocle layout and in presence +of several windows. This patch can be used as an alternative to the [tabbed](//tools.suckless.org/tabbed/) tool. It differs in two ways: the _AT_@ -21,15 +21,15 @@ set of applications to be supported. Usage ----- +With the default configuration, use the key combination Mod1-w to toggle the +tab bar display. Switch focus to a window with a mouse left-click on its tab or +by using the usual Mod1-j, Mod1-k commands. Usage is also documented in the dwm +man page once the patch is applied. -With the default configuration, use the key combination Mod1-w to toggle the tab -bar display. Switch focus to a window with a mouse left-click on its tab or by -using the usual Mod1-j, Mod1-k commands. Usage is also documented in the dwm man -page once the patch is applied. - -The selected view (''tag'') is reminded at the right corner of the tab bar. This -feature is mainly meant to be used when the standard status bar is disabled. In -case of a multi-tag view three dots are displayed without additional details. +The selected view (''tag'') is reminded at the right corner of the tab bar. +This feature is mainly meant to be used when the standard status bar is +disabled. In case of a multi-tag view three dots are displayed without +additional details. Configuration and Installation ------------------------------ _AT_@ -43,7 +43,8 @@ Configuration and Installation * Run make and make install. The bar is displayed only with monocle layout when the view contains more than -one window. The section "More Options" explains how to add more display options. +one window. The section "More Options" explains how to add more display +options. #### Using an existing customised configuration file _AT_@ -57,7 +58,8 @@ one window. The section "More Options" explains how to add more display options. static const int showtab = showtab_auto; /* Default tab bar show mode */ static const Bool toptab = True; /* False means bottom tab bar */ -If you use the combined pertag+tab patch, include also (adapt the number of '0' to your `tags` array configuration): +If you use the combined pertag+tab patch, include also (adapt the number of '0' +to your `tags` array configuration): /* default layout per tags */ /* The first element is for all-tag view, following i-th element corresponds to */ _AT_@ -72,8 +74,8 @@ section. ### More Options -Pressing the key Mod1-w will cycle over the display modes of the tab bar described below with -the following element added to the `keys` array: +Pressing the key Mod1-w will cycle over the display modes of the tab bar +described below with the following element added to the `keys` array: { MODKEY, XK_w, tabmode, {-1} } _AT_@ -86,50 +88,48 @@ An example on how to insert these lines can be found in the default config file template, config.def.h. The tab bar includes three display options: always, never, auto. In auto mode, -the tab bar is displayed only with the monocle layout and when the view contains -more than one window. The modes available at run time can be selected by -changing the order of the elements in the `showtab_mode` enum of the config.h -configuration file: the modes before `showtab_nmodes` are enabled, the ones -after are disabled. The default mode is specified in the `showtab` variable, it -must be one of the enabled modes. +the tab bar is displayed only with the monocle layout and when the view +contains more than one window. The modes available at run time can be selected +by changing the order of the elements in the `showtab_mode` enum of the +config.h configuration file: the modes before `showtab_nmodes` are enabled, the +ones after are disabled. The default mode is specified in the `showtab` +variable, it must be one of the enabled modes. Note: keyboard shortcuts to switch to a given display mode can be defined by -using the `tabmode` function like in the definition of the `Mod1-w` -key provided above and passing as argument the display mode -(`showtab_never`, `showtab_always`, -`showtab_auto`) instead of -1. +using the `tabmode` function like in the definition of the `Mod1-w` key +provided above and passing as argument the display mode (`showtab_never`, +`showtab_always`, `showtab_auto`) instead of -1. The tab bar can be displayed on top or at bottom of the screen, which is -controlled by the 'toptab' variable. If the tab bar is displayed at bottom, then -it is recommended to set the variable `resizehints` of the config.h file to -False. This setting prevents possible gap between the windows and the tab bar. -You can find more details about this variable and gap between windows in the -dwm FAQ. +controlled by the 'toptab' variable. If the tab bar is displayed at bottom, +then it is recommended to set the variable `resizehints` of the config.h file +to False. This setting prevents possible gap between the windows and the tab +bar. You can find more details about this variable and gap between windows in +the dwm FAQ. Download -------- - -<i>Please contact the author if the patch provided for the git master branch does not work with the current head.</i> - * Tab patch alone * For dwm 6.1: [dwm-6.1-tab-v2b.diff](dwm-6.1-tab-v2b.diff) * For dwm from the git master branch: [dwm-tab-v2b-56a31dc.diff](dwm-tab-v2b-56a31dc.diff) - -* Combined patch of tab and the [pertag](../pertag/) patch from Jan Christoph Ebersbach. - * Follow the [link](../pertag/) for the description of this patch and the credits. The possibility to define the default layout per view has been added. +* Combined patch of tab and the [pertag](../pertag/) patch from Jan Christoph + Ebersbach. + * Follow the [link](../pertag/) for the description of this patch and the + credits. The possibility to define the default layout per view has been added. * For dwm 6.1: [dwm-6.1-pertag-tab-v2b.diff](dwm-6.1-pertag-tab-v2b.diff) - * For dwm from the git master branch: [dwm-tab-v2b-pertab-56a31dc.diff](dwm-tab-v2b-pertab-56a31dc.diff) + * For dwm from the git master branch: + [dwm-tab-v2b-pertab-56a31dc.diff](dwm-tab-v2b-pertab-56a31dc.diff) Change log ---------- - -* **v2b** - Fixed in the pertag-tab patch the support for per-tag default layout specification. No change in the tab only patch. -* **v2a** - Typo corrected in the man page. For the combined pertag-tab patch, specification of a default layout per-tag layout was added in the config.h configuration file, but it was not taken into account properly. The version v2b fixed this issue. -* **v2** - First public version. - -Author ------- +* **v2b** Fixed in the pertag-tab patch the support for per-tag default layout + specification. No change in the tab only patch. +* **v2a** Typo corrected in the man page. For the combined pertag-tab patch, + specification of a default layout per-tag layout was added in the config.h + configuration file, but it was not taken into account properly. The version v2b + fixed this issue. +* **v2** First public version. + +Authors +------- * Philippe Gras - `<philippe dot gras at free dot fr>` diff --git a/dwm.suckless.org/patches/tagall/index.md b/dwm.suckless.org/patches/tagall/index.md index f38a8c62..f7e73d9b 100644 --- a/dwm.suckless.org/patches/tagall/index.md +++ b/dwm.suckless.org/patches/tagall/index.md _AT_@ -1,17 +1,19 @@ -# tag all - -## Description +tag all +======= +Description +----------- Shortcut to move all (floating) windows from one tag to another. -## Download +Download +-------- * [dwm-tagall-20160731-56a31dc.diff](dwm-tagall-20160731-56a31dc.diff) * [dwm-tagall-6.1.diff](dwm-tagall-6.1.diff) (1058b) (20140209) * [dwm-10e232f9ace7-tagall.diff](dwm-10e232f9ace7-tagall.diff) (988b) (20120406) * [dwm-tagall-6.0.diff](dwm-tagall-6.0.diff) (988b) (20120406) -## Configuration - +Configuration +------------- * MODKEY+Shift+F1 moves all floating windows of the current tag to tag 1 { MODKEY|ShiftMask, XK_F1, tagall, {.v = "F1"} }, \ _AT_@ -24,5 +26,6 @@ Shortcut to move all (floating) windows from one tag to another. ... { MODKEY|ShiftMask, XK_F9, tagall, {.v = "9"} }, \ -## Author +Author +------ * Jan Christoph Ebersbach - <jceb_AT_e-jc.de> diff --git a/dwm.suckless.org/patches/taggrid/index.md b/dwm.suckless.org/patches/taggrid/index.md index 11a6c288..23426e22 100644 --- a/dwm.suckless.org/patches/taggrid/index.md +++ b/dwm.suckless.org/patches/taggrid/index.md _AT_@ -10,38 +10,33 @@ Applying -------- Patch uses drawtagmask flagset to show tags. Two flags can be applied to it: -* #define DRAWCLASSICTAGS 1 << 0 - this will make patch to draw classic tags row; +this will make patch to draw classic tags row; -* #define DRAWTAGGRID 1 << 1` - this will make patch to draw the grid of tags like this: +this will make patch to draw the grid of tags like this: - ![grid](taggrid.png) +![grid](taggrid.png) -The patch defines `switchtag` function which handle global shortcuts to -navigate in grid. This function accept unsigned int argument which represents +The patch defines `switchtag` function which handle global shortcuts to +navigate in grid. This function accept unsigned int argument which represents flagset of next flags: -* #define SWITCHTAG_UP 1 << 0 #define SWITCHTAG_DOWN 1 << 1 #define SWITCHTAG_LEFT 1 << 2 #define SWITCHTAG_RIGHT 1 << 3 +this four defines the direction of moving current tags; - this four defines the direction of moving current tags; - -* #define SWITCHTAG_TOGGLETAG 1 << 4 #define SWITCHTAG_TAG 1 << 5 #define SWITCHTAG_VIEW 1 << 6 #define SWITCHTAG_TOGGLEVIEW 1 << 7 - this four defines the behaviour of switching. They will make `switchtag` work - like according functions. +this four defines the behaviour of switching. They will make `switchtag` work +like according functions. Example ------- _AT_@ -63,10 +58,8 @@ this will move active window in specified direction and perform the action, desc Download -------- - * [dwm-6.1-taggrid.diff](dwm-6.1-taggrid.diff) (2014-02-16) Author ------ - * Yury Shvedov - [shved AT lvk DOT cs DOT msu DOT su](mailto:shved_AT_lvk.cs.msu.su) (or [mestofel13 AT gmail DOT com](mailto:mestofel13_AT_gmail.com)). diff --git a/dwm.suckless.org/patches/tagintostack/index.md b/dwm.suckless.org/patches/tagintostack/index.md index 04cf9871..99d64f3b 100644 --- a/dwm.suckless.org/patches/tagintostack/index.md +++ b/dwm.suckless.org/patches/tagintostack/index.md _AT_@ -3,9 +3,10 @@ tagintostack Description ----------- -`tagintostack` new clients attach into the stack area when you toggle -a new tag into view. This means your master area will remain unchanged when -toggling views. +`tagintostack` new clients attach into the stack area when you toggle a new tag +into view. This means your master area will remain unchanged when toggling +views. + * the `allmaster` patch will cause all clients in the master area to be left alone * the `onemaster` patch will cause the first client in the master area to be left diff --git a/dwm.suckless.org/patches/three-column/index.md b/dwm.suckless.org/patches/three-column/index.md index 9cae411b..f4ca537f 100644 --- a/dwm.suckless.org/patches/three-column/index.md +++ b/dwm.suckless.org/patches/three-column/index.md _AT_@ -1,8 +1,10 @@ -# Three Column Layout +Three Column Layout +=================== -## Description - -Three Column Layout (tcl) is a new layout with a wide master panel centered on the screen. +Description +----------- +Three Column Layout is a new layout with a wide master panel centered on +the screen. +-----+-------------+-----+ | | | | _AT_@ -12,27 +14,28 @@ Three Column Layout (tcl) is a new layout with a wide master panel centered on t | | | | +-----+-------------+-----+ -## Usage - -1. Include the `tcl.c` source file and add `tcl` to the `Layout` section of your `config.h` file. - Example from `config.default.h`: - - #include "tcl.c" - static Layout layout[] = { - /* symbol function */ - { "[]=", tile }, /* first entry is default */ - { "><>", floating }, - { "|||", tcl }, - }; - -## Download - +Usage +----- +1. Include the `tcl.c` source file and add `tcl` to the `Layout` section of + your `config.h` file. Example from `config.default.h`: + + #include "tcl.c" + static Layout layout[] = { + /* symbol function */ + { "[]=", tile }, /* first entry is default */ + { "><>", floating }, + { "|||", tcl }, + }; + +Download +-------- * [tcl.c layout](tcl.c) -## Maintainer - +Maintainer +---------- * Chris Truett - <chris.truett_AT_gmail.com> -## Note - -This layout idea was found in a rough form in this [mailing list post](//lists.suckless.org/dev/1008/5506.html). +Note +---- +This layout idea was found in a rough form in this +[mailing list post](//lists.suckless.org/dev/1008/5506.html). diff --git a/dwm.suckless.org/patches/tilegap/index.md b/dwm.suckless.org/patches/tilegap/index.md index 3fd889fd..cebd5368 100644 --- a/dwm.suckless.org/patches/tilegap/index.md +++ b/dwm.suckless.org/patches/tilegap/index.md _AT_@ -3,9 +3,9 @@ tilegap Description ----------- -Window gaps for the tile layout done right (in my humble opinion). The -same size gap between master and stack, window and window, and window -and screen edge. Size configurable in config.h. +Window gaps for the tile layout done right (in my humble opinion). The same +size gap between master and stack, window and window, and window and screen +edge. Size configurable in config.h. Download -------- diff --git a/dwm.suckless.org/patches/titlecolor/index.md b/dwm.suckless.org/patches/titlecolor/index.md index d6046153..f695cc23 100644 --- a/dwm.suckless.org/patches/titlecolor/index.md +++ b/dwm.suckless.org/patches/titlecolor/index.md _AT_@ -1,14 +1,15 @@ -# titlecolor - -## Description +titlecolor +========== +Description +----------- Adds a new color scheme used by the window title in the bar, so that its colors (foreground and background) can be changed independently. -## Download - +Download +-------- * [dwm-titlecolor-6.1.diff](dwm-titlecolor-6.1.diff) (31.12.2018) -## Author - +Author +------ * Leon Plickat <leonhenrik[dot]plickat[at]stud[dot]uni-goettingen[dot]de> diff --git a/dwm.suckless.org/patches/urgentborder/index.md b/dwm.suckless.org/patches/urgentborder/index.md index 107dda58..4dc3346e 100644 --- a/dwm.suckless.org/patches/urgentborder/index.md +++ b/dwm.suckless.org/patches/urgentborder/index.md _AT_@ -1,15 +1,15 @@ -# custom urgent border +custom urgent border +==================== -## Description - -This patch makes borders of "urgent" windows a different color. -By default it is bright red. -Use config.h item "urgbordercolor" to change it. - -## Download +Description +----------- +This patch makes borders of "urgent" windows a different color. By default it +is bright red. Use config.h item "urgbordercolor" to change it. +Download +-------- * [dwm-6.1-urg-border.diff](dwm-6.1-urg-border.diff) (2.2K) (20150307) -## Author - +Author +------ * Alexander Huemer - alexander dot huemer dot xx dot vu (Based on former work by Ray Kohler - ataraxia937 gmail com) diff --git a/dwm.suckless.org/patches/uselessgap/index.md b/dwm.suckless.org/patches/uselessgap/index.md index b7c0d869..d8ea11be 100644 --- a/dwm.suckless.org/patches/uselessgap/index.md +++ b/dwm.suckless.org/patches/uselessgap/index.md _AT_@ -1,7 +1,8 @@ -# useless gap - -## Description +useless gap +=========== +Description +----------- For aesthetic purposes, this patch: * adds "useless gaps" around windows _AT_@ -11,8 +12,8 @@ The size of the gap is configured in `config.h`: static const unsigned int gappx = 6; /* gap pixel between windows */ -## Example - +Example +------- No gaps: +-----------------+-------+ _AT_@ -44,20 +45,15 @@ NB: there are some alternatives in the patches section, adding gaps between windows, but not between windows and the screen borders, only in the default tile mode... - -## Download - +Download +-------- * [dwm-uselessgap-6.1.diff](dwm-uselessgap-6.1.diff) (4K) (20150815), now supports nmaster. * [dwm-uselessgap-5.9.diff](dwm-uselessgap-5.9.diff) (1.8k) (20110107 updated. Thanks Jordan for your bug report) - - Updated to use the new resizeclient() function instead of resize() - + Updated to use the new resizeclient() function instead of resize() * [dwm-uselessgap-5.8.diff](dwm-uselessgap-5.8.diff) (1.7k) (20100225 updated. Thanks Guillaume for your bug report) - - Fix floating clients bug and remove all borders in monocle mode. - + Fix floating clients bug and remove all borders in monocle mode. * [dwm-gap-5.7.2.diff](dwm-gap-5.7.2.diff) (0.7k) (20091215) -## Author - +Author +------ * [jerome](http://blog.jardinmagique.info) <jerome_AT_gcu.info> diff --git a/dwm.suckless.org/patches/viewontag/index.md b/dwm.suckless.org/patches/viewontag/index.md index 1b30da99..6d7d3d3a 100644 --- a/dwm.suckless.org/patches/viewontag/index.md +++ b/dwm.suckless.org/patches/viewontag/index.md _AT_@ -1,14 +1,15 @@ -# viewontag +viewontag +========= -## Description - -* follow a window to the tag it is being moved to - -## Download +Description +----------- +Follow a window to the tag it is being moved to +Download +-------- * [dwm-r1522-viewontag.diff](dwm-r1522-viewontag.diff) (dwm r1522) (20100725) -## Author - -* Markus P. - peters_mops at arcor . de +Author +------ +* Markus P. - peters\_mops at arcor . de diff --git a/dwm.suckless.org/patches/warp/index.md b/dwm.suckless.org/patches/warp/index.md index 488c1898..a969cfd3 100644 --- a/dwm.suckless.org/patches/warp/index.md +++ b/dwm.suckless.org/patches/warp/index.md _AT_@ -3,21 +3,18 @@ warp Description ----------- - This patch warps the mouse cursor to the center of the currently focused window or screen when the mouse cursor is (a) on a different screen or (b) on top of a different window. Download -------- - * [dwm-warp-5.9.diff](dwm-warp-5.9.diff) (20111028) * [dwm-warp-6.1.diff](dwm-warp-6.1.diff) (20151215) * [dwm-warp-git-20160626-7af4d43.diff](dwm-warp-git-20160626-7af4d43.diff) Author ------ - * Evan Gates (emg) <evan.gates_AT_gmail.com> * Enno Boland (Gottox) * [Jochen Sprickerhof](mailto:project_AT_firstname.lastname.de) (don't warp in monocle) diff --git a/dwm.suckless.org/patches/winview/index.md b/dwm.suckless.org/patches/winview/index.md index 82756ddf..38aa903b 100644 --- a/dwm.suckless.org/patches/winview/index.md +++ b/dwm.suckless.org/patches/winview/index.md _AT_@ -3,34 +3,32 @@ winview Description ----------- - -Dwm tags are a powerfull feature that allows organizing windows in -workspaces. Sometime it can be difficult to remember the tag to activate to -unhide a window. With the winview patch the window to unhide can be selected -from the all-window view. The user switches to the all-window view (`Mod1-0`), -selects the window (`Mod1-j`/`k` or using the mouse) and press `Mod1-o`. The key +Dwm tags are a powerfull feature that allows organizing windows in workspaces. +Sometime it can be difficult to remember the tag to activate to unhide a +window. With the winview patch the window to unhide can be selected from the +all-window view. The user switches to the all-window view (`Mod1-0`), selects +the window (`Mod1-j`/`k` or using the mouse) and press `Mod1-o`. The key `Mod1-o` switches the view to the selected window tag. Recommend patches ----------------- -The [grid](../gridmode/) layout is well adapted to display many windows in a limited -space. Using both [grid](../gridmode/) and [pertag](../pertag/) patches you will be able to -select this layout for the all-window view while keeping your preferred -layout for the other views. +The [grid](../gridmode/) layout is well adapted to display many windows in a +limited space. Using both [grid](../gridmode/) and [pertag](../pertag/) patches +you will be able to select this layout for the all-window view while keeping +your preferred layout for the other views. Configuration and Installation ------------------------------ -#### Using the default configuration file +### Using the default configuration file * Make sure the directory where you build dwm does not contain a config.h file; * Apply the patch; * Run make and make install. -#### Using an existing customised configuration file +### Using an existing customised configuration file -Apply the patch; -Add the following element in the keys array: +Apply the patch; Add the following element in the keys array: { MODKEY, XK_o, winview, {0} }, _AT_@ -42,11 +40,9 @@ template, config.def.h. Download -------- - * [dwm-6.1-winview.diff](dwm-6.1-winview.diff) * [dwm-6.0-winview.diff](dwm-6.0-winview.diff) Author ------ * Philippe Gras - `<philippe dot gras at free dot fr>` - diff --git a/dwm.suckless.org/patches/xkb/index.md b/dwm.suckless.org/patches/xkb/index.md index bfe673a4..8730f003 100644 --- a/dwm.suckless.org/patches/xkb/index.md +++ b/dwm.suckless.org/patches/xkb/index.md _AT_@ -1,9 +1,10 @@ xkb ===== + Description ----------- -This patch replaces main functionality of xxkb. It will remember the -client's xkb status and restores it when client became focused. +This patch replaces main functionality of xxkb. It will remember the client's +xkb status and restores it when client became focused. Applying -------- _AT_@ -11,23 +12,20 @@ Firstly you have to configure xkb as you need as described [here](https://www.x.org/archive/X11R7.5/doc/input/XKB-Config.html). The patch depends on two variables: -* `showxkb` flag defines, should patch show current xkb group on - the bar or not; +* `showxkb` flag defines, should patch show current xkb group on the bar or + not; -* `xkb_layouts` array defines the text, which will appear on the - bar according to current group if `showxkb` set to `TRUE`. +* `xkb_layouts` array defines the text, which will appear on the bar according + to current group if `showxkb` set to `TRUE`. -There is new field in Rule struckture, by witch you can specify -default xkb layout for window (see config.def.h for details). -This could be useful with dmenu_run, but unfortunately for some reasons -rules can't be applied to dmenu. +There is new field in Rule struckture, by witch you can specify default xkb +layout for window (see config.def.h for details). This could be useful with +dmenu\_run, but unfortunately for some reasons rules can't be applied to dmenu. Download -------- - * [dwm-6.1-xkb.diff](dwm-6.1-xkb.diff) (2014-02-15) Author ------ - * Yury Shvedov - [shved AT lvk DOT cs DOT msu DOT su](mailto:shved_AT_lvk.cs.msu.su) (or [mestofel13 AT gmail DOT com](mailto:mestofel13_AT_gmail.com)). diff --git a/dwm.suckless.org/patches/xrdb/index.md b/dwm.suckless.org/patches/xrdb/index.md index c4c8935d..c9fef4b6 100644 --- a/dwm.suckless.org/patches/xrdb/index.md +++ b/dwm.suckless.org/patches/xrdb/index.md _AT_@ -3,10 +3,10 @@ xrdb Description ----------- - Allows dwm to read colors from `.Xresources` at run time. -After applying the patch, don't forget to update your `config.h` file and fill in path to your `.Xresources` there (`xres` variable). +After applying the patch, don't forget to update your `config.h` file and fill +in path to your `.Xresources` there (`xres` variable). X resources used: _AT_@ -21,10 +21,8 @@ Default key to reload is `Mod+F5`. Download -------- - * [dwm-xrdb-6.1.diff](dwm-xrdb-6.1.diff) Authors ------- - * Petr Schmied - <https://github.com/JBlackN/dwm-xrdb> diff --git a/dwm.suckless.org/patches/xtile/index.md b/dwm.suckless.org/patches/xtile/index.md index 27e74714..2f1ead5e 100644 --- a/dwm.suckless.org/patches/xtile/index.md +++ b/dwm.suckless.org/patches/xtile/index.md _AT_@ -3,42 +3,44 @@ xtile Description ----------- - -This patch implements a generalization of the tile layout which adds two attributes -(direction and fact) to three areas (global, master, stack). The global area is the entire -allocatable visual space and it's subdivided into the master and stack subareas. - -The direction of the global area controls the position of the master area relatively to -the stack area and it can be one of `DirHor` (traditional right stack), `DirVer` (bottom -stack), `DirRotHor` (left stack) and `DirRotVer` (top stack). The direction of the master -and of the stack areas are independently set and can be one of `DirHor` and `DirVer`. -This combines to a total of 4\*2\*2=16 layouts. - -The fact numbers indicate the relative size of the first subarea/client along the -direction of the considered area (i.e. width for `DirHor` and `DirRotHor` and height for -`DirVer` and `DirRotVer`). A fact of 1 means that the first subarea/client is on par the -rest, while a fact of 2 means that its size must double the size of each of the remaining -subareas/clients, etc. So the fact for the global area is similar to the traditional -mfact in the sense that it manages the relative allocation of visual space between the -master and stack subareas, while the fact for the master area stands for the relative -importance of the first master client against the rest of masters and, similarly, the fact -for the stack area stands for the importance of the first slave client in relation to the -rest of slaves. - -xtile adds two new commands to dwm: `setdir` and `setfact` (which supersedes `setmfact`). -Both commands take an array of three values (of type `int` for `setdir` and `float` for -`setfact`), one value for each area (the first one for the global area, the second one for -the master area and the third one for the stack area). If you pass the value `v` as -`INC(v)` it will be taken as a relative increment to be added to the current value, -otherwise it will be taken as an absolute value. Usually the resulting value will be -truncated to the valid range of values for each area/attribute combination, but relative -increments for directions wrap around the limits of the valid range. Notice that INC(0) -means "do nothing here", so it gives you a way to easily modify the value for some area -while leaving the rest untouched. +This patch implements a generalization of the tile layout which adds two +attributes (direction and fact) to three areas (global, master, stack). The +global area is the entire allocatable visual space and it's subdivided into the +master and stack subareas. + +The direction of the global area controls the position of the master area +relatively to the stack area and it can be one of `DirHor` (traditional right +stack), `DirVer` (bottom stack), `DirRotHor` (left stack) and `DirRotVer` (top +stack). The direction of the master and of the stack areas are independently +set and can be one of `DirHor` and `DirVer`. This combines to a total of +4\*2\*2=16 layouts. + +The fact numbers indicate the relative size of the first subarea/client along +the direction of the considered area (i.e. width for `DirHor` and `DirRotHor` +and height for `DirVer` and `DirRotVer`). A fact of 1 means that the first +subarea/client is on par the rest, while a fact of 2 means that its size must +double the size of each of the remaining subareas/clients, etc. So the fact for +the global area is similar to the traditional mfact in the sense that it +manages the relative allocation of visual space between the master and stack +subareas, while the fact for the master area stands for the relative importance +of the first master client against the rest of masters and, similarly, the fact +for the stack area stands for the importance of the first slave client in +relation to the rest of slaves. + +xtile adds two new commands to dwm: `setdir` and `setfact` (which supersedes +`setmfact`). Both commands take an array of three values (of type `int` for +`setdir` and `float` for `setfact`), one value for each area (the first one for +the global area, the second one for the master area and the third one for the +stack area). If you pass the value `v` as `INC(v)` it will be taken as a +relative increment to be added to the current value, otherwise it will be taken +as an absolute value. Usually the resulting value will be truncated to the +valid range of values for each area/attribute combination, but relative +increments for directions wrap around the limits of the valid range. Notice +that INC(0) means "do nothing here", so it gives you a way to easily modify the +value for some area while leaving the rest untouched. Default key bindings -------------------- - The areas are selected by modifiers as follows: Modifier Area _AT_@ -48,8 +50,8 @@ The areas are selected by modifiers as follows: MODKEY+Control Stack MODKEY+Shift+Control All three areas simultaneously -Each of the modifiers then combines with each of the following keys up to a total of -4\*3=12 key bindings: +Each of the modifiers then combines with each of the following keys up to a +total of 4\*3=12 key bindings: Key Function ------------------------------ _AT_@ -64,13 +66,15 @@ There are two provided default "presets" or "schemas" also: MODKEY+Shift t Right stack MODKEY+Control t Bottom stack -These presets allow to quickly switch between different no-nonsense tilings avoiding the -need to rotate through all the nonsense combinations in-between. But notice that -`MODKEY+Shift+Control+r` (i.e. simultaneously rotate all three areas) usually produces -sensible layouts (due to the way directions were designed to rotate). +These presets allow to quickly switch between different no-nonsense tilings +avoiding the need to rotate through all the nonsense combinations in-between. +But notice that `MODKEY+Shift+Control+r` (i.e. simultaneously rotate all three +areas) usually produces sensible layouts (due to the way directions were +designed to rotate). -You can also easily define your own presets by calling `setdir` and `setfact` as needed. -For example, here is the configuration code for the default presets described above: +You can also easily define your own presets by calling `setdir` and `setfact` +as needed. For example, here is the configuration code for the default presets +described above: { MODKEY|ShiftMask, XK_t, setdirs, {.v = (int[]){ DirHor, DirVer, DirVer } } }, { MODKEY|ControlMask, XK_t, setdirs, {.v = (int[]){ DirVer, DirHor, DirHor } } }, _AT_@ -78,92 +82,95 @@ For example, here is the configuration code for the default presets described ab Layout symbol ------------- -The layout symbol will probably look cryptic at first sight but it's very easily decoded. -It consists of three characters, one for the direction of each area: +The layout symbol will probably look cryptic at first sight but it's very +easily decoded. It consists of three characters, one for the direction of each +area: * Global area: '<', '>', 'v', '^', just think of it as an arrow that points in the direction of the master area. - * Master area: '|' for vertically tiled masters and '-' for horizontally tiled masters. - * Stack area: same as for the master area. -For example, '<||' stands for the default right stack tile provided by dwm and '^--' -stands for bstack (as defined by the bottom stack patch). +For example, '<||' stands for the default right stack tile provided by dwm and +'^--' stands for bstack (as defined by the bottom stack patch). Digressions ----------- ### Why facts per area? -There is some arbitrariness in the way facts are defined by xtile: why facts for the first -master and the first slave and not, say, for the first two clients instead? Considering -that most real life layouts will have one or two masters and a variable number of slaves, -the road xtile took will enable the user to effectively control the relative size of the -three/four most important clients in a very intuitive way that built on his previous -understanding of the mfact and the master and stack area concepts. OTOH it's not clear to -me how to allow the specification of facts for the first two clients in an intuitive way: - -* If there is only one master this alternative approach is equivalent to xtile's one. -* If there are two masters, only one fact will be required to specify the share of the - master area that belongs to each one, so what to do with the second fact? -* If this second fact is taken as the share of the second master vs the share of the - rest (the slaves), it's not clear how to define these inter-area shares. +There is some arbitrariness in the way facts are defined by xtile: why facts +for the first master and the first slave and not, say, for the first two +clients instead? Considering that most real life layouts will have one or two +masters and a variable number of slaves, the road xtile took will enable the +user to effectively control the relative size of the three/four most important +clients in a very intuitive way that built on his previous understanding of the +mfact and the master and stack area concepts. OTOH it's not clear to me how to +allow the specification of facts for the first two clients in an intuitive way: + +* If there is only one master this alternative approach is equivalent to + xtile's one. +* If there are two masters, only one fact will be required to specify the share + of the master area that belongs to each one, so what to do with the second + fact? +* If this second fact is taken as the share of the second master vs the share + of the rest (the slaves), it's not clear how to define these inter-area shares. ### Why not deck area? -One obvious additional generalization would have been to extrapolate the nmaster idea to -all three areas, or at least to the stack area. So if you allowed only m masters and n -slaves you would end up with m+n tiled windows and with the rest of the clients in the -current tagset stacked or decked "below" the last tiled client. flextile, -clients-per-tag and deck patches provide variations on this kind of layout. I've also -implemented a version of xtile that supports it and even subsumes monocle, but I think -this promotes a bad pattern of usage. Coupled with stack manipulation operations as the -ones provided by the stacker or push patches, there is the temptation to manage visibility -by moving the desired clients in the current tagset to the first n+m visible positions of -the focus stack (not to be confused with the stack area). There are a number of problems -with this approach: - -* The stack is global to dwm, so pushing around clients in one tag will rearrange them in - other tags also. This could become a problem if you rely too much on explicit stack - management. - -* The deck area badly violates the principle of least surprise. If you only change focus - sequentially by using `mod-j`/`mod-k` there is no way to exit the deck at a client - different to the last/first decked one. If you use the mouse or the `focusstack` command - provided by the stacker patch to jump directly from the deck to a non-decked client, - each time you reach the deck again by using `mod-j`/`mod-k` the visible decked client - will be replaced by the first/last decked one. In general, there is a devilish interplay - of the focus stack and the z-stack that makes the deck unusable as a tabbed view of the - decked clients, at least for more than one or two decked clients. - -Fortunately, dwm provides a much better mechanism to restrict visibility: tags. IMO there -is no need to provide a half-assed alternative to one of dwm's strongest selling points. +One obvious additional generalization would have been to extrapolate the +nmaster idea to all three areas, or at least to the stack area. So if you +allowed only m masters and n slaves you would end up with m+n tiled windows and +with the rest of the clients in the current tagset stacked or decked "below" +the last tiled client. flextile, clients-per-tag and deck patches provide +variations on this kind of layout. I've also implemented a version of xtile +that supports it and even subsumes monocle, but I think this promotes a bad +pattern of usage. Coupled with stack manipulation operations as the ones +provided by the stacker or push patches, there is the temptation to manage +visibility by moving the desired clients in the current tagset to the first n+m +visible positions of the focus stack (not to be confused with the stack area). +There are a number of problems with this approach: + +* The stack is global to dwm, so pushing around clients in one tag will + rearrange them in other tags also. This could become a problem if you rely too + much on explicit stack management. + +* The deck area badly violates the principle of least surprise. If you only + change focus sequentially by using `mod-j`/`mod-k` there is no way to exit the + deck at a client different to the last/first decked one. If you use the mouse + or the `focusstack` command provided by the stacker patch to jump directly from + the deck to a non-decked client, each time you reach the deck again by using + `mod-j`/`mod-k` the visible decked client will be replaced by the first/last + decked one. In general, there is a devilish interplay of the focus stack and + the z-stack that makes the deck unusable as a tabbed view of the decked + clients, at least for more than one or two decked clients. + +Fortunately, dwm provides a much better mechanism to restrict visibility: tags. +IMO there is no need to provide a half-assed alternative to one of dwm's +strongest selling points. Other patches ------------- - Recommended complementary patches: -* [gaps](../gaps/): to add mostly useless gaps that nevertheless make more apparent which - client has the focus. +* [gaps](../gaps/): to add mostly useless gaps that nevertheless make more + apparent which client has the focus. -* [stacker](../stacker/): to better accommodate the clients to the more elaborate layouts - allowed by xtile. But I would add: subject to the caveats that I've expressed above. +* [stacker](../stacker/): to better accommodate the clients to the more + elaborate layouts allowed by xtile. But I would add: subject to the caveats + that I've expressed above. Mandatory dependencies: * [pertag](../pertag/): we all know this one. -Related patches: [bottom stack](../bottomstack/), [flextile](../flextile/), cfacts, -[stackmfact](../stackmfact/). +Related patches: [bottom stack](../bottomstack/), [flextile](../flextile/), +cfacts, [stackmfact](../stackmfact/). Download -------- - * [dwm-6.0-xtile.diff](dwm-6.0-xtile.diff) Author ------ - * Carlos Pita (memeplex) <carlosjosepita_AT_gmail.com> diff --git a/dwm.suckless.org/patches/zoomswap/index.md b/dwm.suckless.org/patches/zoomswap/index.md index 8f72819d..a7584f6b 100644 --- a/dwm.suckless.org/patches/zoomswap/index.md +++ b/dwm.suckless.org/patches/zoomswap/index.md _AT_@ -3,7 +3,8 @@ zoomswap Description ----------- -This patch swaps the current window (C) with the previous master (P) when zooming. +This patch swaps the current window (C) with the previous master (P) when +zooming. Original behaviour : +-----------------+-------+ diff --git a/dwm.suckless.org/status_monitor/email_notifications/index.md b/dwm.suckless.org/status_monitor/email_notifications/index.md index f549b273..e7af6fbb 100644 --- a/dwm.suckless.org/status_monitor/email_notifications/index.md +++ b/dwm.suckless.org/status_monitor/email_notifications/index.md _AT_@ -3,7 +3,6 @@ email notifications Description ----------- - This init script is based on some ideas taken from the dwm ML. It adds email notification using `fetchmail`. It also adds the functionality of showing the content of the file `$HOME/.message` when it exists. This can be used for _AT_@ -21,15 +20,13 @@ This config works with GMail over IMAP with the IDLE extension for low bandwidth Init script ----------- - The notification is flashing during 60 seconds, then it is removed. Lines written to `.message` are displayed during a second in the status bar. If `.message` is deleted, the normal status message (date and uptime) returns. A pipe must be used with `fetchmail` when using IDLE extension because this way -it waits for updates from the inbox not doing polling. -If the `.message` file exists with some content, it is preserved and no email -notification is shown. +it waits for updates from the inbox not doing polling. If the `.message` file +exists with some content, it is preserved and no email notification is shown. fetchmail --check 2>/dev/null | while read line; do new=`echo $line | sed 's/(//' | awk '{print $1-$3}'` _AT_@ -58,5 +55,4 @@ notification is shown. Author ------ - * Ricardo Catalinas Jiménez <[jimenezrick_AT_gmail.com](mailto:jimenezrick_AT_gmail.com)> diff --git a/dwm.suckless.org/status_monitor/index.md b/dwm.suckless.org/status_monitor/index.md index fdd14d4d..cd74e61b 100644 --- a/dwm.suckless.org/status_monitor/index.md +++ b/dwm.suckless.org/status_monitor/index.md _AT_@ -1,7 +1,6 @@ status monitor ============== - -The status bar text of **dwm** is stored in the WM_NAME X11 property of the +The status bar text of dwm is stored in the WM\_NAME X11 property of the root window, which is managed by dwm. It can be easily set and retrieved using standard Unix tools. _AT_@ -13,28 +12,23 @@ It can be easily set and retrieved using standard Unix tools. Set The Status Using A Shell Script ----------------------------------- - - while true; - do + while true; do xsetroot -name "$(date)" sleep 2 done Set The Status Using Other Methods ---------------------------------- - There are two status monitors maintained at suckless: slstatus - suckless status -------------------------- - A somewhat complex status monitor which includes all batteries. You can read more [on the project page](//tools.suckless.org/slstatus/). dwmstatus --------- - Barebone status monitor with basic functions written in C. This follows the suckless philosophy, to give you an easy way to extend the source code to your needs. See the helper functions for C below, to extend it to your needs. Just _AT_@ -48,23 +42,34 @@ check it out and keep on hacking. Status Monitors Submitted By Others ----------------------------------- - Feel free to add your own status monitors here (keeping the list sorted). * [barM](barM.c) - can display all, time/date, ram usage, output of commands (the New BarMonitor). -* [dstat](https://www.umaxx.net/dl) [Screenshot](https://www.umaxx.net/dstat.png) - displays the current network throughput, CPU usage, performance settings, battery status, temperature, volume settings, as well as the current date and time (OpenBSD only, no support for Linux). -* [dwms](https://github.com/ianremmler/dwms) - displays time, network, audio, and battery status, written in Go using XGB. -* [dwmsd](https://github.com/johnko/dwmsd) - a daemon that listens on localhost tcp (may be useful as a base for asynchronous updates) -* [dwm-sss](https://github.com/roadkillcat/dwm_sss) - shell script providing date, time and CPU temperature -* [dwmstat](https://notabug.org/kl3/dwmstat) - small and simple | IP, CPU temperature, system volume, current local time (and more) | config.h | OpenBSD -* [go-dwmstatus](https://github.com/oniichaNj/go-dwmstatus) - A Go bar that prints current MPD song, load averages, time/date and battery percentage. -* [gods](https://github.com/schachmat/gods) - implemented in Go. prints network speed, cpu, ram, date/time -* [profil-dwmstatus-1.0.c](profil-dwmstatus-1.0.c) - cpufreq, battery percent and date/time -* [suspend-statusbar.c](https://github.com/snobb/dwm-statusbar) - date, loadavg, battery and more. If battery goes below threshold - run suspend command +* [dstat](https://www.umaxx.net/dl) + [Screenshot](https://www.umaxx.net/dstat.png) - displays the current network + throughput, CPU usage, performance settings, battery status, temperature, + volume settings, as well as the current date and time (OpenBSD only, no support + for Linux). +* [dwms](https://github.com/ianremmler/dwms) - displays time, network, audio, + and battery status, written in Go using XGB. +* [dwmsd](https://github.com/johnko/dwmsd) - a daemon that listens on localhost + tcp (may be useful as a base for asynchronous updates) +* [dwm-sss](https://github.com/roadkillcat/dwm_sss) - shell script providing + date, time and CPU temperature +* [dwmstat](https://notabug.org/kl3/dwmstat) - small and simple | IP, CPU + temperature, system volume, current local time (and more) | config.h | OpenBSD +* [go-dwmstatus](https://github.com/oniichaNj/go-dwmstatus) - A Go bar that + prints current MPD song, load averages, time/date and battery percentage. +* [gods](https://github.com/schachmat/gods) - implemented in Go. prints network + speed, cpu, ram, date/time +* [profil-dwmstatus-1.0.c](profil-dwmstatus-1.0.c) - cpufreq, battery percent + and date/time +* [suspend-statusbar.c](https://github.com/snobb/dwm-statusbar) - date, + loadavg, battery and more. If battery goes below threshold - run suspend + command Helper Functions In The Shell ----------------------------- - * [posix scripts](https://notabug.org/kl3/scripts) - basic collection of simple, fully POSIX sh compliant scripts to get various system information * [i3blocks-contrib](https://github.com/vivien/i3blocks-contrib) - collection of python, perl and shell scripts * Free memory: `free -h | awk '(NR==2){ print $3 }'` _AT_@ -72,16 +77,13 @@ Helper Functions In The Shell * Keyboard layout: `setxkbmap -query | awk '/layout/{ print $2 }'` * Empty disk space (mountpoint /home): `df -h | awk '{ if ($6 == "/home") print $4 }'` * wifi status (interface wlp3s0): `cat /sys/class/net/wlp3s0/opestate` -* CPU temperature: `sed 's/000$/°C/' /sys/class/thermal/thermal_zone0/temp` - - Alternatively you can use `acpi -t` or `sensors` from lm-sensors - package. For older systems you can get the cpu temperature from +* CPU temperature: `sed 's/000$/°C/' /sys/class/thermal/thermal_zone0/temp`. + Alternatively you can use `acpi -t` or `sensors` from lm-sensors package. For + older systems you can get the cpu temperature from `/proc/acpi/thermal_zone/THM0/temperature` - -* Remaining battery: `cat /sys/class/power_supply/BAT0/capacity` - - Alternatively you can use `acpi -b`. For older systems you can get - the battery capacity from `/proc/acpi/battery/BAT0/state`. +* Remaining battery: `cat /sys/class/power_supply/BAT0/capacity`. Alternatively + you can use `acpi -b`. For older systems you can get the battery capacity from + `/proc/acpi/battery/BAT0/state`. Using shell scripts very well leads to big scripts, which pull in unneeded dependencies. One solution for this is to write everything in C, which is much _AT_@ -89,7 +91,6 @@ more efficient. Helper Functions In C (for dwmstatus or slstatus etc.) ------------------------------------------------------ - If you have simple C functions for gathering system information, feel free to add them here (keeping the list sorted). diff --git a/dwm.suckless.org/tutorial/index.md b/dwm.suckless.org/tutorial/index.md index d6dc366c..ffc5b9d4 100644 --- a/dwm.suckless.org/tutorial/index.md +++ b/dwm.suckless.org/tutorial/index.md _AT_@ -1,15 +1,13 @@ Launching --------- - -To launch dwm, ideally you should setup a `~/.xinitrc` with at least `exec dwm`. +To launch dwm, ideally you should setup a `~/.xinitrc` with at least `exec +dwm`. Introduction ------------ - Using dwm can be done in pure keyboard control or through some extra mouse -handling. See the -[config.def.h](//git.suckless.org/dwm/plain/config.def.h) for what -are the default bindings. They are used in this tutorial. +handling. See the [config.def.h](//git.suckless.org/dwm/plain/config.def.h) for +what are the default bindings. They are used in this tutorial. [Shift]+[Alt]+[Enter] - launch terminal [Alt]+[p] - dmenu for running programs like the x-www-browser _AT_@ -18,11 +16,10 @@ By default there are 9 tags. Window model ------------ - -Launch a few terminals with `[Shift]+[Alt]+[Enter]` and dwm will _tile_ the windows -between the **master** and **stack**. A new terminal appears on the **master** -window. Existing windows are pushed upon a **stack** to the right of the -screen. `[Alt]+[Enter]` toggles windows between master and stack. +Launch a few terminals with `[Shift]+[Alt]+[Enter]` and dwm will _tile_ the +windows between the **master** and **stack**. A new terminal appears on the +**master** window. Existing windows are pushed upon a **stack** to the right of +the screen. `[Alt]+[Enter]` toggles windows between master and stack. +------+----------------------------------+--------+ | tags | title | status + _AT_@ -40,20 +37,20 @@ screen. `[Alt]+[Enter]` toggles windows between master and stack. Moving Around ------------- - To **move to another terminal**, press `[Alt]+[j]` or `[Alt]+[k]`. -To **move a terminal to another _tag_**, hover to the terminal and press `[Shift]+[Alt]+[2]`. - Note! If you are a frequent user of the text editor 'nano' the key sequence [Shift]+[Alt]+[4] - will stomp on nano's softwrap M-$. To get around this you can unbind nano's M-$ in .nanorc thus: +To **move a terminal to another _tag_**, hover to the terminal and press +`[Shift]+[Alt]+[2]`. Note! If you are a frequent user of the text editor 'nano' +the key sequence [Shift]+[Alt]+[4] will stomp on nano's softwrap M-$. To get +around this you can unbind nano's M-$ in .nanorc thus: - unbind M-$ all + unbind M-$ all - and rebind it to a new sequence thus (here bind it to 'Meta Key' + ';'): +and rebind it to a new sequence thus (here bind it to 'Meta Key' + ';'): - bind M-; softwrap all + bind M-; softwrap all - There are several other nano key sequences that dwm will stomp on - use the above example to fix nano up. +There are several other nano key sequences that dwm will stomp on - use the above example to fix nano up. To **focus on another _tag_**, press `[Alt]+[tag number]`. _AT_@ -66,50 +63,48 @@ To **kill a window**, press `[Shift]+[Alt]+[c]`. Layouts ------- - By default dwm is in **tiled** layout mode. Ensure it is tiled mode with: [Alt]+[t] -You should also notice the `[]=` symbol between the tag numbers and the title bar. +You should also notice the `[]=` symbol between the tag numbers and the title +bar. dwm has two further layout modes, **floating** `><>` `[Alt]+[f]` and **monocle** `[M]` `[Alt]+[m]`. Monocle is good for ensuring a window is kept maximized and focused. This is useful in web kiosk environments and watching -flash videos. Further layout modes can be included through [patches](//dwm.suckless.org/patches/). +flash videos. Further layout modes can be included through +[patches](//dwm.suckless.org/patches/). Floating -------- - Floating layout will be familiar to Windows users. Use `[Alt]+[right mouse button]` to resize the floating window and `[Alt]+[left mouse button]` to move it around. This can also be used to raise a floating window. -There are several ways to get specific windows into being managed as a -floating window, despite the tiled layout being activated. First there is +There are several ways to get specific windows into being managed as a floating +window, despite the tiled layout being activated. First there is `[Alt]+[Shift]+[space]`, which will toggle floating mode on the active window. Then there is the possible to simply resize the window using `[Alt]+[right mouse button]`. The last method is to `[Alt]+[middle mouse button]` onto the -window, to toggle it in being floating. These floating windows then can be -used to force certain window sizes, when some application requires this for +window, to toggle it in being floating. These floating windows then can be used +to force certain window sizes, when some application requires this for aesthetics or simply to being usable. If you want to set some type of window to be always floating, look at the -[config.def.h](//git.suckless.org/dwm/plain/config.def.h) and the -`rules` array, where the last but one element defines this behaviour. +[config.def.h](//git.suckless.org/dwm/plain/config.def.h) and the `rules` +array, where the last but one element defines this behaviour. Quitting -------- - To quit dwm cleanly: [Shift]+[Alt]+[q] Status ------ - -By default dwm is showing `dwm-X.X` in its statusbar. This text can be -changed by setting the `WM_NAME` property of the root window. +By default dwm is showing `dwm-X.X` in its statusbar. This text can be changed +by setting the `WM_NAME` property of the root window. Using the tools of X.org, this can be set using: _AT_@ -117,6 +112,5 @@ Using the tools of X.org, this can be set using: There are various tools and methods to populate this text with useful information from your system or services running on your system. A barebone for -doing this in C is [dwmstatus](../status_monitor/). See the -[xinitrc](xinitrc.example) example for how to do it -using a script. +doing this in C is [dwmstatus](../status_monitor/). See the +[xinitrc](xinitrc.example) example for how to do it using a script. diff --git a/ev.suckless.org/index.md b/ev.suckless.org/index.md index 019635c0..ef4c1491 100644 --- a/ev.suckless.org/index.md +++ b/ev.suckless.org/index.md _AT_@ -3,8 +3,9 @@ suckless.org e.V. At [slcon 2](//suckless.org/conferences/2015) eight conference attendees founded a legal entity for suckless.org, the "suckless.org e.V.". -suckless.org e.V. is a registered association in München, Germany, with its own -legal entity. Please refer to the [statutes](/satzung) (German only) for further info. +suckless.org e.V. is a registered association in München, Germany, with its +own legal entity. Please refer to the [statutes](/satzung) (German only) for +further info. suckless.org e.V. organizes a yearly membership meeting, which will regularly take place during the suckless conference or hackathon. _AT_@ -58,4 +59,3 @@ letter or email at any time. There is no refund of the membership fee, though. Donations --------- Please check out our [donations](//suckless.org/donations) page for further advise. - diff --git a/ev.suckless.org/satzung/index.md b/ev.suckless.org/satzung/index.md index 68dd2691..45249570 100644 --- a/ev.suckless.org/satzung/index.md +++ b/ev.suckless.org/satzung/index.md _AT_@ -90,4 +90,3 @@ Verwertung des verbleibenden Vermögens. Vorstehende Satzung wurde am 30. Oktober 2015 errichtet. Sowie am 21. Dezember 2015 geändert. Sowie am 01. September 2017 geändert. - diff --git a/libs.suckless.org/deprecated/index.md b/libs.suckless.org/deprecated/index.md index e7225e91..792c91e9 100644 --- a/libs.suckless.org/deprecated/index.md +++ b/libs.suckless.org/deprecated/index.md _AT_@ -1 +1,2 @@ -This directory contains the deprecated libraries which have been created by the suckless community during the time. +This directory contains the deprecated libraries which have been created by the +suckless community during the time. diff --git a/libs.suckless.org/deprecated/libixp/index.md b/libs.suckless.org/deprecated/libixp/index.md index 12bbc127..5c1d680a 100644 --- a/libs.suckless.org/deprecated/libixp/index.md +++ b/libs.suckless.org/deprecated/libixp/index.md _AT_@ -1,16 +1,29 @@ LIBIXP ====== -`libixp` is a stand-alone client/server [9P](http://9p.cat-v.org/) library including `ixpc` client. It consists of less than 2000 lines of code (including `ixpc`). +`libixp` is a stand-alone client/server [9P](http://9p.cat-v.org/) library +including `ixpc` client. It consists of less than 2000 lines of code (including +`ixpc`). -`libixp`'s server API is based heavily on that of [Plan 9](http://cm.bell-labs.com/plan9)'s [`lib9p`](http://man.cat-v.org/plan_9/2/9p), and the two libraries export virtually identical data structures. There are a few notable differences between the two, however: +`libixp`'s server API is based heavily on that of [Plan +9](http://cm.bell-labs.com/plan9)'s +[`lib9p`](http://man.cat-v.org/plan_9/2/9p), and the two libraries export +virtually identical data structures. There are a few notable differences +between the two, however: -* `libixp` multiplexes connections internally, while on `Plan 9`, the kernel performs this task, and in [plan9port](http://swtch.com/plan9port/), a separate process is spawned to do so. Despite this divergence, the user of the library will not notice any difference in behavior, except that there may be duplicate `tag` and `fid` numbers between different connections. This issue is of little relevance, however, as the library handles the task of mapping `fid`s and `tag`s to arbitrary pointers and `P9Req` structs. +* `libixp` multiplexes connections internally, while on `Plan 9`, the kernel + performs this task, and in [plan9port](http://swtch.com/plan9port/), a separate + process is spawned to do so. Despite this divergence, the user of the library + will not notice any difference in behavior, except that there may be duplicate + `tag` and `fid` numbers between different connections. This issue is of little + relevance, however, as the library handles the task of mapping `fid`s and + `tag`s to arbitrary pointers and `P9Req` structs. * `libixp` is released under a lenient MIT-style license. * `libixp` lacks `lib9p`'s file trees. -* Unlike `plan9port`'s `lib9p`, `libixp` is POSIX based, and should compile without specialized libraries on nearly any POSIX system. +* Unlike `plan9port`'s `lib9p`, `libixp` is POSIX based, and should compile + without specialized libraries on nearly any POSIX system. Download -------- diff --git a/st.suckless.org/index.md b/st.suckless.org/index.md index f3fd7bba..84416dd5 100644 --- a/st.suckless.org/index.md +++ b/st.suckless.org/index.md _AT_@ -8,21 +8,21 @@ Motivation ---------- xterm is bloated and unmaintainable. Here's an excerpt from the README: - Abandon All Hope, Ye Who Enter Here - - This is undoubtedly the most ugly program in the distribution. It was one of - the first "serious" programs ported, and still has a lot of historical baggage. - Ideally, there would be a general tty widget and then vt102 and tek4014 - subwidgets so that they could be used in other programs. We are trying to - clean things up as we go, but there is still a lot of work to do. - -Needless to say things have *not* changed, it's still ugly. -It has over 65K lines of code and emulates obscure and obsolete terminals -you will [never need](http://www.science.uva.nl/museum/tek4014.php). - -The popular alternative, rxvt has *only* 32K lines of code. This is just -too much for something as simple as a terminal emulator; it's yet another -example of code complexity. +> Abandon All Hope, Ye Who Enter Here +> +> This is undoubtedly the most ugly program in the distribution. It was one of +> the first "serious" programs ported, and still has a lot of historical baggage. +> Ideally, there would be a general tty widget and then vt102 and tek4014 +> subwidgets so that they could be used in other programs. We are trying to +> clean things up as we go, but there is still a lot of work to do. + +Needless to say things have *not* changed, it's still ugly. It has over 65K +lines of code and emulates obscure and obsolete terminals you will [never +need](http://www.science.uva.nl/museum/tek4014.php). + +The popular alternative, rxvt has *only* 32K lines of code. This is just too +much for something as simple as a terminal emulator; it's yet another example +of code complexity. Terminal emulation doesn't need to be so complex. _AT_@ -50,20 +50,19 @@ implemented or fixed. Configuration ------------- - -Configuration is done with `config.h`. Read the comments in the -generated `config.h` to edit it according to your needs. -Defaults are stored in `config.def.h`. +Configuration is done with `config.h`. Read the comments in the generated +`config.h` to edit it according to your needs. Defaults are stored in +`config.def.h`. FAQ --- -The [FAQ](//git.suckless.org/st/plain/FAQ) is maintained in the st -source code repository. +The [FAQ](//git.suckless.org/st/plain/FAQ) is maintained in the st source code +repository. Development ----------- -st is actively developed. You can [browse](//git.suckless.org/st) its -source code repository or get a copy using git with the following command: +st is actively developed. You can [browse](//git.suckless.org/st) its source +code repository or get a copy using git with the following command: git clone git://git.suckless.org/st diff --git a/st.suckless.org/patches/alpha/index.md b/st.suckless.org/patches/alpha/index.md index 69d6946e..b3ce0321 100644 --- a/st.suckless.org/patches/alpha/index.md +++ b/st.suckless.org/patches/alpha/index.md _AT_@ -5,21 +5,18 @@ alpha Description ----------- - -This patch allows users to change the opacity of the background. -Note that *you need an X composite manager* (e.g. compton, xcompmgr) to -make this patch effective. +This patch allows users to change the opacity of the background. Note that *you +need an X composite manager* (e.g. compton, xcompmgr) to make this patch +effective. Notes ----- - * The alpha value affects the default background only. * The color designated by 'defaultbg' should not be used elsewhere. * Embedding might fail after applying this patch. Download -------- - * [st-alpha-0.4.1.diff](st-alpha-0.4.1.diff) * [st-alpha-0.5.diff](st-alpha-0.5.diff) * [st-alpha-0.6.diff](st-alpha-0.6.diff) _AT_@ -32,7 +29,6 @@ Download Authors ------- - * Eon S. Jeon - <esjeon_AT_hyunmu.am> * pr - <protodev_AT_gmx.net> (0.5 port) * Laslo Hunhold - <dev_AT_frign.de> (0.6, git ports) diff --git a/st.suckless.org/patches/anysize/index.md b/st.suckless.org/patches/anysize/index.md index 8082477c..e6f34fab 100644 --- a/st.suckless.org/patches/anysize/index.md +++ b/st.suckless.org/patches/anysize/index.md _AT_@ -3,17 +3,21 @@ anysize Description ----------- +By default, st's window size always snaps to the nearest multiple of the +character size plus a fixed inner border (set with borderpx in config.h). When +the size of st does not perfectly match the space allocated to it (when using a +tiling WM, for example), unsightly gaps will appear between st and other apps, +or between instances of st. -By default, st's window size always snaps to the nearest multiple of the character size plus a fixed inner border (set with borderpx in config.h). When the size of st does not perfectly match the space allocated to it (when using a tiling WM, for example), unsightly gaps will appear between st and other apps, or between instances of st. - -This patch allows st to resize to any pixel size, makes the inner border size dynamic, and centers the content of the terminal so that the left/right and top/bottom borders are balanced. With this patch, st on a tiling WM will always fill the entire space allocated to it. +This patch allows st to resize to any pixel size, makes the inner border size +dynamic, and centers the content of the terminal so that the left/right and +top/bottom borders are balanced. With this patch, st on a tiling WM will always +fill the entire space allocated to it. Download -------- - * [st-anysize-20180817.diff](st-anysize-20180817.diff) Authors ------- - * Augusto Born de Oliveira - <augustoborn_AT_gmail.com> diff --git a/st.suckless.org/patches/boxdraw/index.md b/st.suckless.org/patches/boxdraw/index.md index 99d84bcc..c4231506 100644 --- a/st.suckless.org/patches/boxdraw/index.md +++ b/st.suckless.org/patches/boxdraw/index.md _AT_@ -3,18 +3,16 @@ boxdraw Summary ------- - Custom-draw most of the lines/blocks characters for gapless alignment. Description ----------- - Line drawing characters such as those used by `tree`, `tmux` pane splitters, -`mc` frames/menus etc, sometimes align with gaps - which looks suboptimal. -This can depend on font, size, scaling, and other factors. +`mc` frames/menus etc, sometimes align with gaps - which looks suboptimal. This +can depend on font, size, scaling, and other factors. -Block drawing characters, such as lower-half-block which is sometimes used as -a terminal "pixel" to display images, can also suffer from this issue. +Block drawing characters, such as lower-half-block which is sometimes used as a +terminal "pixel" to display images, can also suffer from this issue. This patch adds an option to custom-draw most of the lines/blocks characters using internal data (without using the font) so that they align perfectly with _AT_@ -23,27 +21,24 @@ any font, at any size, and with any `chscale`/`cwscale` configuration values. 138 shapes are supported - all the codepoints at U+2500 - U+259F except dashes, diagonals and shades. The unsupported shapes render normally using the font. -See also: -unicode references [U2500.pdf](http://www.unicode.org/charts/PDF/U2500.pdf) -and [U2580.pdf](http://www.unicode.org/charts/PDF/U2580.pdf), -libvte [test page](https://github.com/GNOME/vte/blob/master/doc/boxes.txt). +See also: unicode references +[U2500.pdf](http://www.unicode.org/charts/PDF/U2500.pdf) and +[U2580.pdf](http://www.unicode.org/charts/PDF/U2580.pdf), libvte [test +page](https://github.com/GNOME/vte/blob/master/doc/boxes.txt). Notes: ------ - -- The download is a `git --format-patch` file. It can be applied either with +* The download is a `git --format-patch` file. It can be applied either with `git` (`am`/`apply`) or normally with `patch`. It also applies and works correctly with st 0.8.1 and/or the [vertcenter](../vertcenter/) patch. - -- boxdraw is disabled by default and controlled via `config.h`. If you already +* boxdraw is disabled by default and controlled via `config.h`. If you already have this file, you'll need to copy the boxdraw line from `config.def.h`. Download -------- - -- [st-boxdraw-2018-11-01-30ec9a3.patch](st-boxdraw-2018-11-01-30ec9a3.patch) +* [st-boxdraw-2018-11-01-30ec9a3.patch](st-boxdraw-2018-11-01-30ec9a3.patch) Author ------ -- Avi Halachmi (:avih) - [https://github.com/avih](https://github.com/avih) +* Avi Halachmi (:avih) - [https://github.com/avih](https://github.com/avih) diff --git a/st.suckless.org/patches/clipboard/index.md b/st.suckless.org/patches/clipboard/index.md index 41d4f301..a5a58aab 100644 --- a/st.suckless.org/patches/clipboard/index.md +++ b/st.suckless.org/patches/clipboard/index.md _AT_@ -3,7 +3,6 @@ clipboard Description ----------- - st only sets PRIMARY on selection since [March 2015](//git.suckless.org/st/commit/?id=28259f5750f0dc7f52bbaf8b746ec3dc576a58ee) according to the _AT_@ -14,7 +13,6 @@ CLIPBOARD. Download -------- - * [st-clipboard-0.8.1.diff](st-clipboard-0.8.1.diff) * [st-clipboard-0.6.diff](st-clipboard-0.6.diff) * [st-clipboard-0.7.diff](st-clipboard-0.7.diff) _AT_@ -25,7 +23,6 @@ Download Authors ------- - * Kai Hendry - <hendry_AT_iki.fi> * Laslo Hunhold - <dev_AT_frign.de> (git port) * Matthew Parnell - <matt_AT_parnmatt.co.uk> (0.7, git ports) diff --git a/st.suckless.org/patches/copyurl/index.md b/st.suckless.org/patches/copyurl/index.md index cbc38683..1297fec7 100644 --- a/st.suckless.org/patches/copyurl/index.md +++ b/st.suckless.org/patches/copyurl/index.md _AT_@ -3,19 +3,16 @@ copyurl Description ----------- - Select and copy the last URL displayed with Mod1+l. Multiple invocations cycle through the available URLs. Notes ----- - URLs spanning multiple lines are not handled and only the first URL on each line is selected. Download -------- - * [st-copyurl-0.6.diff](st-copyurl-0.6.diff) * [st-copyurl-0.7.diff](st-copyurl-0.7.diff) * [st-copyurl-20161105-8c99915.diff](st-copyurl-20161105-8c99915.diff) _AT_@ -29,7 +26,6 @@ Following patches also highlight the selected urls: Authors ------- - * Brandon Mulcahy - <brandon_AT_jangler.info> * Laslo Hunhold - <dev_AT_frign.de> (0.6 port) * David Phillips - <david_AT_sighup.nz> (git port) diff --git a/st.suckless.org/patches/delkey/index.md b/st.suckless.org/patches/delkey/index.md index 4dcd76fa..8111acca 100644 --- a/st.suckless.org/patches/delkey/index.md +++ b/st.suckless.org/patches/delkey/index.md _AT_@ -3,19 +3,16 @@ delkey Description ----------- - Return BS on pressing backspace and DEL on pressing the delete key. Download -------- - * [st-delkey-0.6.diff](st-delkey-0.6.diff) * [st-delkey-0.7.diff](st-delkey-0.7.diff) * [st-delkey-20160727-308bfbf.diff](st-delkey-20160727-308bfbf.diff) Authors ------- - * Roberto E. Vargas Caballero - <k0ga_AT_shike2.com> * Laslo Hunhold - <dev_AT_frign.de> (0.6, git ports) * Matthew Parnell - <matt_AT_parnmatt.co.uk> (0.7 port) diff --git a/st.suckless.org/patches/disable_bold_italic_fonts/index.md b/st.suckless.org/patches/disable_bold_italic_fonts/index.md index 7a613cd1..96637ca9 100644 --- a/st.suckless.org/patches/disable_bold_italic_fonts/index.md +++ b/st.suckless.org/patches/disable_bold_italic_fonts/index.md _AT_@ -1,17 +1,15 @@ -Add an option to disable bold/italic fonts globally -=================================================== +Disable bold/italic fonts globally +================================== Description ----------- - -Some terminals allow disabling bold/italic fonts globally. So this patch adds such option as well. +Some terminals allow disabling bold/italic fonts globally. So this patch adds +such option as well. Download -------- - * [st-disable-bold-italic-fonts.diff](st-disable-bold-italic-fonts.diff) Author ------ - * Alex Kozadaev - <snobb_AT_gmx at com> diff --git a/st.suckless.org/patches/dracula/index.md b/st.suckless.org/patches/dracula/index.md index cf52f887..64d2d5fb 100644 --- a/st.suckless.org/patches/dracula/index.md +++ b/st.suckless.org/patches/dracula/index.md _AT_@ -3,29 +3,24 @@ dracula Description ----------- - -[Dracula](https://draculatheme.com/) is a color scheme made by -Zeno Rocha based on Solarized. This patch make the Dracula -color scheme available for st. +[Dracula](https://draculatheme.com/) is a color scheme made by Zeno Rocha based +on Solarized. This patch make the Dracula color scheme available for st. Notes ----- - -Once applied, only the terminal colors are changed. -You can find a [vim colorscheme](https://draculatheme.com/vim/) and -much more at [https://draculatheme.com/](https://draculatheme.com/). +Once applied, only the terminal colors are changed. You can find a +[vim colorscheme](https://draculatheme.com/vim/) and much more at +[https://draculatheme.com/](https://draculatheme.com/). Example ------- - [![Screenshot](st-dracula.png)](st-dracula.png) Running zsh and tmux. Download -------- - * [st-dracula-20170803-7f99032.diff](st-dracula-20170803-7f99032.diff) Authors diff --git a/st.suckless.org/patches/externalpipe/index.md b/st.suckless.org/patches/externalpipe/index.md index 42912bbd..86f43c10 100644 --- a/st.suckless.org/patches/externalpipe/index.md +++ b/st.suckless.org/patches/externalpipe/index.md _AT_@ -3,12 +3,10 @@ externalpipe Description ----------- - Reading and writing st's screen through a pipe. Example ------- - config.h example, binding `TERMMOD + U` to extract all visible URLs and present dmenu to select and open one: _AT_@ -25,12 +23,12 @@ dmenu to select and open one: ### Example Shell Scripts -* [link grabber](linkgrabber.sh) - similar to the function above, but without xurls dependency +* [link grabber](linkgrabber.sh) - similar to the function above, but without + xurls dependency * [edit screen](editscreen.sh) - open screen in an editor for copying text Download -------- - * [st-externalpipe-0.4.1.diff](st-externalpipe-0.4.1.diff) * [st-externalpipe-0.5.diff](st-externalpipe-0.5.diff) * [st-externalpipe-0.6.diff](st-externalpipe-0.6.diff) _AT_@ -42,7 +40,6 @@ Download Authors ------- - * Rob Pilling - <robpilling_AT_gmail.com> * Laslo Hunhold - <dev_AT_frign.de> (0.4.1, 0.5, 0.6, git ports) * Lucas Gabriel Vuotto - <lvuotto92_AT_gmail.com> (0.7, git ports) diff --git a/st.suckless.org/patches/fix_keyboard_input/index.md b/st.suckless.org/patches/fix_keyboard_input/index.md index 2cfc3fc7..bb3cd396 100644 --- a/st.suckless.org/patches/fix_keyboard_input/index.md +++ b/st.suckless.org/patches/fix_keyboard_input/index.md _AT_@ -3,59 +3,57 @@ Fix Keyboard Input (Alpha version, use with caution!) Description ----------- - This patch allows cli applications to use all the fancy key combinations that -are available to gui applications. The new scheme for encoding key combinations -was proposed by [Leonard](http://www.leonerd.org.uk/hacks/fixterms/) and appears -to have gained traction over the past years. - +are available to gui applications. The new scheme for encoding key combinations +was proposed by [Leonard](http://www.leonerd.org.uk/hacks/fixterms/) and +appears to have gained traction over the past years. Notes ----- - -* Very early stage version of this patch - I'm just at the beginning of testing - it in real world settings. I tried to encode as many key combinations as - possible according to the new scheme. This might cause issues with existing - applications if they're not aware of it. Please report any issues that you - come across. -* If you use `<C-[>` for `<Esc>`, I suggest that you remove the following line - from this patch to re-enable the behavior: - - { XK_bracketleft, ControlMask, "[91;5u", 0, 0}, - -* If you use `<C-6>` for changing to the alternative file, I suggest that you - remove the following line from this patch to re-enable the behavior: - - { XK_6, ControlMask, "[54;5u", 0, 0}, - -* I managed to bind the new mappings to actions in neovim. If you're using - tmux make sure that it's a recent version, 2.5 works fine for me. The - easiest way to know that this patch is working properly is to enter vim's - command mode by pressing `:` followed by pressing `<C-v>` and the desired key - combination. This will print the key sequence that vim received. Here are - some example mappings for vim: - - nmap <C-CR> :echo "<C-CR>"<CR> - nmap <C-S-CR> :echo "<C-S-CR>"<CR> - nmap <C-S-M-CR> :echo "<C-S-M-CR>"<CR> - nmap <S-M-CR> :echo "<S-M-CR>"<CR> - nmap <M-CR> :echo "<M-CR>"<CR> - nmap <C-M-CR> :echo "<C-M-CR>"<CR> - nmap <C-Tab> :echo "<C-Tab>"<CR> - nmap <C-S-Tab> :echo "<C-S-Tab>"<CR> - nmap <S-Tab> :echo "<S-Tab>"<CR> - nmap <M-Tab> :echo "<M-Tab>"<CR> - -* Leonard suggests to bind the CSI sequence that starts an escape sequence to - `0x9b` instead of `0x1b` (Esc) followed by `0x5b` (left bracket, [). This - removes the double use of the Esc key in terminals. Programs that run in - terminals always have to work around the double use of the Esc key by - introducing a timeout that has to pass before a press of the plain Esc key is - acted upon. For example in vim the timeout is set by the `ttimeout` and - `ttimeoutlen` setting. If you want to get rid of the double use and the - timeout, replace all occurrences of `[` with `\233` in the key definition. - In addition, settings in your CLI programs have to be adjusted to disable the - timeout. +Very early stage version of this patch - I'm just at the beginning of testing +it in real world settings. I tried to encode as many key combinations as +possible according to the new scheme. This might cause issues with existing +applications if they're not aware of it. Please report any issues that you come +across. + +If you use `<C-[>` for `<Esc>`, I suggest that you remove the following line +from this patch to re-enable the behavior: + + { XK_bracketleft, ControlMask, "[91;5u", 0, 0}, + +If you use `<C-6>` for changing to the alternative file, I suggest that you +remove the following line from this patch to re-enable the behavior: + + { XK_6, ControlMask, "[54;5u", 0, 0}, + +I managed to bind the new mappings to actions in neovim. If you're using +tmux make sure that it's a recent version, 2.5 works fine for me. The +easiest way to know that this patch is working properly is to enter vim's +command mode by pressing `:` followed by pressing `<C-v>` and the desired key +combination. This will print the key sequence that vim received. Here are +some example mappings for vim: + + nmap <C-CR> :echo "<C-CR>"<CR> + nmap <C-S-CR> :echo "<C-S-CR>"<CR> + nmap <C-S-M-CR> :echo "<C-S-M-CR>"<CR> + nmap <S-M-CR> :echo "<S-M-CR>"<CR> + nmap <M-CR> :echo "<M-CR>"<CR> + nmap <C-M-CR> :echo "<C-M-CR>"<CR> + nmap <C-Tab> :echo "<C-Tab>"<CR> + nmap <C-S-Tab> :echo "<C-S-Tab>"<CR> + nmap <S-Tab> :echo "<S-Tab>"<CR> + nmap <M-Tab> :echo "<M-Tab>"<CR> + +Leonard suggests to bind the CSI sequence that starts an escape sequence to +`0x9b` instead of `0x1b` (Esc) followed by `0x5b` (left bracket, `[`). This +removes the double use of the Esc key in terminals. Programs that run in +terminals always have to work around the double use of the Esc key by +introducing a timeout that has to pass before a press of the plain Esc key is +acted upon. For example in vim the timeout is set by the `ttimeout` and +`ttimeoutlen` setting. If you want to get rid of the double use and the +timeout, replace all occurrences of `[` with `\233` in the key definition. +In addition, settings in your CLI programs have to be adjusted to disable the +timeout. Here is an example. This entry _AT_@ -67,12 +65,10 @@ becomes the following: Download -------- - * [st-fix-keyboard-input-20170603-5a10aca.diff](st-fix-keyboard-input-20170603-5a10aca.diff) * [st-fix-keyboard-input-20170621-b331da5.diff](st-fix-keyboard-input-20170621-b331da5.diff) * [st-fix-keyboard-input-20180605-dc3b5ba.diff](st-fix-keyboard-input-20180605-dc3b5ba.diff) Authors ------- - * Jan Christoph Ebersbach - <jceb_AT_e-jc.de> diff --git a/st.suckless.org/patches/hidecursor/index.md b/st.suckless.org/patches/hidecursor/index.md index 2e585a19..4f5b2e1c 100644 --- a/st.suckless.org/patches/hidecursor/index.md +++ b/st.suckless.org/patches/hidecursor/index.md _AT_@ -3,7 +3,6 @@ hidecursor Description ----------- - Hide the X cursor whenever a key is pressed and show it back when the mouse is moved in the terminal window. _AT__AT_ -11,7 +10,6 @@ An alternative to this patch might be [xbanish](https://github.com/jcs/xbanish). Download -------- - * [st-hidecursor-0.5.diff](st-hidecursor-0.5.diff) * [st-hidecursor-0.6.diff](st-hidecursor-0.6.diff) * [st-hidecursor-0.7.diff](st-hidecursor-0.7.diff) _AT_@ -20,6 +18,5 @@ Download Authors ------- - * Ivan Delalande - <colona_AT_ycc.fr> * Laslo Hunhold - <dev_AT_frign.de> (git port) diff --git a/st.suckless.org/patches/index.md b/st.suckless.org/patches/index.md index bfe0d3e2..fa607dca 100644 --- a/st.suckless.org/patches/index.md +++ b/st.suckless.org/patches/index.md _AT_@ -1,5 +1,4 @@ patches ======= - -For instructions on how to submit and format patches, take a look at -the [hacking guidelines](//suckless.org/hacking). +For instructions on how to submit and format patches, take a look at the +[hacking guidelines](//suckless.org/hacking). diff --git a/st.suckless.org/patches/iso14755/index.md b/st.suckless.org/patches/iso14755/index.md index 6840272e..58982fab 100644 --- a/st.suckless.org/patches/iso14755/index.md +++ b/st.suckless.org/patches/iso14755/index.md _AT_@ -3,17 +3,13 @@ ISO 14755 Description ----------- - -Pressing the default binding Ctrl+Shift-i will popup dmenu, asking -you to enter a unicode codepoint that will be converted to a glyph -and then pushed to st. +Pressing the default binding Ctrl+Shift-i will popup dmenu, asking you to enter +a unicode codepoint that will be converted to a glyph and then pushed to st. Download -------- - * [st-iso14755-20180911-67d0cb6.diff](st-iso14755-20180911-67d0cb6.diff) Authors ------- - * Quentin Rameau <quinq_AT_fifth.space> diff --git a/st.suckless.org/patches/keyboard_select/index.md b/st.suckless.org/patches/keyboard_select/index.md index 2265b6ea..7edaf3b9 100644 --- a/st.suckless.org/patches/keyboard_select/index.md +++ b/st.suckless.org/patches/keyboard_select/index.md _AT_@ -1,27 +1,24 @@ -keyboard_select -=============== +keyboard\_select +================ Description ----------- - This patch allows you to select and copy text to primary buffer with keyboard -shortcuts like the perl extension “keyboard-select” for urxvt. +shortcuts like the perl extension keyboard-select for urxvt. Instructions ------------ -The patch changes the “config.def.h”. Delete your -“config.h” or add the shortcut below if you use a custom one. +The patch changes the config.def.h. Delete your config.h or add the shortcut +below if you use a custom one. Shortcut shortcuts[] = { ... { TERMMOD, XK_Escape, keyboard_select, { 0 } }, }; - Notes ----- - -When you run "keyboard_select", you have 3 modes available : +When you run "keyboard\_select", you have 3 modes available : * move mode : to set the start of the selection; * select mode : to activate and set the end of the selection; _AT_@ -41,21 +38,18 @@ Shortcuts for move and select modes : Return: quit keyboard_select, keeping the highlight of the selection Escape: quit keyboard_select -With h,j,k,l (also with arrow keys), you can use a quantifier. Enter a number before hitting the appropriate key. +With h,j,k,l (also with arrow keys), you can use a quantifier. Enter a number +before hitting the appropriate key. Shortcuts for input mode : Return: Return to the previous mode - - Download -------- - -* [git-st-keyboard_select-20180619-937e367.diff](git-st-keyboard_select-20180619-937e367.diff) -* [st-keyboard_select-0.8.1.diff](st-keyboard_select-0.8.1.diff) - +* [git-st-keyboard\_select-20180619-937e367.diff](git-st-keyboard_select-20180619-937e367.diff) +* [st-keyboard\_select-0.8.1.diff](st-keyboard_select-0.8.1.diff) Authors ------- -* Tonton Couillon - <la dot luge at free dot fr> +* Tonton Couillon - <la dot luge at free dot fr> diff --git a/st.suckless.org/patches/open_copied_url/index.md b/st.suckless.org/patches/open_copied_url/index.md index 3681387e..850f33f2 100644 --- a/st.suckless.org/patches/open_copied_url/index.md +++ b/st.suckless.org/patches/open_copied_url/index.md _AT_@ -1,9 +1,8 @@ -open_copied_url -=============== +open\_copied\_url +================= Description ----------- - Open contents of the clipboard in a user-defined browser. The clipboard in this case refers to the CLIPBOARD selection which gets _AT_@ -11,7 +10,6 @@ populated when pressing e.g. C-c. Instructions ------------ - Add a keybinding like the following example to "shortcuts" in config.h: { MODKEY, XK_v, opencopied, {.v = "firefox"} }, _AT_@ -20,17 +18,15 @@ Set the .v field of the last parameter to the program you want to bind to the ke Notes ----- - By default this patch binds the Mod+o to "xdg-open". This allows users to open the contents of the clipboard in the default browser. Download -------- - * [st-openclipboard-20180525-2c2500c.diff](st-openclipboard-20180525-2c2500c.diff) Authors ------- - -* Michael Buch - <michaelbuch12_AT_gmail.com> -* Sai Praneeth Reddy - <spr.mora04_AT_gmail.com> (0.8.1, open external programs independently) +* Michael Buch - <michaelbuch12_AT_gmail.com> +* Sai Praneeth Reddy - <spr.mora04_AT_gmail.com> (0.8.1, open external programs + independently) diff --git a/st.suckless.org/patches/openbsd/index.md b/st.suckless.org/patches/openbsd/index.md index a33c17c4..f348e8a1 100644 --- a/st.suckless.org/patches/openbsd/index.md +++ b/st.suckless.org/patches/openbsd/index.md _AT_@ -3,35 +3,26 @@ openbsd Description ----------- +OpenBSD primarily searches for terminfo descriptions in terminfo databases +before considering terminfo files. Given the terminfo currently stored in the +global database is for st 0.1.1, this leads to conflicts and misbehaviour. -OpenBSD primarily searches for terminfo descriptions in -terminfo databases before considering terminfo files. -Given the terminfo currently stored in the global database -is for st 0.1.1, this leads to conflicts and misbehaviour. - -This patch renames st to st-git forcing OpenBSD to use the provided -terminfo file. - +This patch renames st to st-git forcing OpenBSD to use the provided terminfo +file. Notes ----- - -Once a new stable version of st is out, the corresponding changes -to st.info can be pushed upstream to ncurses and then be merged -back to OpenBSD, effectively making this patch obsolete for -future stable releases. -More information on this issue can be found in this +Once a new stable version of st is out, the corresponding changes to st.info +can be pushed upstream to ncurses and then be merged back to OpenBSD, +effectively making this patch obsolete for future stable releases. More +information on this issue can be found in this [thread](http://marc.info/?l=openbsd-misc&m=139540215025526&w=2). - Download -------- - * [st-openbsd-20160727-308bfbf.diff](st-openbsd-20160727-308bfbf.diff) - Authors ------- - * Nils Reuße - <nilsreusse_AT_gmail.com> * Laslo Hunhold - <dev_AT_frign.de> (git port) diff --git a/st.suckless.org/patches/palettes/index.md b/st.suckless.org/patches/palettes/index.md index f69bb6c0..d5cf818d 100644 --- a/st.suckless.org/patches/palettes/index.md +++ b/st.suckless.org/patches/palettes/index.md _AT_@ -1,19 +1,16 @@ -color_schemes +color\_schemes ============= Description ----------- - This patch allows you to work with 16 color palettes and change them on the fly. - Instructions ------------ The patch changes the “config.def.h”. Delete your “config.h” or change it manually if you use a custom one. - Notes ----- It uses the following shortcuts : _AT_@ -33,8 +30,7 @@ It uses the following shortcuts : Download -------- - -* [st-color_schemes-0.8.1.diff](st-color_schemes-0.8.1.diff) +* [st-color\_schemes-0.8.1.diff](st-color_schemes-0.8.1.diff) Authors diff --git a/st.suckless.org/patches/relativeborder/index.md b/st.suckless.org/patches/relativeborder/index.md index 02eeaa34..6948d3f3 100644 --- a/st.suckless.org/patches/relativeborder/index.md +++ b/st.suckless.org/patches/relativeborder/index.md _AT_@ -1,7 +1,8 @@ -# relativeborder - -## Description +relativeborder +============== +Description +----------- When working with a mixture of different DPI scales on different monitors, you need to use a flexible font that will size correctly no matter the DPI - for example, `DejaVu Sans Mono-10`. If you have a border set in pixels, this border _AT_@ -10,10 +11,10 @@ will look vastly different in size depending on the DPI of your display. This patch allows you to specify a border that is relative in size to the width of a cell in the terminal. -## Download - +Download +-------- * [st-relativeborder-20171207-0ac685f.diff](st-relativeborder-20171207-0ac685f.diff) -## Authors - +Authors +------- * Doug Whiteley - <dougwhiteley_AT_gmail.com> diff --git a/st.suckless.org/patches/right_click_to_plumb/index.md b/st.suckless.org/patches/right_click_to_plumb/index.md index d7c747aa..aa617d0d 100644 --- a/st.suckless.org/patches/right_click_to_plumb/index.md +++ b/st.suckless.org/patches/right_click_to_plumb/index.md _AT_@ -1,67 +1,71 @@ -# Right click to plumb - -Pretty much like plan9's acme and plumber: right-click some selected text to send it to the plumbing program of your choosing: +Right click to plumb +==================== +Pretty much like plan9's acme and plumber: right-click some selected text to +send it to the plumbing program of your choosing: * open an URL in a browser * view an image, PDF, ... * jump from logs to editor, at the specified line/col * etc -The shell current working directory is set by the shell via `OSC 7` (borrowed from vte, see `/etc/profile.d/vte.sh` if you have it installed). +The shell current working directory is set by the shell via `OSC 7` (borrowed +from vte, see `/etc/profile.d/vte.sh` if you have it installed). For zsh : - - __vte_urlencode() ( - # This is important to make sure string manipulation is handled - # byte-by-byte. - LC_ALL=C - str="$1" - while [ -n "$str" ]; do - safe="${str%%[!a-zA-Z0-9/:_\.\-\!\'\(\)~]*}" - printf "%s" "$safe" - str="${str#"$safe"}" - if [ -n "$str" ]; then - printf "%%%02X" "'$str" - str="${str#?}" - fi - done - ) - - __vte_osc7 () { - printf "]7;%s%s" "${HOSTNAME:-}" "$(__vte_urlencode "${PWD}")" - } - - [ -n "$ZSH_VERSION" ] && precmd_functions+=(__vte_osc7) - -The patch itself only adds a `cwd` global and a button3 entry that will run a shell, change directory to cwd and run the plumber with the primary selection. Maybe I should use pass cwd as an argument too, like plan9 plumber does. + __vte_urlencode() ( + # This is important to make sure string manipulation is handled + # byte-by-byte. + LC_ALL=C + str="$1" + while [ -n "$str" ]; do + safe="${str%%[!a-zA-Z0-9/:_\.\-\!\'\(\)~]*}" + printf "%s" "$safe" + str="${str#"$safe"}" + if [ -n "$str" ]; then + printf "%%%02X" "'$str" + str="${str#?}" + fi + done + ) + + __vte_osc7 () { + printf "]7;%s%s" "${HOSTNAME:-}" "$(__vte_urlencode "${PWD}")" + } + + [ -n "$ZSH_VERSION" ] && precmd_functions+=(__vte_osc7) + +The patch itself only adds a `cwd` global and a button3 entry that will run a +shell, change directory to cwd and run the plumber with the primary selection. +Maybe I should use pass cwd as an argument too, like plan9 plumber does. The plumbing program can be defined via `config.h`: - static char plumber[] = "plumb.sh"; - -## Download - -* [right_click_to_plumb.diff](right_click_to_plumb.diff) (2017-09-11) + static char plumber[] = "plumb.sh"; -## Authors +Download +-------- +* [right\_click\_to\_plumb.diff](right_click_to_plumb.diff) (2017-09-11) +Authors +------- * [jerome](http://blog.jardinmagique.info) <jerome_AT_gcu.info> - -# A simpler plumb patch - -The plumbing command is run in the working directory of the shell, with as parameter the text selected with the mouse. +A simpler plumb patch +===================== +The plumbing command is run in the working directory of the shell, with as +parameter the text selected with the mouse. Configuration is done in config.h and an example is supplied in config.def.h: - static char *plumb_cmd = "plumb"; - -I made this version since I had a hard time understanding how the OSC 7 stuff works and I preferred a full C implementation of a plumbing patch. - -## Download + static char *plumb_cmd = "plumb"; -* [plumb_without_shell_OSC.diff](plumb_without_shell_OSC.diff) (2018-11-03) +I made this version since I had a hard time understanding how the OSC 7 stuff +works and I preferred a full C implementation of a plumbing patch. -## Authors +Download +-------- +* [plumb\_without\_shell\_OSC.diff](plumb_without_shell_OSC.diff) (2018-11-03) +Authors +------- * [john](http://roxor.me) <j_AT_roxor.me> diff --git a/st.suckless.org/patches/scrollback/index.md b/st.suckless.org/patches/scrollback/index.md index 01168790..afdebc86 100644 --- a/st.suckless.org/patches/scrollback/index.md +++ b/st.suckless.org/patches/scrollback/index.md _AT_@ -3,12 +3,10 @@ scrollback Description ----------- - Scroll back through terminal output using Shift+{PageUp, PageDown}. Download -------- - * [st-scrollback-0.7.diff](st-scrollback-0.7.diff) * [st-scrollback-0.8.diff](st-scrollback-0.8.diff) * [st-scrollback-20181224-096b125.diff](st-scrollback-20181224-096b125.diff) _AT_@ -30,18 +28,19 @@ other than scrolling functions.** Notes ----- - * Patches modify config.def.h, you need to add mkeys to your own config.h -* You can not have an mshortcut for the same mkey so remove Button4 and Button5 from mshortcuts in config.h +* You can not have an mshortcut for the same mkey so remove Button4 and Button5 + from mshortcuts in config.h Authors ------- - -* Jochen Sprickerhof - <st_AT_jochen.sprickerhof.de> -* M Farkas-Dyck - <strake888_AT_gmail.com> -* Ivan Tham - <pickfire_AT_riseup.net> (mouse scrolling) -* Ori Bernstein - <ori_AT_eigenstate.org> (fix memory bug) -* Matthias Schoth - <mschoth_AT_gmail.com> (auto altscreen scrolling) -* Laslo Hunhold - <dev_AT_frign.de> (unscrambling, git port) -* Paride Legovini - <pl_AT_ninthfloor.org> (don't require the Shift modifier when using the auto altscreen scrolling) -* Lorenzo Bracco - <devtry_AT_riseup.net> (update base patch, use static variable for config) +* Jochen Sprickerhof - <st_AT_jochen.sprickerhof.de> +* M Farkas-Dyck - <strake888_AT_gmail.com> +* Ivan Tham - <pickfire_AT_riseup.net> (mouse scrolling) +* Ori Bernstein - <ori_AT_eigenstate.org> (fix memory bug) +* Matthias Schoth - <mschoth_AT_gmail.com> (auto altscreen scrolling) +* Laslo Hunhold - <dev_AT_frign.de> (unscrambling, git port) +* Paride Legovini - <pl_AT_ninthfloor.org> (don't require the Shift modifier + when using the auto altscreen scrolling) +* Lorenzo Bracco - <devtry_AT_riseup.net> (update base patch, use static + variable for config) diff --git a/st.suckless.org/patches/solarized/index.md b/st.suckless.org/patches/solarized/index.md index 77049db0..fd29b839 100644 --- a/st.suckless.org/patches/solarized/index.md +++ b/st.suckless.org/patches/solarized/index.md _AT_@ -3,23 +3,18 @@ solarized Description ----------- - -[Solarized](http://ethanschoonover.com/solarized) is a color scheme by -Ethan Schoonover which exists in a dark and a light variant. These -patches make the Solarized color scheme available for st. - +[Solarized](http://ethanschoonover.com/solarized) is a color scheme by Ethan +Schoonover which exists in a dark and a light variant. These patches make the +Solarized color scheme available for st. Notes ----- - Once applied, only the terminal colors are changed. For applications such as tmux or vim, you may need to [adjust the colors there as well](https://bbs.archlinux.org/viewtopic.php?id=164108). - Example ------- - [![Screenshot](st-solarized-light-s.png)](st-solarized-light.png) [![Screenshot](st-solarized-dark-s.png)](st-solarized-dark.png) _AT_@ -28,15 +23,14 @@ The font used is Source Code Pro. Download -------- - To get correct colors, you first need to apply the following patch to disable lighting up bold colors. -* [st-no_bold_colors-0.5.diff](st-no_bold_colors-0.5.diff) -* [st-no_bold_colors-0.6.diff](st-no_bold_colors-0.6.diff) -* [st-no_bold_colors-0.7.diff](st-no_bold_colors-0.7.diff) -* [st-no_bold_colors-0.8.1.diff](st-no_bold_colors-0.8.1.diff) -* [st-no_bold_colors-20170623-b331da5.diff](st-no_bold_colors-20170623-b331da5.diff) +* [st-no\_bold\_colors-0.5.diff](st-no_bold_colors-0.5.diff) +* [st-no\_bold\_colors-0.6.diff](st-no_bold_colors-0.6.diff) +* [st-no\_bold\_colors-0.7.diff](st-no_bold_colors-0.7.diff) +* [st-no\_bold\_colors-0.8.1.diff](st-no_bold_colors-0.8.1.diff) +* [st-no\_bold\_colors-20170623-b331da5.diff](st-no_bold_colors-20170623-b331da5.diff) Choose one of the following patches to get either the light or the dark color scheme: _AT_@ -61,13 +55,12 @@ or the dark color scheme: * [st-solarized-both-0.8.1.diff](st-solarized-both-0.8.1.diff) * [st-solarized-both-20170626-b331da5.diff](st-solarized-both-20170626-b331da5.diff) - Authors ------- -* Nils Reuße - <nilsreusse_AT_gmail.com> -* Laslo Hunhold - <dev_AT_frign.de> (0.5, 0.6, git ports) -* Ryan Roden-Corrent - <ryan_AT_rcorre.net> (both) -* Marcel Krüger - <zauguin_AT_gmail.com> (older git ports) -* Harry Gindi - <harry.gindi_AT_live.com> (git ports for light, dark, and swap versions) -* Matthew Parnell - <matt_AT_parnmatt.co.uk> (0.7 port) -* Linh Nguyen - <linhvng.2212_AT_gmail.com> (0.8.1 port for no_bold_colors and swap versions) +* Nils Reuße - <nilsreusse_AT_gmail.com> +* Laslo Hunhold - <dev_AT_frign.de> (0.5, 0.6, git ports) +* Ryan Roden-Corrent - <ryan_AT_rcorre.net> (both) +* Marcel Krüger - <zauguin_AT_gmail.com> (older git ports) +* Harry Gindi - <harry.gindi_AT_live.com> (git ports for light, dark, and swap versions) +* Matthew Parnell - <matt_AT_parnmatt.co.uk> (0.7 port) +* Linh Nguyen - <linhvng.2212_AT_gmail.com> (0.8.1 port for no\_bold\_colors and swap versions) diff --git a/st.suckless.org/patches/spoiler/index.md b/st.suckless.org/patches/spoiler/index.md index ef2c307f..356915d1 100644 --- a/st.suckless.org/patches/spoiler/index.md +++ b/st.suckless.org/patches/spoiler/index.md _AT_@ -3,22 +3,20 @@ spoiler Description ----------- - Use inverted defaultbg/fg for selection when bg/fg are the same The background/foreground of selected text is currently set by setting -ATTR_REVERSE, which flips its normal bg/fg. When the text being selected -has the same bg and fg, it won't be readable after selecting it, either. +ATTR\_REVERSE, which flips its normal bg/fg. When the text being selected has +the same bg and fg, it won't be readable after selecting it, either. The main use case is black-on-black text used to mark 'spoilers'. -This patch allows that text to be read by selecting it, turning it into -text with white bg and black fg (given default values for defaultbg/fg), -just like most normal unformatted text when selected. +This patch allows that text to be read by selecting it, turning it into text +with white bg and black fg (given default values for defaultbg/fg), just like +most normal unformatted text when selected. Download -------- - * [st-spoiler-0.6.diff](st-spoiler-0.6.diff) * [st-spoiler-0.7.diff](st-spoiler-0.7.diff) * [st-spoiler-20160727-308bfbf.diff](st-spoiler-20160727-308bfbf.diff) _AT_@ -27,7 +25,6 @@ Download Author ------ - * dequis - <dx_AT_dxzone.com.ar> * Laslo Hunhold - <dev_AT_frign.de> (git port) * Matthew Parnell - <matt_AT_parnmatt.co.uk> (0.7, git ports) diff --git a/st.suckless.org/patches/vertcenter/index.md b/st.suckless.org/patches/vertcenter/index.md index 6d5a4902..c716b409 100644 --- a/st.suckless.org/patches/vertcenter/index.md +++ b/st.suckless.org/patches/vertcenter/index.md _AT_@ -1,7 +1,8 @@ -# vertcenter - -## Description +vertcenter +========== +Description +----------- Vertically center lines in the space available if you have set a larger chscale in config.h. _AT_@ -13,14 +14,14 @@ After: [![After](st-vertcenter-after-s.png)](st-vertcenter-after.png) -## Download - +Download +-------- * [st-vertcenter-0.7.diff](st-vertcenter-0.7.diff) * [st-vertcenter-20160819-023225e.diff](st-vertcenter-20160819-023225e.diff) * [st-vertcenter-20170601-5a10aca.diff](st-vertcenter-20170601-5a10aca.diff) * [st-vertcenter-20171207-0ac685f.diff](st-vertcenter-20171207-0ac685f.diff) * [st-vertcenter-20180320-6ac8c8a.diff](st-vertcenter-20180320-6ac8c8a.diff) -## Authors - +Authors +-------- * Doug Whiteley - <dougwhiteley_AT_gmail.com> diff --git a/st.suckless.org/patches/visualbell/index.md b/st.suckless.org/patches/visualbell/index.md index f1498ab4..087dfcb9 100644 --- a/st.suckless.org/patches/visualbell/index.md +++ b/st.suckless.org/patches/visualbell/index.md _AT_@ -1,6 +1,5 @@ visualbell ========== - This page contains two unrelated implementations of visual bell which are not compatible with each other. If you have one of them applied, remove it before trying the other. _AT_@ -9,26 +8,21 @@ trying the other. Description ----------- - Briefly inverts window content on terminal bell event. Notes ----- - -In order to be noticeable you might have to reduce the `xfps` -value in `config.h` to less than equal the refresh rate of your -monitor. +In order to be noticeable you might have to reduce the `xfps` value in +`config.h` to less than equal the refresh rate of your monitor. Download -------- - * [st-visualbell-20160727-308bfbf.diff](st-visualbell-20160727-308bfbf.diff) * [st-visualbell-20180101-1f24bde.diff](st-visualbell-20180101-1f24bde.diff) * [st-visualbell-0.8.1.diff](st-visualbell-0.8.1.diff) Authors ------- - * Matthias Schoth - <mschoth_AT_gmail.com> * Laslo Hunhold - <dev_AT_frign.de> (git port) * Alexis Ben Miloud--Josselin; panpo; alexisbmj+code at protonmail dot com. _AT_@ -37,47 +31,42 @@ Authors Description ----------- - Briefly renders a configurable visual indication on terminal bell event. Notes ----- - -- There are two variants available for download: basic and enhanced. -- The enhanced version file already includes the basic version in it, and +* There are two variants available for download: basic and enhanced. +* The enhanced version file already includes the basic version in it, and supports the basic options too. -- Both variants can be applied with either `git am <patch-file>` or - ` patch -p1 < <patch-file>`. -- Visual bell is disabled by default, and can be enabled/configured via +* Both variants can be applied with either `git am <patch-file>` or ` patch -p1 + < <patch-file>`. +* Visual bell is disabled by default, and can be enabled/configured via `config.h`. If you already have this file, you'll need to add the visual-bell values by copying them from `config.def.h` - which also includes their docs. ### The basic variant supports: - -- Invert the whole screen (default). -- Invert only the outer (border) cells for a less jarring effect. -- Configuring the flash duration (default: 100ms). +* Invert the whole screen (default). +* Invert only the outer (border) cells for a less jarring effect. +* Configuring the flash duration (default: 100ms). ### The enhanced variant: - This version experiments with a more graphical indication, by adding support for rendering a filled circle (needs to be chosen at `config.h`), which can be configured for: -- Position: any corner/edge, center of the screen, or anything in between. -- Size: relative to the window width or to the cell width. -- Colors: base and outline. +* Position: any corner/edge, center of the screen, or anything in between. +* Size: relative to the window width or to the cell width. +* Colors: base and outline. The enhanced variant allows, for instance, to render what looks like a LED -indicator at a tmux status bar, with correct cell height, and can be -positioned at the side/middle of a top/bottom bar, etc. +indicator at a tmux status bar, with correct cell height, and can be positioned +at the side/middle of a top/bottom bar, etc. Download -------- - -- [st-visualbell2-basic-2018-10-16-30ec9a3.patch](st-visualbell2-basic-2018-10-16-30ec9a3.patch) -- [st-visualbell2-enhanced-2018-10-16-30ec9a3.patch](st-visualbell2-enhanced-2018-10-16-30ec9a3.patch) +* [st-visualbell2-basic-2018-10-16-30ec9a3.patch](st-visualbell2-basic-2018-10-16-30ec9a3.patch) +* [st-visualbell2-enhanced-2018-10-16-30ec9a3.patch](st-visualbell2-enhanced-2018-10-16-30ec9a3.patch) Author ------ -- Avi Halachmi (:avih) - [https://github.com/avih](https://github.com/avih) +* Avi Halachmi (:avih) - [https://github.com/avih](https://github.com/avih) diff --git a/st.suckless.org/patches/xresources/index.md b/st.suckless.org/patches/xresources/index.md index 795425aa..48159ed6 100644 --- a/st.suckless.org/patches/xresources/index.md +++ b/st.suckless.org/patches/xresources/index.md _AT_@ -3,19 +3,16 @@ xresources Description ----------- - This patch adds the ability to configure st via Xresources. At startup, st will read and apply the resources named in the `resources[]` array in config.h. Download -------- - * [st-xresources-20180309-c5ba9c0.diff](st-xresources-20180309-c5ba9c0.diff) * [st-xresources-20181018-g30ec9a3.diff](st-xresources-20181018-g30ec9a3.diff) Authors ------- - * _AT_dcat on [Github](https://github.com/dcat/st-xresources) * Devin J. Pohly - <djpohly_AT_gmail.com> (git port) * Sai Praneeth Reddy - <spr.mora04_AT_gmail.com> (read borderpx from xresources) diff --git a/suckless.org/coding_style/index.md b/suckless.org/coding_style/index.md index 0c0d58dd..57d2208e 100644 --- a/suckless.org/coding_style/index.md +++ b/suckless.org/coding_style/index.md _AT_@ -1,10 +1,13 @@ Style ===== -Note that the following are guidelines and the most important aspect of style is consistency. Strive to keep your style consistent with the project on which you are working. +Note that the following are guidelines and the most important aspect of style +is consistency. Strive to keep your style consistent with the project on which +you are working. Recommended Reading ------------------- -The following contain good information, some of which is repeated below, some of which is contradicted below. +The following contain good information, some of which is repeated below, some +of which is contradicted below. * <http://doc.cat-v.org/bell_labs/pikestyle> * <https://www.kernel.org/doc/Documentation/process/coding-style.rst> _AT_@ -45,7 +48,6 @@ Blocks * `}` on own line unless continuing statement (`if else`, `do while`, ...) * Use block for single statement iff * Inner statement needs a block - for (;;) { if (foo) { bar; _AT_@ -53,7 +55,6 @@ Blocks } } * Another branch of the same statement needs a block - if (foo) { bar; } else { _AT_@ -139,7 +140,6 @@ Tests and Boolean Values Handling Errors --------------- * When functions `return -1` for error test against `0` not `-1` - if (func() < 0) hcf(); * Use `goto` to unwind and cleanup when necessary instead of multiple nested levels _AT_@ -150,7 +150,6 @@ Handling Errors Enums vs #define ---------------- * Use enums for values that are grouped semantically and #define otherwise - #define MAXSZ 4096 #define MAGIC1 0xdeadbeef diff --git a/suckless.org/community/index.md b/suckless.org/community/index.md index 76d11884..428216b9 100644 --- a/suckless.org/community/index.md +++ b/suckless.org/community/index.md _AT_@ -3,7 +3,6 @@ Community Mailing lists ------------- - * `dev_AT_suckless.org` - for dwm/dmenu/st/... users, development discussion, bug reports and general discussion * `hackers_AT_suckless.org` - for patches and patch discussion. Commit messages _AT_@ -14,7 +13,6 @@ Mailing lists * `wiki_AT_suckless.org` - for discussion about the wiki, also automatic wiki commit messages are posted here. - ### Best practice When beginning a new discussion on the mailing lists, except for the wiki_AT_ _AT_@ -35,7 +33,6 @@ In both cases describe the problem or the fix clearly. * Don't use HTML mail: use plain-text UTF8. * Don't top-post: bottom-post. - ### Mailing list commands Send a mail from your (not yet) subscribed email address to one of the _AT_@ -105,13 +102,11 @@ mailing list so you can see eventual comments on your patches. Mailing lists web archive ------------------------- - An archive of all mails posted to the mailing lists is accessible via [lists.suckless.org](//lists.suckless.org/). Related lists ------------- - * [9fans](http://plan9.bell-labs.com/wiki/plan9/mailing_lists/#9fans) - fans of the [Plan 9 from Bell Labs](http://9fans.net) operating system * [inferno-list](http://plan9.bell-labs.com/wiki/plan9/mailing_lists/#INFERNO-LIST) _AT_@ -121,7 +116,6 @@ Related lists IRC --- - The channels are in the [OFTC](http://www.oftc.net) IRC network: [irc.oftc.net](irc://irc.oftc.net/) diff --git a/suckless.org/conferences/2015/index.md b/suckless.org/conferences/2015/index.md index 0c820a36..70027cfd 100644 --- a/suckless.org/conferences/2015/index.md +++ b/suckless.org/conferences/2015/index.md _AT_@ -8,7 +8,6 @@ Friday, 2015-10-30 Talks ----- - (11:00-11:15) *Welcome*, Anselm R Garbe > Anselm opened slcon2 and gave an overview on the final conference schedule. diff --git a/suckless.org/conferences/2016/index.md b/suckless.org/conferences/2016/index.md index 0cfd4983..4af489ba 100644 --- a/suckless.org/conferences/2016/index.md +++ b/suckless.org/conferences/2016/index.md _AT_@ -8,7 +8,6 @@ slcon 2016 was held in Hofheim am Taunus near Frankfurt am Main on Friday, 2016-09-23 ================== - Arrival day. (19:30) *Gathering in the "Waldgeist"* _AT_@ -19,7 +18,6 @@ Arrival day. Saturday, 2016-09-24 ==================== - (10:00-10:05) *Welcome*, Anselm R Garbe > Anselm opened the slcon 2016 talk session _AT_@ -235,12 +233,10 @@ Video: Sunday, 2016-09-25 ================== - No talk session plans, hack sessions and departure day. Acknowledgment ============== - We kindly thank [![genua GmbH](../genua.png)](http://www.genua.eu) for lending us the equipment to record the slcon 2016 conference videos. diff --git a/suckless.org/conferences/2017/index.md b/suckless.org/conferences/2017/index.md index 21930036..2565ea74 100644 --- a/suckless.org/conferences/2017/index.md +++ b/suckless.org/conferences/2017/index.md _AT_@ -1,5 +1,5 @@ -# suckless hackathon 2017, Würzburg, Germany - +suckless hackathon 2017, Würzburg, Germany +============================================ slcon hackathon 2017 was held in Würzburg on 2017-09-(01-03). [![slcon2017 group photo](slcon2017-s.png)](slcon2017.png) _AT_@ -12,8 +12,8 @@ We also introduced the annual suckless torchlight hike for the first time. [![hike 2017 photo](hike2017-s.png)](hike2017.png) -## Previous conferences - +Previous conferences +-------------------- * [slcon 2016](../2016/) * [slcon 2015](../2015/) * [slcon 2013](../2013/) diff --git a/suckless.org/conferences/2018/index.md b/suckless.org/conferences/2018/index.md index 91de8820..228e9118 100644 --- a/suckless.org/conferences/2018/index.md +++ b/suckless.org/conferences/2018/index.md _AT_@ -1,6 +1,5 @@ suckless hackathon 2018, Würzburg, Germany =========================================== - slcon hackathon 2018 was held in Würzburg on 2018-07-(06-09). [![slcon2018 group photo 0](slcon2018-0-s.jpg)](slcon2018-0.jpg) diff --git a/suckless.org/donations/index.md b/suckless.org/donations/index.md index e12a8ab7..f64c977f 100644 --- a/suckless.org/donations/index.md +++ b/suckless.org/donations/index.md _AT_@ -21,15 +21,15 @@ is appreciated by the entire suckless community. Present ------- -Following people are currently donating in one or another way to the suckless.org project: +Following people are currently donating in one or another way to the +suckless.org project: * Anselm R Garbe donates domains and servers. Past ---- -Following people have donated to the suckless.org project -certain amounts of money, which have been used for the dedicated server rent -in the past: +Following people have donated to the suckless.org project certain amounts of +money, which have been used for the dedicated server rent in the past: * Mikko Nyman donated **100 EUR** * Benedikt Brenner donated **50 EUR** diff --git a/suckless.org/hacking/index.md b/suckless.org/hacking/index.md index 4c36ffc8..8d12b095 100644 --- a/suckless.org/hacking/index.md +++ b/suckless.org/hacking/index.md _AT_@ -3,13 +3,13 @@ Hacking Copying/license --------------- -We only accept contributions from individuals, not corporate entities. See -the project LICENSE file you're contributing to. +We only accept contributions from individuals, not corporate entities. See the +project LICENSE file you're contributing to. Debugging --------- -If you find any crashes, please send a full backtrace to the dedicated mailing list. -You can create backtraces with `gdb`: +If you find any crashes, please send a full backtrace to the dedicated mailing +list. You can create backtraces with `gdb`: Before starting a program, you may have to allow core file creation. It is recommended that you put this in your profile: _AT_@ -23,7 +23,8 @@ After the program crashes, do the following: $ gdb -q `which program` /path/to/core gdb> bt full -If you encounter freezes (no crash at all) of the program, you can debug as follows: +If you encounter freezes (no crash at all) of the program, you can debug as +follows: $ gdb -q `which program` --attach `pgrep -o program` gdb> bt full _AT_@ -48,18 +49,18 @@ the pages you see here. patch filename format --------------------- -The expected format for patches is +The expected format for patches is: For git revisions: toolname-patchname-YYYYMMDD-SHORTHASH.diff dwm-allyourbase-20160617-3465bed.diff -The YYYYMMDD date should correspond to the last time the patch has been modified. -The SHORTHASH here is the seven chars git commit short hash corresponding to the -last commit of the tool on which the patch can be applied correctly and -is working with. -You can get it by taking the first seven chars of the full hash or for example: +The YYYYMMDD date should correspond to the last time the patch has been +modified. The SHORTHASH here is the seven chars git commit short hash +corresponding to the last commit of the tool on which the patch can be applied +correctly and is working with. You can get it by taking the first seven chars +of the full hash or for example: git rev-parse --short <commit-id> (with commit-id: HEAD, commit hash, etc.) diff --git a/suckless.org/index.md b/suckless.org/index.md index a636858d..c7e0395d 100644 --- a/suckless.org/index.md +++ b/suckless.org/index.md _AT_@ -1,6 +1,8 @@ -Home of [dwm](//dwm.suckless.org), [dmenu](//tools.suckless.org/dmenu) and other quality software with a focus on simplicity, clarity, and frugality. +Home of [dwm](//dwm.suckless.org), [dmenu](//tools.suckless.org/dmenu) and +other quality software with a focus on simplicity, clarity, and frugality. -Read more about our [philosophy](/philosophy) and join us on the [mailing list](/community). +Read more about our [philosophy](/philosophy) and join us on the [mailing +list](/community). News ==== _AT_@ -52,47 +54,53 @@ Registrations for [slcon5](/conferences/2018/) are now open. 2017-08-30 ---------- -suckless.org now supports TLS using [Let's Encrypt](https://letsencrypt.org/). Cloning git repos over -HTTPS now works. Some links on the page have been changed to allow both -HTTP and HTTPS. +suckless.org now supports TLS using [Let's Encrypt](https://letsencrypt.org/). +Cloning git repos over HTTPS now works. Some links on the page have been +changed to allow both HTTP and HTTPS. HSTS is not fully working yet. This will be fixed. The IPv6 AAAA record was added and IPv6 is fully working now. -suckless has many subdomains, these should hopefully all work via TLS. -If you see a subdomain without a signed certificate please report it. -If you find any broken links on the wiki pages, these can be fixed -by anyone. +suckless has many subdomains, these should hopefully all work via TLS. If you +see a subdomain without a signed certificate please report it. If you find any +broken links on the wiki pages, these can be fixed by anyone. 2017-07-03 ---------- -The suckless.org project is now hosted on a new server. All inactive accounts have been removed during the relocation. +The suckless.org project is now hosted on a new server. All inactive accounts +have been removed during the relocation. -Please note that the new ECDSA key fingerprint is SHA256:7DBXcYScmsxbv7rMJUJoJsY5peOrngD4QagiXX6MiQU. +Please note that the new ECDSA key fingerprint is +SHA256:7DBXcYScmsxbv7rMJUJoJsY5peOrngD4QagiXX6MiQU. 2017-05-06 ---------- -[blind 1.1](//tools.suckless.org/blind) released: [download](//dl.suckless.org/tools/blind-1.1.tar.gz) +[blind 1.1](//tools.suckless.org/blind) released: +[download](//dl.suckless.org/tools/blind-1.1.tar.gz) 2017-05-02 ---------- -[dmenu 4.7](//tools.suckless.org/dmenu) released: [download](//dl.suckless.org/tools/dmenu-4.7.tar.gz) +[dmenu 4.7](//tools.suckless.org/dmenu) released: +[download](//dl.suckless.org/tools/dmenu-4.7.tar.gz) 2017-04-14 ---------- -[farbfeld 3](//tools.suckless.org/farbfeld/) released: [download](//dl.suckless.org/farbfeld/farbfeld-3.tar.gz) +[farbfeld 3](//tools.suckless.org/farbfeld/) released: +[download](//dl.suckless.org/farbfeld/farbfeld-3.tar.gz) 2017-03-28 ---------- -[surf](//surf.suckless.org/) now uses webkit2 by default. -The webkit1 version is kept in the [surf-webkit1](//git.suckless.org/surf/log/?h=surf-webkit1) branch. -The “master” branch doesn't exist anymore, HEAD is now [surf-webkit2](//git.suckless.org/surf/log/), -so be sure to rebase your local master commits onto surf-webkit1. +[surf](//surf.suckless.org/) now uses webkit2 by default. The webkit1 version +is kept in the [surf-webkit1](//git.suckless.org/surf/log/?h=surf-webkit1) +branch. The “master” branch doesn't exist anymore, HEAD is now +[surf-webkit2](//git.suckless.org/surf/log/), so be sure to rebase your local +master commits onto surf-webkit1. 2016-11-20 ---------- -[slock 1.4](//tools.suckless.org/slock) released: [download](//dl.suckless.org/tools/slock-1.4.tar.gz) +[slock 1.4](//tools.suckless.org/slock) released: +[download](//dl.suckless.org/tools/slock-1.4.tar.gz) 2016-09-26 ---------- _AT_@ -100,15 +108,18 @@ Videos of the [slcon 2016 talks](conferences/2016) are now available. 2016-08-24 ---------- -[slcon3](conferences/2016) preliminary schedule now published. If you want to attend please register before: **2016-09-01**. +[slcon3](conferences/2016) preliminary schedule now published. If you want to +attend please register before: **2016-09-01**. 2015-12-19 ---------- -[surf 0.7](//surf.suckless.org) released: [download](//dl.suckless.org/surf/surf-0.7.tar.gz) +[surf 0.7](//surf.suckless.org) released: +[download](//dl.suckless.org/surf/surf-0.7.tar.gz) 2015-11-25 ---------- -[sent 0.2](//tools.suckless.org/sent) released: [download](//dl.suckless.org/tools/sent-0.2.tar.gz) +[sent 0.2](//tools.suckless.org/sent) released: +[download](//dl.suckless.org/tools/sent-0.2.tar.gz) 2015-11-13 ---------- _AT_@ -116,15 +127,18 @@ Videos of the [slcon2 talks](conferences/2015) are now available. 2015-11-09 ---------- -[dwm 6.1](//dwm.suckless.org) released: [download](//dl.suckless.org/dwm/dwm-6.1.tar.gz) +[dwm 6.1](//dwm.suckless.org) released: +[download](//dl.suckless.org/dwm/dwm-6.1.tar.gz) 2015-09-23 ---------- -Kai and Anselm gave an interview about suckless.org on Randal Schwartz's [FLOSS Weekly show](https://twit.tv/shows/floss-weekly/episodes/355?autostart=false) +Kai and Anselm gave an interview about suckless.org on Randal Schwartz's [FLOSS +Weekly show](https://twit.tv/shows/floss-weekly/episodes/355?autostart=false) 2015-07-07 ---------- -[st 0.6](//st.suckless.org) released: [download](//dl.suckless.org/st/st-0.6.tar.gz) +[st 0.6](//st.suckless.org) released: +[download](//dl.suckless.org/st/st-0.6.tar.gz) 2015-02-14 ---------- _AT_@ -134,38 +148,45 @@ The CfP for interested participants is now open and will end on 2015-04-30. 2014-11-29 ---------- -[lsw 0.3](//tools.suckless.org/x/lsw) released: [download](//dl.suckless.org/tools/lsw-0.3.tar.gz) +[lsw 0.3](//tools.suckless.org/x/lsw) released: +[download](//dl.suckless.org/tools/lsw-0.3.tar.gz) 2014-11-24 ---------- There will be a [suckless assembly](https://events.ccc.de/congress/2014/wiki/Assembly%3ASuckless) -at the [31C3](https://events.ccc.de/congress/2014). The whole suckless +at the [31C3](https://events.ccc.de/congress/2014). The whole suckless community is invited to come, meet and hack! 2014-08-05 ---------- -[sinit 0.9.1](//core.suckless.org/sinit) released: [download](//dl.suckless.org/sinit/sinit-0.9.1.tar.gz) +[sinit 0.9.1](//core.suckless.org/sinit) released: +[download](//dl.suckless.org/sinit/sinit-0.9.1.tar.gz) 2014-05-01 ---------- -[ubase 0.1](//core.suckless.org/ubase) released: [download](//dl.suckless.org/ubase/ubase-0.1.tar.gz) +[ubase 0.1](//core.suckless.org/ubase) released: +[download](//dl.suckless.org/ubase/ubase-0.1.tar.gz) 2014-01-21 ---------- -[tabbed 0.6](//tools.suckless.org/tabbed) released: [download](//dl.suckless.org/tools/tabbed-0.6.tar.gz) +[tabbed 0.6](//tools.suckless.org/tabbed) released: +[download](//dl.suckless.org/tools/tabbed-0.6.tar.gz) 2013-06-16 ---------- -[sic 1.2](//tools.suckless.org/sic) released: [download](//dl.suckless.org/tools/sic-1.2.tar.gz) +[sic 1.2](//tools.suckless.org/sic) released: +[download](//dl.suckless.org/tools/sic-1.2.tar.gz) 2013-05-07 ---------- -[xssstate 1.1](//tools.suckless.org/x/xssstate) released: [download](//dl.suckless.org/tools/xssstate-1.1.tar.gz) +[xssstate 1.1](//tools.suckless.org/x/xssstate) released: +[download](//dl.suckless.org/tools/xssstate-1.1.tar.gz) 2013-05-06 ---------- -[tabbed 0.5](//tools.suckless.org/tabbed) released: [download](//dl.suckless.org/tools/tabbed-0.5.tar.gz) +[tabbed 0.5](//tools.suckless.org/tabbed) released: +[download](//dl.suckless.org/tools/tabbed-0.5.tar.gz) 2013-04-21 ---------- _AT_@ -174,17 +195,18 @@ We are glad to announce the [slcon 2013](/conferences/2013) programme. 2012-11-29 ---------- We are glad to announce the switch to git from mercurial in all of our -repositories. You can find them at [git.suckless.org](//git.suckless.org) Many thanks to -20h for his contribution! +repositories. You can find them at [git.suckless.org](//git.suckless.org) Many +thanks to 20h for his contribution! 2012-10-28 ---------- -[sprop 0.1](//tools.suckless.org/x/sprop) released: [download](//dl.suckless.org/tools/sprop-0.1.tar.gz) +[sprop 0.1](//tools.suckless.org/x/sprop) released: +[download](//dl.suckless.org/tools/sprop-0.1.tar.gz) 2012-10-14 ---------- -Today we heard a very sad news that our friend, contributor and philosophical advisor Uriel has passed away peacefully. -We will miss him a lot. +Today we heard a very sad news that our friend, contributor and philosophical +advisor Uriel has passed away peacefully. We will miss him a lot. ![uriel](/uriel.png) _AT_@ -192,16 +214,18 @@ RIP 2011-05-14 ---------- -Anselm gave a talk about **The 'suckless.org' universe** at the [LinuxTag 2011](http://www.linuxtag.org) -conference in Berlin. +Anselm gave a talk about **The 'suckless.org' universe** at the [LinuxTag +2011](http://www.linuxtag.org) conference in Berlin. 2011-01-31 ---------- -[ii 1.6](//tools.suckless.org/ii) released (regression fix): [download](//dl.suckless.org/tools/ii-1.6.tar.gz) +[ii 1.6](//tools.suckless.org/ii) released (regression fix): +[download](//dl.suckless.org/tools/ii-1.6.tar.gz) 2010-06-04 ---------- -[9base-6](//tools.suckless.org/9base) released: [download](//dl.suckless.org/tools/9base-6.tar.gz) +[9base-6](//tools.suckless.org/9base) released: +[download](//dl.suckless.org/tools/9base-6.tar.gz) 2010-03-28 ---------- _AT_@ -212,11 +236,15 @@ We thank him for his work. Rest in peace. 2010-03-07 ---------- -We applied as a mentoring organisation for GSoC 2010. See our [project ideas for GSoC 2010](/project_ideas) page for further details. +We applied as a mentoring organisation for GSoC 2010. See our [project ideas +for GSoC 2010](/project_ideas) page for further details. 2010-02-13 ---------- -Some of us will visit [CLT2010](http://chemnitzer.linux-tage.de/2010/). Anselm will give a [talk](http://chemnitzer.linux-tage.de/2010/vortraege/detail.html?idx=308) about stali on the second day of CLT2010 at 17:00. +Some of us will visit [CLT2010](http://chemnitzer.linux-tage.de/2010/). Anselm +will give a +[talk](http://chemnitzer.linux-tage.de/2010/vortraege/detail.html?idx=308) +about stali on the second day of CLT2010 at 17:00. 2009-12-28 ---------- _AT_@ -224,8 +252,10 @@ There was a small community meeting in Berlin! Thanks to all attendees. 2008-08-02 ---------- -[wmname 0.1](//tools.suckless.org/x/wmname) released: [download](//dl.suckless.org/tools/wmname-0.1.tar.gz) +[wmname 0.1](//tools.suckless.org/x/wmname) released: +[download](//dl.suckless.org/tools/wmname-0.1.tar.gz) 2008-07-29 ---------- -[sselp 0.2](//tools.suckless.org/x/sselp) released: [download](//dl.suckless.org/tools/sselp-0.2.tar.gz) +[sselp 0.2](//tools.suckless.org/x/sselp) released: +[download](//dl.suckless.org/tools/sselp-0.2.tar.gz) diff --git a/suckless.org/people/more_people/index.md b/suckless.org/people/more_people/index.md index 7c7eea95..96785a6b 100644 --- a/suckless.org/people/more_people/index.md +++ b/suckless.org/people/more_people/index.md _AT_@ -1,6 +1,5 @@ More people =========== - The following people are/were involved mainly in wmii and dwm development as developers and contributors. If you are missing, feel free to add yourself. diff --git a/suckless.org/philosophy/index.md b/suckless.org/philosophy/index.md index 3ef35c3e..06be6aed 100644 --- a/suckless.org/philosophy/index.md +++ b/suckless.org/philosophy/index.md _AT_@ -1,14 +1,13 @@ Philosophy ========== - We are the home of quality software such as [dwm](//dwm.suckless.org), -[dmenu](//tools.suckless.org/dmenu), [st](//st.suckless.org/) and -plenty of other [tools](//tools.suckless.org), with -a focus on simplicity, clarity and frugality. Our philosophy is -about keeping things simple, minimal and usable. We believe this should become -the mainstream philosophy in the IT sector. Unfortunately, the tendency for -complex, error-prone and slow software seems to be prevalent in the present-day -software industry. We intend to prove the opposite with our software projects. +[dmenu](//tools.suckless.org/dmenu), [st](//st.suckless.org/) and plenty of +other [tools](//tools.suckless.org), with a focus on simplicity, clarity and +frugality. Our philosophy is about keeping things simple, minimal and usable. +We believe this should become the mainstream philosophy in the IT sector. +Unfortunately, the tendency for complex, error-prone and slow software seems to +be prevalent in the present-day software industry. We intend to prove the +opposite with our software projects. Our project focuses on advanced and experienced computer users. In contrast with the usual proprietary software world or many mainstream open source _AT_@ -22,8 +21,8 @@ appropriate solutions for his/her work style. Designing simple and elegant software is far more difficult than letting ad-hoc or over-ambitious features obscure the code over time. However one has to pay this price to achieve reliability and maintainability. Furthermore, minimalism -results in reasonable and attainable goals. We strive to maintain minimalism and -clarity to drive development to completion. +results in reasonable and attainable goals. We strive to maintain minimalism +and clarity to drive development to completion. Manifest -------- diff --git a/suckless.org/project_ideas/index.md b/suckless.org/project_ideas/index.md index f60bb4c9..d760abb3 100644 --- a/suckless.org/project_ideas/index.md +++ b/suckless.org/project_ideas/index.md _AT_@ -1,6 +1,5 @@ Project ideas ============= - Please read our [philosophy](/philosophy) for background information. Peer review _AT_@ -30,11 +29,11 @@ UNIX-like operating systems. The difficulty ranges from medium to high. There is libdrw in suckless now, which still uses xft and fontconfig. Fontconfig and xft are ugly and require too much internal knowledge to be -useful. The next logical layer evolved as pango and cairo. Both of course -added HTML formatting and vector drawing. This is not needed to simply draw -some text somewhere. And this is what a suckless font rendering library -should do: Give it a font string and render at some position the given font -without having to care about font specifics. +useful. The next logical layer evolved as pango and cairo. Both of course added +HTML formatting and vector drawing. This is not needed to simply draw some text +somewhere. And this is what a suckless font rendering library should do: Give +it a font string and render at some position the given font without having to +care about font specifics. [Some work](https://git.ekleog.org/leo/dtext) has already been done to replace libXft and Fontconfig. Real-world testing is however still needed. _AT_@ -46,16 +45,15 @@ about the font formats and how to handle them. The GNU autotools such as automake and autoconf are completely unusable in non-chroot'ed cross-compile environments and often completely fail to produce -statically linked libraries or executables. Also they are -extremely slow and bloated. +statically linked libraries or executables. Also they are extremely slow and +bloated. -The stali build system is not using autotools for good -reason, however many UNIX/Linux open source packages do. To create statically -linked libraries out of the ld arguments we need an ld wrapper or -re-implementation that creates static libraries or executables. This would -enable us to build static libraries and executables out of any automake -generated makefiles without the need to write make replacements or patching the -build system of a particular package. +The stali build system is not using autotools for good reason, however many +UNIX/Linux open source packages do. To create statically linked libraries out +of the ld arguments we need an ld wrapper or re-implementation that creates +static libraries or executables. This would enable us to build static libraries +and executables out of any automake generated makefiles without the need to +write make replacements or patching the build system of a particular package. The ld wrapper needs to be extended to also link against uclibc first and if that fails to fallback to glibc, in order to produce smaller executables in the _AT_@ -85,9 +83,9 @@ structure: ### Write cookie handler for surf -The biggest disadvantage of [surf](//surf.suckless.org) is sloppy -cookie handling. libwebkit and libsoup (which are used for HTTP) were never -designed to run in multiple processes simultaneously. +The biggest disadvantage of [surf](//surf.suckless.org) is sloppy cookie +handling. libwebkit and libsoup (which are used for HTTP) were never designed +to run in multiple processes simultaneously. This task requires writing a new cookie handler in surf which: _AT_@ -104,8 +102,9 @@ abstraction of a mass of information in a filesystem. The goal of this meta project is to find ideas how to implement gopher services to easily access the web and new information. -See the [protocol](https://en.wikipedia.org/wiki/Gopher_%28protocol%29#Protocol) -for how easy it is to write a `menu`, which can be seen as a directory. +See the +[protocol](https://en.wikipedia.org/wiki/Gopher_%28protocol%29#Protocol) for +how easy it is to write a `menu`, which can be seen as a directory. * [gopherproject.org](http://www.gopherproject.org) * [gopher proxy](http://gopher.floodgap.com/gopher/) _AT_@ -127,5 +126,5 @@ If you prepare to work on this project, plan ahead in recruiting more developers. You will need them. ***Requirements:*** Very good C knowledge, a very good knowledge in web -standards and how to strip them down to the suckless level. -***Difficulty level:*** Probably impossible. +standards and how to strip them down to the suckless level. ***Difficulty +level:*** Probably impossible. diff --git a/suckless.org/rocks/index.md b/suckless.org/rocks/index.md index 1e29be22..f38abb8c 100644 --- a/suckless.org/rocks/index.md +++ b/suckless.org/rocks/index.md _AT_@ -1,17 +1,15 @@ Stuff that rocks ================ - -Software on this page should have ideas similar to the suckless [philosophy](//suckless.org/philosophy/). -The software must be FOSS licensed. +Software on this page should have ideas similar to the suckless +[philosophy](//suckless.org/philosophy/). The software must be FOSS licensed. Libraries --------- This section is for small, usable development libraries, which can be used for -writing software that sucks less. -These should preferably be under the MIT/X consortium or BSD licenses, WTFPL, -or public domain, or alternatively LGPL, because it makes them legally -compatible with other suckless projects. +writing software that sucks less. These should preferably be under the MIT/X +consortium or BSD licenses, WTFPL, or public domain, or alternatively LGPL, +because it makes them legally compatible with other suckless projects. ### Libc Implementations _AT_@ -61,7 +59,8 @@ program is usable are: * The program will accept any window size. * The program consists of a single window (there are no nested windows, such as in Xpdf). -This covers most console-based programs and programs from [plan9port](https://9fans.github.io/plan9port/). +This covers most console-based programs and programs from +[plan9port](https://9fans.github.io/plan9port/). ### Audio Players diff --git a/suckless.org/sucks/index.md b/suckless.org/sucks/index.md index 199ae43d..23a72917 100644 --- a/suckless.org/sucks/index.md +++ b/suckless.org/sucks/index.md _AT_@ -3,9 +3,8 @@ Stuff that sucks See the [philosophy](//suckless.org/philosophy) page about what applies to this page. -Bigger topics that suck: -[systemd](//suckless.org/sucks/systemd), [the -web](//suckless.org/sucks/web) +Bigger topics that suck: [systemd](//suckless.org/sucks/systemd), +[the web](//suckless.org/sucks/web) Libraries --------- _AT_@ -46,7 +45,6 @@ possible to avoid them. If you use them, consider looking for alternatives. Build Systems ------------- - * [cmake][13] (written in C++) - so huge and bloated, compilation takes longer than compiling GCC (!). It's not even possible to create freestanding Makefiles, since the generated _AT_@ -148,7 +146,6 @@ C Compilers See also -------- - The [list of harmful software](http://harmful.cat-v.org/software/) at [cat-v.org](http://cat-v.org). [aterm-ml-post]: //lists.suckless.org/dev/1102/7141.html diff --git a/suckless.org/sucks/systemd/index.md b/suckless.org/sucks/systemd/index.md index d8fc4d81..6f901fb5 100644 --- a/suckless.org/sucks/systemd/index.md +++ b/suckless.org/sucks/systemd/index.md _AT_@ -305,8 +305,8 @@ And on the oldest and best, Slackware: $ reboot reboot: must be superuser. -systemd is driving "just google the problem" attitude, because how the -hell are you expected to troubleshoot this kind of error otherwise? +systemd is driving "just google the problem" attitude, because how the hell are +you expected to troubleshoot this kind of error otherwise? Further Reading --------------- diff --git a/suckless.org/sucks/web/index.md b/suckless.org/sucks/web/index.md index b5cdbe58..df788334 100644 --- a/suckless.org/sucks/web/index.md +++ b/suckless.org/sucks/web/index.md _AT_@ -11,13 +11,13 @@ in the meanwhile ruined our climate: the web. For short: There is an industry which is specialized on extending the resource usage to display just some characters on your display. Millions of jobs are based on outputting HTML in an inefficient way. Look at PHP and all the -techniques to extend its "scalability". It is not scalable, it's a -prototyping language. Not to mention all its syntactic irregulatories. -Nowadays classes on classes on classes with getter and setter functions define -buttons which can be stripped down to just a simple character string. The web -is the practical example why corporate software development does not work and -never will. It only ruins our environment, sanity and many brains which could -be used for the better of humanity. +techniques to extend its "scalability". It is not scalable, it's a prototyping +language. Not to mention all its syntactic irregulatories. Nowadays classes on +classes on classes with getter and setter functions define buttons which can be +stripped down to just a simple character string. The web is the practical +example why corporate software development does not work and never will. It +only ruins our environment, sanity and many brains which could be used for the +better of humanity. PHP was used as the primary example for how interpreted languages produce resource waste. There were optimisations for compiling PHP to C++(!). But this _AT_@ -26,10 +26,7 @@ night. Gopher ------ - For seeing a counter example in how to not suck, see the gopher. You can read more about it at the [gopherproject (http)](http://gopherproject.org) or [gopherproject (gopher)](gopher://gopherproject.org). - - diff --git a/tools.suckless.org/9base/index.md b/tools.suckless.org/9base/index.md index c66fa7cc..44650a31 100644 --- a/tools.suckless.org/9base/index.md +++ b/tools.suckless.org/9base/index.md _AT_@ -3,7 +3,8 @@ 9base is a port of various original Plan 9 tools for Unix, based on [plan9port](http://swtch.com/plan9port/). -It currently contains the following original (no source changes) shell commands from Plan 9 for Unix: +It currently contains the following original (no source changes) shell commands +from Plan 9 for Unix: * ascii * awk _AT_@ -55,8 +56,9 @@ It currently contains the following original (no source changes) shell commands * uniq * unutf -It also contains the Plan 9 libc, libbio, libregexp, libfmt and libutf. -The overall SLOC is about 66kSLOC, so this userland + all libs is much smaller than, e.g. bash (duh!). +It also contains the Plan 9 libc, libbio, libregexp, libfmt and libutf. The +overall SLOC is about 66kSLOC, so this userland + all libs is much smaller +than, e.g. bash (duh!). Download -------- _AT_@ -65,4 +67,5 @@ Download Usage ----- -9base can be used to run [werc](http://werc.cat-v.org) instead of the full blown [plan9port](http://swtch.com/plan9port). +9base can be used to run [werc](http://werc.cat-v.org) instead of the full +blown [plan9port](http://swtch.com/plan9port). diff --git a/tools.suckless.org/blind/index.md b/tools.suckless.org/blind/index.md index f350dafb..d7fbfc2b 100644 --- a/tools.suckless.org/blind/index.md +++ b/tools.suckless.org/blind/index.md _AT_@ -4,22 +4,17 @@ blind is a collection of command line video editing utilities. Video format ------------ - -blind uses a raw video format with a simple container. A -file begins with an plain-text line, containing the -number of frames, the width, the height, and the pixel -format, all separated by a single regular blank space, -without and leading or tailing white space. After this -line, which ends with an LF, there is a NUL-byte -followed by the 4 characters “uivf” (unportable, interim -video format). This head is followed by the video -frame-by-frame with row-major frames. Pixels are -independently encoded, and are encoded unscaled CIE XYZ -with non-premultiplied alpha and without any -transfer-function, with values stored in native `double`s -or optionally in native `float`s. These two configurations -are the only options, but the container format is -designed so this can be changed arbitrarily in the future. +blind uses a raw video format with a simple container. A file begins with an +plain-text line, containing the number of frames, the width, the height, and +the pixel format, all separated by a single regular blank space, without and +leading or tailing white space. After this line, which ends with an LF, there +is a NUL-byte followed by the 4 characters “uivf” (unportable, interim +video format). This head is followed by the video frame-by-frame with row-major +frames. Pixels are independently encoded, and are encoded unscaled CIE XYZ with +non-premultiplied alpha and without any transfer-function, with values stored +in native `double`s or optionally in native `float`s. These two configurations +are the only options, but the container format is designed so this can be +changed arbitrarily in the future. FAQ --- _AT_@ -30,171 +25,135 @@ Yes, but see the rationale below! ### Doesn't raw video takes up a lot of space? -Yes it does, a 4-channel pixel encoded with `double` -takes 32 bytes. A 1280-by-720 frame with this pixel format -takes 29.4912 MB (SI), which means you can only fit almost -3391 frames in 100 GB, which is about 113 seconds or 1:53 -minutes with a framerate of 30 fps. Therefore, you -probably do not want to store anything in this format -unless you know you have room for it, or if it is very -small segment of your video, which unfortunely becomes a -bit of a problem when reversing a video. However, when -possible, feed the resulting video directly to -`blind-to-video` to convert it into a compressed, -lossless video format, if the video is not too large, you -can choose to compress it with bzip2 instead. +Yes it does, a 4-channel pixel encoded with `double` takes 32 bytes. A +1280-by-720 frame with this pixel format takes 29.4912 MB (SI), which means you +can only fit almost 3391 frames in 100 GB, which is about 113 seconds or 1:53 +minutes with a framerate of 30 fps. Therefore, you probably do not want to +store anything in this format unless you know you have room for it, or if it is +very small segment of your video, which unfortunely becomes a bit of a problem +when reversing a video. However, when possible, feed the resulting video +directly to `blind-to-video` to convert it into a compressed, lossless video +format, if the video is not too large, you can choose to compress it with bzip2 +instead. ### For what kind of video editing is blind designed? -It is designed for composing new videos. It is not -designed for making small changes as this can probably -be done faster with a graphical video editor or with -ffmpeg which would also be much faster. +It is designed for composing new videos. It is not designed for making small +changes as this can probably be done faster with a graphical video editor or +with ffmpeg which would also be much faster. ### Does it support farbfeld? -Of course. If you want to use farbfeld, you can use -the `-f` flag for `blind-to-image` and `blind-from-image`, -this will cause the programs to convert directly to -or from farbfeld without using `convert(1)`. +Of course. If you want to use farbfeld, you can use the `-f` flag for +`blind-to-image` and `blind-from-image`, this will cause the programs to +convert directly to or from farbfeld without using `convert(1)`. ### Why doesn't blind uses encode pixels like farbfeld? -blind and farbfeld solve completely different problems. -farbfeld solves to problem of storing pictures in a -simply way that can easily be viewed and editored. -blind does not try to solve the problem of storing -videos, video takes a lot of space and need compression -designed especially for video or three-dimensional -raster images. Compressed video cannot be efficiently -edited because compression takes too long. Instead -blind solves the problem of efficiently processing -video: thousands of pictures. Because blind doesn't -try to create a format for storing images, therefore -it's format doesn't need to be portable. Furthermore, -due to legacy in television (namely, that of -black-and-white television), video formats do not -store values in sRGB, but rather in Y'UV, so there -is next to no benefit to storing colours in sRGB. +blind and farbfeld solve completely different problems. farbfeld solves to +problem of storing pictures in a simply way that can easily be viewed and +editored. blind does not try to solve the problem of storing videos, video +takes a lot of space and need compression designed especially for video or +three-dimensional raster images. Compressed video cannot be efficiently edited +because compression takes too long. Instead blind solves the problem of +efficiently processing video: thousands of pictures. Because blind doesn't try +to create a format for storing images, therefore it's format doesn't need to be +portable. Furthermore, due to legacy in television (namely, that of +black-and-white television), video formats do not store values in sRGB, but +rather in Y'UV, so there is next to no benefit to storing colours in sRGB. ### Why doesn't blind use sRGB? -If I tell you I use CIE XYZ, you will only have two -questions: “how are values stored?” and “is Y scaled -to [0, 100] or [0, 1]?” When I tell you I use sRGB -you have more questions: “do you support out-of-gamut -colours?”, “how are values stored?”, “which scale -do you use?”, and “is the transfer-function applied?” +If I tell you I use CIE XYZ, you will only have two questions: “how are +values stored?” and “is Y scaled to [0, 100] or [0, 1]?” When I tell you +I use sRGB you have more questions: “do you support out-of-gamut colours?”, +“how are values stored?”, “which scale do you use?”, and “is the +transfer-function applied?” -CIE XYZ also has the advantage of having the brightness -encoded in one of its parameters, Y, and obtaining -the chroma requires only simply conversion to a +CIE XYZ also has the advantage of having the brightness encoded in one of its +parameters, Y, and obtaining the chroma requires only simply conversion to a non-standardise colour model that with the same Y-value. ### Why does blind use CIE XYZ instead of CIE L\*a\*b\*? -Because CIE L\*a\*b\* is not linear, meaning that it -requires unnecessary calculations when working with -the colours. +Because CIE L\*a\*b\* is not linear, meaning that it requires unnecessary +calculations when working with the colours. ### Why does blind use CIE XYZ instead of Y'UV or YUV? -Y'UV has good performance for converting to sRGB and -is has good subsampling quality, but it is not a good -for editing. Y'UV is non-linear, so it has the same -disadvantages as CIE L\*a\*b\*. Y'UV does not have its -transfer-function applied directly to it's parameters, -instead it is a linear transformation if the sRGB with -its transfer-function applied. This means that no -performance is gained during convertion to or from -cooked video formats by using YUV. CIE XYZ also has -the advantage that it is well-known and has a one-step -conversion to almost all colour models. It also have the -advantages that it's parameters are named X, Y, Z, which -makes it very easy to choose parameter when storing -points instead of colours in a video. +Y'UV has good performance for converting to sRGB and is has good subsampling +quality, but it is not a good for editing. Y'UV is non-linear, so it has the +same disadvantages as CIE L\*a\*b\*. Y'UV does not have its transfer-function +applied directly to it's parameters, instead it is a linear transformation if +the sRGB with its transfer-function applied. This means that no performance is +gained during convertion to or from cooked video formats by using YUV. CIE XYZ +also has the advantage that it is well-known and has a one-step conversion to +almost all colour models. It also have the advantages that it's parameters are +named X, Y, Z, which makes it very easy to choose parameter when storing points +instead of colours in a video. ### Doesn't blind have any audio support? -No, it is not clear that there is actually a need for -this. There are good tools for editing audio, and -ffmpeg can be used be used to extract the audio streams -from a video or add it to a video. +No, it is not clear that there is actually a need for this. There are good +tools for editing audio, and ffmpeg can be used be used to extract the audio +streams from a video or add it to a video. ### Is it really feasible to edit video without a GUI? -Depends on what you are doing. Many things can be done -without a going, and some thing are easier to do without -a GUI. If you find that you need GUI it possible to -combine blind with a graphical editor. Furthermore, -blind could be used in by a graphical editor if one -were to write a graphical editor to use blind. +Depends on what you are doing. Many things can be done without a going, and +some thing are easier to do without a GUI. If you find that you need GUI it +possible to combine blind with a graphical editor. Furthermore, blind could be +used in by a graphical editor if one were to write a graphical editor to use +blind. Rationale --------- - -* It's source control friendly and it's easy for a user to - resolve merge conflicts and identify changes. - -* Rendering can take a very long time. With this approach, - the user can use Make to only rerender parts that have - been changed. - -* It's possible to distribute the rendering to multiple - computers, without any built in functionality for this, - for example using a distributed Make. - +* It's source control friendly and it's easy for a user to resolve merge + conflicts and identify changes. +* Rendering can take a very long time. With this approach, the user can use + Make to only rerender parts that have been changed. +* It's possible to distribute the rendering to multiple computers, without any + built in functionality for this, for example using a distributed Make. * Parallelism is added for free. - -* No room for buggy GUIs, which currently is a problem with - the large video editors for Linux. - -* Less chance that the user makes a change by mistake - without noticing it, such as moving a clip in the editor - by mistake instead of for example resizing. - +* No room for buggy GUIs, which currently is a problem with the large video + editors for Linux. +* Less chance that the user makes a change by mistake without noticing it, such + as moving a clip in the editor by mistake instead of for example resizing. * Even old, crappy computers can be used for large projects. - -* Very easy to utilise command line image editors for modify - frames, or to add your own tools for custom effects. +* Very easy to utilise command line image editors for modify frames, or to add + your own tools for custom effects. Development ----------- - -You can browse its [source code repository](//git.suckless.org/blind) -or get a copy using git with the following command: +You can browse its [source code repository](//git.suckless.org/blind) or get a +copy using git with the following command: git clone https://git.suckless.org/blind Download -------- - * [blind-1.0](//dl.suckless.org/tools/blind-1.0.tar.gz) (2017-01-22) - * [blind-1.1](//dl.suckless.org/tools/blind-1.1.tar.gz) (2017-05-06) -Also make sure to check your package manager. The following distributions provide packages: +Also make sure to check your package manager. The following distributions +provide packages: * [Alpine Linux](https://pkgs.alpinelinux.org/package/edge/testing/x86_64/blind) - * [Arch Linux (AUR)](https://aur.archlinux.org/packages/blind/) - * [Arch Linux (AUR), git version](https://aur.archlinux.org/packages/blind-git/) Dependencies ------------ - -* [ffmpeg](https://www.ffmpeg.org/) - for converting from or to other video formats. - -* [imagemagick](https://www.imagemagick.org/) - for converting regular images to frames. +* [ffmpeg](https://www.ffmpeg.org/) - for converting from or to other video + formats. +* [imagemagick](https://www.imagemagick.org/) - for converting regular images + to frames. Links ----- - * [Video tutorials](https://www.youtube.com/channel/UCg_nJOURt3guLtp4dQLIvQw) Author ------ - * Mattias Andrée (maandree_AT_kth.se) diff --git a/tools.suckless.org/dmenu/index.md b/tools.suckless.org/dmenu/index.md index 913997d6..19858b75 100644 --- a/tools.suckless.org/dmenu/index.md +++ b/tools.suckless.org/dmenu/index.md _AT_@ -1,26 +1,25 @@ dmenu ===== - dmenu is a dynamic menu for X, originally designed for -[dwm](//dwm.suckless.org/). It manages large numbers of user-defined menu -items efficiently. +[dwm](//dwm.suckless.org/). It manages large numbers of user-defined menu items +efficiently. Download -------- - * [dmenu-4.8](//dl.suckless.org/tools/dmenu-4.8.tar.gz) (2018-03-14) Mailing list ------------ - * `dev+subscribe_AT_suckless.org` ([Archives](//lists.suckless.org/dev/)) -([Old Archives](//lists.suckless.org/dwm/)) (see [community](//suckless.org/community/) for details) + ([Old Archives](//lists.suckless.org/dwm/)) (see + [community](//suckless.org/community/) for details) Development ----------- -You can [browse](//git.suckless.org/dmenu) its source code repository or get a copy using git with the following command: +You can [browse](//git.suckless.org/dmenu) its source code repository or get a +copy using git with the following command: git clone https://git.suckless.org/dmenu diff --git a/tools.suckless.org/dmenu/patches/case-insensitive/index.md b/tools.suckless.org/dmenu/patches/case-insensitive/index.md index 24b34f2e..07c75ac3 100644 --- a/tools.suckless.org/dmenu/patches/case-insensitive/index.md +++ b/tools.suckless.org/dmenu/patches/case-insensitive/index.md _AT_@ -3,7 +3,6 @@ case-insensitive Description ----------- - This patch adds support for case-insensitive searching to dmenu. This patch works on top of fuzzymatch. diff --git a/tools.suckless.org/dmenu/patches/center/index.md b/tools.suckless.org/dmenu/patches/center/index.md index 0b03338c..855087d6 100644 --- a/tools.suckless.org/dmenu/patches/center/index.md +++ b/tools.suckless.org/dmenu/patches/center/index.md _AT_@ -3,21 +3,19 @@ center Description ----------- - This patch centers dmenu in the middle of the screen. -Previously this has been achieved through the [xyw patch](//tools.suckless.org/dmenu/patches/xyw) and a bash script -to calculate the centered x and y positions. However, this is a slow and overly -complex way which is hard to integrate into programs which call dmenu directly, -eg surf or tabbed. On the other hand, This small standalone patch is -instantaneous and works globally. +Previously this has been achieved through the [xyw +patch](//tools.suckless.org/dmenu/patches/xyw) and a bash script to calculate +the centered x and y positions. However, this is a slow and overly complex way +which is hard to integrate into programs which call dmenu directly, eg surf or +tabbed. On the other hand, This small standalone patch is instantaneous and +works globally. Download -------- - * [dmenu-center-4.8.diff](dmenu-center-4.8.diff) Authors ------- - * Ed van Bruggen <edvb_AT_uw.edu> diff --git a/tools.suckless.org/dmenu/patches/fuzzymatch/index.md b/tools.suckless.org/dmenu/patches/fuzzymatch/index.md index 1defeb70..6e22af2b 100644 --- a/tools.suckless.org/dmenu/patches/fuzzymatch/index.md +++ b/tools.suckless.org/dmenu/patches/fuzzymatch/index.md _AT_@ -3,23 +3,19 @@ fuzzymatch Description ----------- - This patch adds support for fuzzy matching to dmenu, allowing users to type non-consecutive portions of the string to be matched. Notes ----- - * Supports dmenu's case insensitive switch (`-i`) Download -------- - * [dmenu-fuzzymatch-20170603-f428f3e.diff](dmenu-fuzzymatch-20170603-f428f3e.diff) * [dmenu-fuzzymatch-4.6.diff](dmenu-fuzzymatch-4.6.diff) Authors ------ - * Jan Christoph Ebersbach - jceb_AT_e-jc.de * Laslo Hunhold - dev_AT_frign.de (dmenu-4.6) diff --git a/tools.suckless.org/dmenu/patches/incremental/index.md b/tools.suckless.org/dmenu/patches/incremental/index.md index 2fbd525f..cefac3df 100644 --- a/tools.suckless.org/dmenu/patches/incremental/index.md +++ b/tools.suckless.org/dmenu/patches/incremental/index.md _AT_@ -1,17 +1,12 @@ Incremental output ================== - This patch causes dmenu to print out the current text each time a key is pressed. This is useful as an incremental search feature, for example in surf's config.h: -`#define INCSEARCH { .v = (char *[]){ "/bin/sh", "-c", - "dmenu -r < /dev/null | while read -r find; do xprop -id $0 -f _SURF_FIND 8s " - "-set _SURF_FIND \"$find\"; done", - winid, NULL } }` + #define INCSEARCH { .v = (char *[]) { "/bin/sh", "-c", "dmenu -r < /dev/null | while read -r find; do xprop -id $0 -f _SURF_FIND 8s " "-set _SURF_FIND \"$find\"; done", winid, NULL } } Download -------- - * [dmenu-incremental-20160702-3c91eed.diff](dmenu-incremental-20160702-3c91eed.diff) diff --git a/tools.suckless.org/dmenu/patches/index.md b/tools.suckless.org/dmenu/patches/index.md index bfe0d3e2..fa607dca 100644 --- a/tools.suckless.org/dmenu/patches/index.md +++ b/tools.suckless.org/dmenu/patches/index.md _AT_@ -1,5 +1,4 @@ patches ======= - -For instructions on how to submit and format patches, take a look at -the [hacking guidelines](//suckless.org/hacking). +For instructions on how to submit and format patches, take a look at the +[hacking guidelines](//suckless.org/hacking). diff --git a/tools.suckless.org/dmenu/patches/initialtext/index.md b/tools.suckless.org/dmenu/patches/initialtext/index.md index 4bf6cf49..e4454ca3 100644 --- a/tools.suckless.org/dmenu/patches/initialtext/index.md +++ b/tools.suckless.org/dmenu/patches/initialtext/index.md _AT_@ -1,6 +1,5 @@ Initial Text ============ - Adds an option to provide preselected text. Download diff --git a/tools.suckless.org/dmenu/patches/instant/index.md b/tools.suckless.org/dmenu/patches/instant/index.md index 74dd0e89..9f088ba2 100644 --- a/tools.suckless.org/dmenu/patches/instant/index.md +++ b/tools.suckless.org/dmenu/patches/instant/index.md _AT_@ -1,7 +1,7 @@ Instant Mode ============ - -Adds an flag which will cause dmenu to select an item immediately if theres one matching option left. +Adds an flag which will cause dmenu to select an item immediately if theres one +matching option left. Download -------- diff --git a/tools.suckless.org/dmenu/patches/line-height/index.md b/tools.suckless.org/dmenu/patches/line-height/index.md index 2e109d3f..fa8d27b0 100644 --- a/tools.suckless.org/dmenu/patches/line-height/index.md +++ b/tools.suckless.org/dmenu/patches/line-height/index.md _AT_@ -1,6 +1,5 @@ Line height =========== - The patch adds a '-h' option, which sets the minimum height of a dmenu line. This helps integrate dmenu with other UI elements that require a particular vertical size. diff --git a/tools.suckless.org/dmenu/patches/mouse-support/index.md b/tools.suckless.org/dmenu/patches/mouse-support/index.md index 9b3a6960..9999efbb 100644 --- a/tools.suckless.org/dmenu/patches/mouse-support/index.md +++ b/tools.suckless.org/dmenu/patches/mouse-support/index.md _AT_@ -1,13 +1,14 @@ Mouse support ============= - -With this patch dmenu will have basic mouse support. The following features are supported: +With this patch dmenu will have basic mouse support. The following features are +supported: Mouse actions supported: * Left-mouse click: * On prompt and input field: clear input text and selection. - * In horizontal and vertical mode on item: select and output item (same as pressing enter). + * In horizontal and vertical mode on item: select and output item (same as + pressing enter). * In horizontal mode on arrows: change items to show left or right. * Ctrl-left-mouse click: multisel modifier. * Right-mouse click: close. _AT_@ -21,14 +22,12 @@ Mouse actions supported: * In horizontal mode: same as left-clicking on right arrow. * In vertical mode: show items below. - Download -------- * [dmenu-mousesupport-4.7.diff](dmenu-mousesupport-4.7.diff) * [dmenu-mousesupport-4.6.diff](dmenu-mousesupport-4.6.diff) * [dmenu-mousesupport-20160702-3c91eed.diff](dmenu-mousesupport-20160702-3c91eed.diff) - Author ------ * Hiltjo Posthuma - <hiltjo_AT_codemadness.org> diff --git a/tools.suckless.org/dmenu/patches/navhistory/index.md b/tools.suckless.org/dmenu/patches/navhistory/index.md index 500d92df..d78d00dd 100644 --- a/tools.suckless.org/dmenu/patches/navhistory/index.md +++ b/tools.suckless.org/dmenu/patches/navhistory/index.md _AT_@ -1,20 +1,21 @@ -# navhistory - -## Description +navhistory +========== +Description +------------ This patch provides dmenu the ability for history navigation similar to that of bash. Press alt+p for the previous history and alt+n for the next. -## Configuration - +Configuration +------------- Set the maximum number of histories with a new variable 'maxhist' in config.h. By default, it only records a new history if it is not the same as the last one. To change this behaviour, set 'histnodup' to 0 in config.h. -## Download - +Download +-------- * [dmenu-navhistory-4.6.diff](dmenu-navhistory-4.6.diff) -## Author - +Author +------ * phi <crispyfrog_AT_163.com> diff --git a/tools.suckless.org/dmenu/patches/non_blocking_stdin/index.md b/tools.suckless.org/dmenu/patches/non_blocking_stdin/index.md index a3d127e8..23fc00c3 100644 --- a/tools.suckless.org/dmenu/patches/non_blocking_stdin/index.md +++ b/tools.suckless.org/dmenu/patches/non_blocking_stdin/index.md _AT_@ -3,7 +3,6 @@ Non-blocking stdin Description ----------- - A patch to have dmenu read stdin in a non blocking way, making it wait for input both from stdin and from X. This way, you can continue feeding dmenu while you type. This patch is meant to be used along with the incremental _AT_@ -11,11 +10,9 @@ patch, so that you can use stdout to feed stdin. Download -------- - * [dmenu-nonblockingstdin-20160702-3c91eed.diff](dmenu-nonblockingstdin-20160702-3c91eed.diff) Author ------ - * Christophe-Marie Duquesne <chm.duquesne_AT_gmail.com> * koniu at riseup.net (update for 20160615 git master) diff --git a/tools.suckless.org/dmenu/patches/password/index.md b/tools.suckless.org/dmenu/patches/password/index.md index 10e03929..b6fa1c6e 100644 --- a/tools.suckless.org/dmenu/patches/password/index.md +++ b/tools.suckless.org/dmenu/patches/password/index.md _AT_@ -1,6 +1,5 @@ Password ======== - By applying this patch, dmenu will not directly display the keyboard input, but instead replace it with dots. All data from stdin will be ignored. diff --git a/tools.suckless.org/dmenu/patches/pipeout/index.md b/tools.suckless.org/dmenu/patches/pipeout/index.md index 66270dea..9d0d6352 100644 --- a/tools.suckless.org/dmenu/patches/pipeout/index.md +++ b/tools.suckless.org/dmenu/patches/pipeout/index.md _AT_@ -3,21 +3,19 @@ pipeout Description ----------- - -This patch allows the selected text to be piped back out with dmenu. This is useful if you want to display the output of a command on the screen. Only text starting with the character '#' is piped out by default. +This patch allows the selected text to be piped back out with dmenu. This is +useful if you want to display the output of a command on the screen. Only text +starting with the character '#' is piped out by default. Configuration ------------- - Set the variable 'startpipe' in config.h to any character. Download -------- - * [dmenu-pipeout-20160701-3c91eed.diff](dmenu-pipeout-20160701-3c91eed.diff) Author ------ - * Ayrton diff --git a/tools.suckless.org/dmenu/patches/prefix-completion/index.md b/tools.suckless.org/dmenu/patches/prefix-completion/index.md index a0c9164e..bee60198 100644 --- a/tools.suckless.org/dmenu/patches/prefix-completion/index.md +++ b/tools.suckless.org/dmenu/patches/prefix-completion/index.md _AT_@ -3,15 +3,16 @@ prefix completion Description ----------- - Changes the behaviour of the matched items and the Tab key. -* Only items prefixed by the written text will match. E.g. query "foo" will match "foo", "foobar" and "fool", but not "world" or "barfoo". -* The Tab key will replace the current query with the longest common prefix of all matches. E.g. completing "f" with matches "foobar" and "fool" will become "foo". +* Only items prefixed by the written text will match. E.g. query "foo" will + match "foo", "foobar" and "fool", but not "world" or "barfoo". +* The Tab key will replace the current query with the longest common prefix of + all matches. E.g. completing "f" with matches "foobar" and "fool" will become + "foo". Download -------- - * For 4.6: [dmenu-prefixcompletion-20161019-7ef1d5e.diff](dmenu-prefixcompletion-20161019-7ef1d5e.diff) * For 4.7: [dmenu-prefixcompletion-4.7.diff](dmenu-prefixcompletion-4.7.diff) * For 4.8: [dmenu-prefixcompletion-4.8.diff](dmenu-prefixcompletion-4.7.diff) diff --git a/tools.suckless.org/dmenu/patches/printinputtext/index.md b/tools.suckless.org/dmenu/patches/printinputtext/index.md index b9a27495..21d837b5 100644 --- a/tools.suckless.org/dmenu/patches/printinputtext/index.md +++ b/tools.suckless.org/dmenu/patches/printinputtext/index.md _AT_@ -3,27 +3,23 @@ print input text Description ----------- - -This patch adds a flag (`-t`) which makes Return key to ignore selection -and print the input text to stdout. The flag basically swaps the functions -of Return and Shift+Return hotkeys. +This patch adds a flag (`-t`) which makes Return key to ignore selection and +print the input text to stdout. The flag basically swaps the functions of +Return and Shift+Return hotkeys. The default behaviour of dmenu makes sense when selecting from given options -(i.e. as a program launcher) but it is annoying when you might be entering -text that is different than the given options (i.e. as surf's url bar). +(i.e. as a program launcher) but it is annoying when you might be entering text +that is different than the given options (i.e. as surf's url bar). Usage in Surf ------------- - Just add the `-t` flag to the dmenu in the SETPROP function of surf's config.def.h. Now the url bar should behave just like in all other browsers. Download -------- - * [dmenu-printinputtext-20190822-bbc464d.diff](dmenu-printinputtext-20190822-bbc464d.diff) Author ------ - * efe - efe_AT_efe.kim diff --git a/tools.suckless.org/dmenu/patches/reject-no-match/index.md b/tools.suckless.org/dmenu/patches/reject-no-match/index.md index ccd14abc..50f6574a 100644 --- a/tools.suckless.org/dmenu/patches/reject-no-match/index.md +++ b/tools.suckless.org/dmenu/patches/reject-no-match/index.md _AT_@ -1,6 +1,5 @@ Reject no match =============== - Adds a new flag to dmenu with which text input will be rejected if it would result in no matching item diff --git a/tools.suckless.org/dmenu/patches/scroll/index.md b/tools.suckless.org/dmenu/patches/scroll/index.md index 1a9ad7ef..8e44b793 100644 --- a/tools.suckless.org/dmenu/patches/scroll/index.md +++ b/tools.suckless.org/dmenu/patches/scroll/index.md _AT_@ -1,6 +1,5 @@ Text Scrolling ============== - This patch adds support for text scrolling, it doesn't append '...' for long input anymore as it can handle long text now. It's especially useful when using in surf, after having inserted a long url via tab-completion. diff --git a/tools.suckless.org/dmenu/scripts/dmenu_run_with_command_history/index.md b/tools.suckless.org/dmenu/scripts/dmenu_run_with_command_history/index.md index bf9dfa87..f582bd1c 100644 --- a/tools.suckless.org/dmenu/scripts/dmenu_run_with_command_history/index.md +++ b/tools.suckless.org/dmenu/scripts/dmenu_run_with_command_history/index.md _AT_@ -1,23 +1,20 @@ -dmenu_run with command history +dmenu\_run with command history ============================== - -A self-contained alternative to dmenu_run which also handles history. +A self-contained alternative to dmenu\_run which also handles history. History is saved in a file in `$XDG_CACHE_HOME`, with fallback to a dot file in `$HOME`. Change as necessary. -In addition to the above, dmenu_run_history will launch each entry +In addition to the above, dmenu\_run\_history will launch each entry immediately on `Ctrl-Return` (multiselect). The script can be used with the 4.6 version of dmenu. Download -------- - -[dmenu_run_history](dmenu_run_history) (20151217) +* [dmenu\_run\_history](dmenu_run_history) (20151217) Authors ------- - * Xarchus * Silvan Jegen (initial idea, code contributor, feedback) diff --git a/tools.suckless.org/dmenu/scripts/index.md b/tools.suckless.org/dmenu/scripts/index.md index 230a5e01..df30a0c2 100644 --- a/tools.suckless.org/dmenu/scripts/index.md +++ b/tools.suckless.org/dmenu/scripts/index.md _AT_@ -1,11 +1,9 @@ Scripts using dmenu =================== - dmenu's user, feel free to add your own scripts, or comment existents. Download -------- - * [clipmenu](https://github.com/cdown/clipmenu): Clipboard management using dmenu * [dbdb.sh](dbdb.sh): dmenu-based directory browser * [dbrowse](https://github.com/clamiax/scripts/blob/master/src/dbrowse): diff --git a/tools.suckless.org/farbfeld/examples/index.md b/tools.suckless.org/farbfeld/examples/index.md index 98d2d7ef..94ed9490 100644 --- a/tools.suckless.org/farbfeld/examples/index.md +++ b/tools.suckless.org/farbfeld/examples/index.md _AT_@ -1,15 +1,13 @@ Examples ======== - -Convert image.png to a farbfeld, run it through a filter and write the -result to image-filtered.png: +Convert image.png to a farbfeld, run it through a filter and write the result +to image-filtered.png: $ png2ff < image.png | filter | ff2png > image-filtered.png -[invert.c](invert.c) is an example for such a filter which inverts -the colors. Notice that there are no dependencies on external libraries. -A hypothetical farbfeld-library would hardly exceed invert.c's size. - +[invert.c](invert.c) is an example for such a filter which inverts the colors. +Notice that there are no dependencies on external libraries. A hypothetical +farbfeld-library would hardly exceed invert.c's size. Store a png as a compressed farbfeld: _AT_@ -19,8 +17,8 @@ Access a compressed farbfeld as a png: $ bunzip2 < image.ff.bz2 | ff2png {> image.png, | feh -, ...} -Handle arbitrary image data using 2ff(1), which falls -back to imagemagick's convert(1) for unknown image types: +Handle arbitrary image data using 2ff(1), which falls back to imagemagick's +convert(1) for unknown image types: $ 2ff < image | filter | ff2png > image-filtered.png diff --git a/tools.suckless.org/farbfeld/faq/index.md b/tools.suckless.org/farbfeld/faq/index.md index e50a5b0b..da9bd475 100644 --- a/tools.suckless.org/farbfeld/faq/index.md +++ b/tools.suckless.org/farbfeld/faq/index.md _AT_@ -1,99 +1,78 @@ FAQ === -### Why yet another image format? - -Current image formats have integrated compression, -making it complicated to read the image data. -One is forced to use complex libraries like libpng, -libjpeg, libjpeg-turbo, giflib and others, read the -documentation and write a lot of boilerplate in order -to get started. - -Farbfeld leaves this behind and is designed to be as -simple as possible, leaving the task of compression -to external tools. -The simple design, which was the primary objective, -implicitly leads to the very good compression -characteristics, as it often happens when you go with -the UNIX philosophy. -Reading farbfeld images doesn't require any special -libraries. The tools are just a toolbox -to make it easy to convert between common image formats -and farbfeld. - -### How does it work? - -In Farbfeld, pattern resolution is not done while -converting, but while compressing the image. -For example, farbfeld always stores the alpha-channel, -even if the image doesn't have alpha-variation. -This may sound like a big waste at first, but as -soon as you compress an image of this kind, the -compression-algorithm (e.g. bz2) recognizes the -pattern that every 48 bits the 16 bits store the -same information. -And the compression-algorithms get better and better -at this. - -Same applies to the idea of having 16 bits per channel. -It sounds excessive, but if you for instance only have -a greyscale image, the R, G and B channels will store -the same value, which is recognized by the compression -algorithm easily. - -This effectively leads to filesizes you'd normally only -reach with paletted images, and in some cases bz2 even -beats png's compression, for instance when you're dealing -with grayscale data, line drawings, decals and even -photographs. - -### Why use 16-Bits-per-channel all the time? Isn't this a total waste? - -Not when you take compression into account. To make this -clearer, assume a paletted image with 5 colors and no -transparency. So the data is only a set of regular chunks -(color1, ..., color5) in a certain order. -Compression algorithms have been designed to recognize those -chunks and can even look at how these chunks interact. - -Local tests have shown that farbfeld easily beats paletted -PNG-images. Try for yourself and look at the bzipped results! -There is no need for special grayscale, palette, RGB, 1-, 2-, -4-, 8-, 16-Bit subformats. -Just use 16-Bit RGBA all the time and let compression take -care of the rest. - -### Which compression should I use? - -bzip2 is recommended, which is widely available (anybody has it) -and gives good results. As time will move forward and new -algorithms hit the market, this recommendation might be rethought. - -### What about NetPBM? - -NetPBM is considered to be the most simple format around, -however, there's much room for improvement. -In fact, it doesn't help that the format is subdivided into -Portable BitMaps, Portable GrayMaps and Portable PixMaps. -It's not helpful when a manpage can't give a simple overview -of a format in a few sentences. - -NetPBM's big vice is that it has originally been developed -to be hand-written and passed around as plain text. A binary -format exists, but still handling optional comments -in the header, base 10 ASCII width and height values, -arbitrary whitespace inside the data and out-of-band -image size and color depth is too painful for the sane user. - -Judging from the usage of the format considering how long -it's been around, it's no surprise it never really took off. -Additionally, functionality like alpha channels and 16-Bit -color depth can only be achieved via extensions. -Due to it being a textual format it also lacks the desired -compression characteristics. - -The question you have to ask yourself is: Can I read in a -format without consulting the manpages? If your answer is -yes, then the format is simple enough. -In this regard, NetPBM can be considered to be a failed format. +Why yet another image format? +----------------------------- +Current image formats have integrated compression, making it complicated to +read the image data. One is forced to use complex libraries like libpng, +libjpeg, libjpeg-turbo, giflib and others, read the documentation and write a +lot of boilerplate in order to get started. + +Farbfeld leaves this behind and is designed to be as simple as possible, +leaving the task of compression to external tools. The simple design, which was +the primary objective, implicitly leads to the very good compression +characteristics, as it often happens when you go with the UNIX philosophy. +Reading farbfeld images doesn't require any special libraries. The tools are +just a toolbox to make it easy to convert between common image formats and +farbfeld. + +How does it work? +----------------- +In Farbfeld, pattern resolution is not done while converting, but while +compressing the image. For example, farbfeld always stores the alpha-channel, +even if the image doesn't have alpha-variation. This may sound like a big waste +at first, but as soon as you compress an image of this kind, the +compression-algorithm (e.g. bz2) recognizes the pattern that every 48 bits the +16 bits store the same information. And the compression-algorithms get better +and better at this. + +Same applies to the idea of having 16 bits per channel. It sounds excessive, +but if you for instance only have a greyscale image, the R, G and B channels +will store the same value, which is recognized by the compression algorithm +easily. + +This effectively leads to filesizes you'd normally only reach with paletted +images, and in some cases bz2 even beats png's compression, for instance when +you're dealing with grayscale data, line drawings, decals and even photographs. + +Why use 16-Bits-per-channel all the time? Isn't this a total waste? +------------------------------------------------------------------- +Not when you take compression into account. To make this clearer, assume a +paletted image with 5 colors and no transparency. So the data is only a set of +regular chunks (color1, ..., color5) in a certain order. Compression algorithms +have been designed to recognize those chunks and can even look at how these +chunks interact. + +Local tests have shown that farbfeld easily beats paletted PNG-images. Try for +yourself and look at the bzipped results! There is no need for special +grayscale, palette, RGB, 1-, 2-, 4-, 8-, 16-Bit subformats. Just use 16-Bit +RGBA all the time and let compression take care of the rest. + +Which compression should I use? +------------------------------- +bzip2 is recommended, which is widely available (anybody has it) and gives good +results. As time will move forward and new algorithms hit the market, this +recommendation might be rethought. + +What about NetPBM? +------------------ +NetPBM is considered to be the most simple format around, however, there's much +room for improvement. In fact, it doesn't help that the format is subdivided +into Portable BitMaps, Portable GrayMaps and Portable PixMaps. It's not helpful +when a manpage can't give a simple overview of a format in a few sentences. + +NetPBM's big vice is that it has originally been developed to be hand-written +and passed around as plain text. A binary format exists, but still handling +optional comments in the header, base 10 ASCII width and height values, +arbitrary whitespace inside the data and out-of-band image size and color depth +is too painful for the sane user. + +Judging from the usage of the format considering how long it's been around, +it's no surprise it never really took off. Additionally, functionality like +alpha channels and 16-Bit color depth can only be achieved via extensions. Due +to it being a textual format it also lacks the desired compression +characteristics. + +The question you have to ask yourself is: Can I read in a format without +consulting the manpages? If your answer is yes, then the format is simple +enough. In this regard, NetPBM can be considered to be a failed format. diff --git a/tools.suckless.org/farbfeld/index.md b/tools.suckless.org/farbfeld/index.md index d1b51eff..582a5487 100644 --- a/tools.suckless.org/farbfeld/index.md +++ b/tools.suckless.org/farbfeld/index.md _AT_@ -1,7 +1,6 @@ ![farbfeld](farbfeld.svg) -farbfeld is a lossless image format which is easy to parse, pipe and -compress. +farbfeld is a lossless image format which is easy to parse, pipe and compress. It has the following format: ╔════════╤═════════════════════════════════════════════════════════╗ _AT_@ -21,21 +20,18 @@ alpha-premultiplied. Dependencies ------------ - * [libpng](http://www.libpng.org/pub/png/libpng.html) - for png conversions * [libjpeg-turbo](http://libjpeg-turbo.virtualgl.org/) - for jpg conversions Development ----------- - -You can [browse](//git.suckless.org/farbfeld) its source code repository -or get a copy using the following command: +You can [browse](//git.suckless.org/farbfeld) its source code repository or get +a copy using the following command: git clone git://git.suckless.org/farbfeld Download -------- - * [farbfeld-1](//dl.suckless.org/farbfeld/farbfeld-1.tar.gz) (2016-01-06) * [farbfeld-2](//dl.suckless.org/farbfeld/farbfeld-2.tar.gz) (2016-03-14) * [farbfeld-3](//dl.suckless.org/farbfeld/farbfeld-3.tar.gz) (2017-04-14) _AT_@ -56,7 +52,6 @@ provide packages: Implementations --------------- - * [lel](http://git.2f30.org/lel) farbfeld image viewer * [sent](//tools.suckless.org/sent/) presentation tool * [Go encoder/decoder](https://github.com/hullerob/go.farbfeld) _AT_@ -68,8 +63,6 @@ Implementations Author ------ - * Laslo Hunhold (dev_AT_frign.de) -Please contact me when you find information that could be added to this -page. +Please contact me when you find information that could be added to this page. diff --git a/tools.suckless.org/ii/bots/index.md b/tools.suckless.org/ii/bots/index.md index fab7ce0c..95f618cd 100644 --- a/tools.suckless.org/ii/bots/index.md +++ b/tools.suckless.org/ii/bots/index.md _AT_@ -1,4 +1,7 @@ -Its very easy to write shell script based bots with ii. As a short example look at this: +Bots +==== +Its very easy to write shell script based bots with ii. As a short example look +at this: tail -f \#<CHANNEL>/out | while read -r date time nick mesg; do _AT_@ -7,23 +10,25 @@ Its very easy to write shell script based bots with ii. As a short example look printf "%s: WHAT?? " "$nick" done >#<CHANNEL>/in -Its just spamming a channel but I guess your imagination is boundless. -I also heard about people using it together with nagios to get the notifications into IRC. -Remember to strip input for example with tr(1), tr -cd "0-9a-zA-Z" for example would only allow numbers and characters. +Its just spamming a channel but I guess your imagination is boundless. I also +heard about people using it together with nagios to get the notifications into +IRC. Remember to strip input for example with tr(1), tr -cd "0-9a-zA-Z" for +example would only allow numbers and characters. -If you want to see a live demonstration of a bot written for ii, join #grml on freenode, the grml-tips bot which searches -for [grml](http://www.grml.org) tips and gives a link or error messages is written in 45 lines of /bin/sh. No, I will not publish -the code since I really suck in shell programming :) +If you want to see a live demonstration of a bot written for ii, join #grml on +freenode, the grml-tips bot which searches for [grml](http://www.grml.org) tips +and gives a link or error messages is written in 45 lines of /bin/sh. No, I +will not publish the code since I really suck in shell programming :) Stat scripts ------------ - -If you want to use for example [pisg](http://pisg.sf.net/) to generate channel stats this will also work if you choose the irssi log format. +If you want to use for example [pisg](http://pisg.sf.net/) to generate channel +stats this will also work if you choose the irssi log format. Automatic reconnects -------------------- - -If you want some kind of automatic reconnects in ii you can make a something like this in a shell script: +If you want some kind of automatic reconnects in ii you can make a something +like this in a shell script: while true; do ii -s irc.oftc.net -n iifoo -f "John Doe" & _AT_@ -37,27 +42,25 @@ bots for irc it (ii) ==================== iibot ------- +----- +[iibot](https://github.com/c00kiemon5ter/iibot) by c00kiemon5ter is written in +bash, but can easily be translated to plain sh (ask him). -[iibot](https://github.com/c00kiemon5ter/iibot) by c00kiemon5ter -is written in bash, but can easily be translated to plain sh (ask him). +It uses a main script to connect to multiple servers and channels, and +auto-reconnect and auto-join on network failure. -It uses a main script to connect to multiple servers and channels, -and auto-reconnect and auto-join on network failure. - -It reads commands with a leading '!' and calls a secondary script -to handle the command and the responce. -That way commands can be added or removed dynamically. -The secondary script knows the network, channel, nick and message that -triggered the command, so it is easy to filter responses to commands -to specified channels, users and such. +It reads commands with a leading '!' and calls a secondary script to handle the +command and the responce. That way commands can be added or removed +dynamically. The secondary script knows the network, channel, nick and message +that triggered the command, so it is easy to filter responses to commands to +specified channels, users and such. if you need help, do not hesitate to ask c00kiemon5ter on freenode and oftc. nagios ------ - -Simple Perl script "nagios_post.pl" as interface between [Nagios](http://www.nagios.org/) and ii: +Simple Perl script "nagios\_post.pl" as interface between +[Nagios](http://www.nagios.org/) and ii: #!/usr/bin/perl -w _AT_@ -101,9 +104,11 @@ The appropriate Nagios configuration looks like this: command_line /usr/bin/printf "%b" "$TIME$ Host $HOSTALIAS$ is $HOSTSTATE$ -- $HOSTOUTPUT$ " | /home/nagios/bin/nagios_post.pl } -Start ii appropriately and add notify-by-irc and host-notify-by-irc to the appropriate "service_notification_commands" and "host_notification_commands" -- and you have your own Nagios IRC bot. +Start ii appropriately and add notify-by-irc and host-notify-by-irc to the +appropriate "service_notification_commands" and +"host_notification_commands" -- and you have your own Nagios IRC bot. rsstail ------- - -Just piping the output of [rsstail](http://www.vanheusden.com/rsstail/) into the fifo "in" should work. More detailed examples are welcome. +Just piping the output of [rsstail](http://www.vanheusden.com/rsstail/) into +the fifo "in" should work. More detailed examples are welcome. diff --git a/tools.suckless.org/ii/index.md b/tools.suckless.org/ii/index.md index 5acbb51a..539981e3 100644 --- a/tools.suckless.org/ii/index.md +++ b/tools.suckless.org/ii/index.md _AT_@ -1,9 +1,13 @@ Irc it (ii) =========== - -ii is a minimalist FIFO and filesystem-based IRC client. It creates an irc directory tree with server, channel and nick name directories. In every directory a FIFO in file and a normal out file is created. - -The in file is used to communicate with the servers and the out files contain the server messages. For every channel and every nick name there are related in and out files created. This allows IRC communication from command line and adheres to the Unix philosophy. +ii is a minimalist FIFO and filesystem-based IRC client. It creates an irc +directory tree with server, channel and nick name directories. In every +directory a FIFO in file and a normal out file is created. + +The in file is used to communicate with the servers and the out files contain +the server messages. For every channel and every nick name there are related in +and out files created. This allows IRC communication from command line and +adheres to the Unix philosophy. example Join a channel as follows: `$ echo "/j #wmii" > in` diff --git a/tools.suckless.org/ii/patches/action/index.md b/tools.suckless.org/ii/patches/action/index.md index f2053003..ab4e68aa 100644 --- a/tools.suckless.org/ii/patches/action/index.md +++ b/tools.suckless.org/ii/patches/action/index.md _AT_@ -3,17 +3,14 @@ Action Description ----------- - -Adds support for writing CTCP ACTIONs with the use of '/m some action' -This can be done simply by writing '^AACTION some action^A', but this patch is -for people who are too lazy to do that (me) +Adds support for writing CTCP ACTIONs with the use of '/m some action' This can +be done simply by writing '^AACTION some action^A', but this patch is for +people who are too lazy to do that (me) Download -------- - -* [ii-1.4-ctcp_action.diff](ii-1.4-ctcp_action.diff) +* [ii-1.4-ctcp\_action.diff](ii-1.4-ctcp_action.diff) Author ------ - * Evan Gates (emg) <[evan.gates_AT_gmail.com](mailto:evan.gates_AT_gmail.com)> diff --git a/tools.suckless.org/ii/patches/autojoin/index.md b/tools.suckless.org/ii/patches/autojoin/index.md index b76534d3..75ba9c47 100644 --- a/tools.suckless.org/ii/patches/autojoin/index.md +++ b/tools.suckless.org/ii/patches/autojoin/index.md _AT_@ -3,18 +3,14 @@ Autojoin Description ----------- - When a user messages you or you are made to join a channel (as with bitlbee), -ii will automatically join so there is no need to either `$ echo "/j channel > in"` -or `$ echo "/j user message" > in` -before you can start sending messages. +ii will automatically join so there is no need to either `$ echo "/j channel > +in"` or `$ echo "/j user message" > in` before you can start sending messages. Download -------- - * [ii-1.4-autojoin.diff](ii-1.4-autojoin.diff) Author ------ - * Evan Gates (emg) <[evan.gates_AT_gmail.com](mailto:evan.gates_AT_gmail.com)> diff --git a/tools.suckless.org/ii/patches/exec/index.md b/tools.suckless.org/ii/patches/exec/index.md index 4e608106..6d6478a8 100644 --- a/tools.suckless.org/ii/patches/exec/index.md +++ b/tools.suckless.org/ii/patches/exec/index.md _AT_@ -3,17 +3,14 @@ Exec Description ----------- - Adds support for '/e cmd' printing output of cmd to the channel. True this is possible doing 'cmd > in', but this is for lazy people (me). Be careful not to flood. Download -------- - * [ii-1.4-exec.diff](ii-1.4-exec.diff) Author ------ - * Evan Gates (emg) <[evan.gates_AT_gmail.com](mailto:evan.gates_AT_gmail.com)> diff --git a/tools.suckless.org/ii/patches/index.md b/tools.suckless.org/ii/patches/index.md index bfe0d3e2..fa607dca 100644 --- a/tools.suckless.org/ii/patches/index.md +++ b/tools.suckless.org/ii/patches/index.md _AT_@ -1,5 +1,4 @@ patches ======= - -For instructions on how to submit and format patches, take a look at -the [hacking guidelines](//suckless.org/hacking). +For instructions on how to submit and format patches, take a look at the +[hacking guidelines](//suckless.org/hacking). diff --git a/tools.suckless.org/ii/patches/joinuser/index.md b/tools.suckless.org/ii/patches/joinuser/index.md index c3ca4dbb..53a60411 100644 --- a/tools.suckless.org/ii/patches/joinuser/index.md +++ b/tools.suckless.org/ii/patches/joinuser/index.md _AT_@ -3,19 +3,18 @@ Joinuser Description ----------- - -By default to PRIVMSG a user you need to `/j user message`, this patch makes `message` optional. -It also displays "-!- yournick has joined user" prior to any messages both when you `/j user` and -when a user messages you, and incorporates the [autojoin](//tools.suckless.org/ii/patches/autojoin) -patch, so you do not need to `/j user` first to talk to someone who has already messaged you. +By default to PRIVMSG a user you need to `/j user message`, this patch makes +`message` optional. It also displays "-!- yournick has joined user" prior to +any messages both when you `/j user` and when a user messages you, and +incorporates the [autojoin](//tools.suckless.org/ii/patches/autojoin) patch, so +you do not need to `/j user` first to talk to someone who has already messaged +you. Download -------- - * [ii-1.4-joinuser.diff](ii-1.4-joinuser.diff) Author ------ - * Robert Lowry (bobertlo) <[robertwlowry_AT_gmail.com](mailto:robertwlowry_AT_gmail.com)> * Evan Gates (emg) <[evan.gates_AT_gmail.com](mailto:evan.gates_AT_gmail.com)> diff --git a/tools.suckless.org/ii/patches/solarisbuild/index.md b/tools.suckless.org/ii/patches/solarisbuild/index.md index c7f7e9ea..9a0ffe1e 100644 --- a/tools.suckless.org/ii/patches/solarisbuild/index.md +++ b/tools.suckless.org/ii/patches/solarisbuild/index.md _AT_@ -3,17 +3,15 @@ Solaris Build Description ----------- - -Building on Solaris 11 was failing for me due to a Compile error and a linker error. -This simple patch fixed the issue for me on ii version 1.8 it might work for you too. +Building on Solaris 11 was failing for me due to a Compile error and a linker +error. This simple patch fixed the issue for me on ii version 1.8 it might work +for you too. Download -------- - * [ii-1.8-solarisbuild.diff](ii-1.8-solarisbuild.diff) Simple diff * [ii-solarisbuild-20180912-b25423f.patch](ii-solarisbuild.patch) patch format Author ------ - * Dr Owl <[mail_AT_catsnest.co.uk](mailto:mail_AT_catsnest.co.uk)> diff --git a/tools.suckless.org/ii/patches/ssl/index.md b/tools.suckless.org/ii/patches/ssl/index.md index 476c1403..1c579cbe 100644 --- a/tools.suckless.org/ii/patches/ssl/index.md +++ b/tools.suckless.org/ii/patches/ssl/index.md _AT_@ -3,18 +3,14 @@ SSL Description ----------- - -Adds ssl encryption support via the `-e ssl` argument. It will use the -default port of 6697 unless an alternative port is specified with the --p flag. +Adds ssl encryption support via the `-e ssl` argument. It will use the default +port of 6697 unless an alternative port is specified with the -p flag. Download -------- - * [ii-1.7-ssl.diff](ii-1.7-ssl.diff) Author ------ - * Written for 1.6 by Hunter Haugen * Ported to ii 1.7 by Nik Unger diff --git a/tools.suckless.org/ii/patches/ucspi/index.md b/tools.suckless.org/ii/patches/ucspi/index.md index 4b431c45..7c3a458c 100644 --- a/tools.suckless.org/ii/patches/ucspi/index.md +++ b/tools.suckless.org/ii/patches/ucspi/index.md _AT_@ -3,19 +3,17 @@ UCSPI Description ----------- - -Replaces the socket back-end with the [ucspi](https://cr.yp.to/proto/ucspi.txt). -This makes ii more flexable and outsources the handling of IPv6, TLS and SOCKS -to other tools like [tcpclient](https://cr.yp.to/ucspi-tcp.html), -[tlc and socks](https://github.com/younix/ucspi). +Replaces the socket back-end with the +[ucspi](https://cr.yp.to/proto/ucspi.txt). This makes ii more flexable and +outsources the handling of IPv6, TLS and SOCKS to other tools like +[tcpclient](https://cr.yp.to/ucspi-tcp.html), [tlc and +socks](https://github.com/younix/ucspi). Download -------- - * [ii-1.8-ucspi.diff](ii-1.8-ucspi.diff) * [ii-1.7-ucspi.diff](ii-1.7-ucspi.diff) Author ------ - * Jan Klemkow (younix) <[j.klemkow_AT_wemelug.de](mailto:j.klemkow_AT_wemelug.de)> diff --git a/tools.suckless.org/ii/patches/usernames/index.md b/tools.suckless.org/ii/patches/usernames/index.md index 3af81633..0e649568 100644 --- a/tools.suckless.org/ii/patches/usernames/index.md +++ b/tools.suckless.org/ii/patches/usernames/index.md _AT_@ -3,25 +3,22 @@ Usernames Description ----------- - -Changes the handling of QUIT and NICK messages from other users so that the output is written -to the relevant channels rather than the server output. This patch is rather bulky but it -gets the job done. +Changes the handling of QUIT and NICK messages from other users so that the +output is written to the relevant channels rather than the server output. This +patch is rather bulky but it gets the job done. Notes ----- - -I have tested this patch against the other patches posted here and they all apply, but for -some of them you must apply this patch first or there will be conflicts. +I have tested this patch against the other patches posted here and they all +apply, but for some of them you must apply this patch first or there will be +conflicts. Download -------- - * [ii-1.4-usernames.diff](ii-1.4-usernames.diff) * [ii-1.8-usernames.diff](ii-1.8-usernames.diff) Author ------ - * Robert Lowry (bobertlo) <[robertwlowry_AT_gmail.com](mailto:robertwlowry_AT_gmail.com)> * Ported to 1.8 by hicsfield diff --git a/tools.suckless.org/ii/usage/index.md b/tools.suckless.org/ii/usage/index.md index 67958384..9e37d427 100644 --- a/tools.suckless.org/ii/usage/index.md +++ b/tools.suckless.org/ii/usage/index.md _AT_@ -1,42 +1,69 @@ Multitail + Vim --------------- -To make ii a bit more comfortable, use it in combination with the multitail program and for example with vim. Run vim in the server directory and use key mapping like: -`map w1 :.w >> \#ii/in<cr>` -`map w2 :.w >> \#wmii/in<cr>` +To make ii a bit more comfortable, use it in combination with the multitail +program and for example with vim. Run vim in the server directory and use key +mapping like: + + map w1 :.w >>\#ii/in<cr> + map w2 :.w >>\#wmii/in<cr> + to post to channels. Thanks to Matthias Kopfermann for this hint. -Another cool thing is to use it with splitvt so you have multitail windows on top and for example four lines of vim at the bottom. +Another cool thing is to use it with splitvt so you have multitail windows on +top and for example four lines of vim at the bottom. -There is also a blog post which describes the whole configuration: +There is also a blog post which describes the whole configuration: [http://nion.modprobe.de/blog/archives/440-Using-the-ii-irc-client.html](http://nion.modprobe.de/blog/archives/440-Using-the-ii-irc-client.html) Popup Chat Windows ------------------ -You can also try [pcw](http://bitbucket.org/emg/pcw) which will (by default) open a new terminal for each channel you join. On startup, and after receiving SIGUSR1, pcw will open a terminal for every channel you are already in. By default it depends on [srw](http://bitbucket.org/emg/srw) as a line editing wrapper. Just run 'pcw ~/irc' (or whichever directory you have ii using) then start up ii. Note that closing a terminal does not exit the channel. If that channel receives a new message the terminal will open again. To leave the channel you must first '/l' and then close the window. (the combination of pcw + ii + bitlbee let me stop using pidgin :-D) +You can also try [pcw](http://bitbucket.org/emg/pcw) which will (by default) +open a new terminal for each channel you join. On startup, and after receiving +SIGUSR1, pcw will open a terminal for every channel you are already in. By +default it depends on [srw](http://bitbucket.org/emg/srw) as a line editing +wrapper. Just run 'pcw ~/irc' (or whichever directory you have ii using) then +start up ii. Note that closing a terminal does not exit the channel. If that +channel receives a new message the terminal will open again. To leave the +channel you must first '/l' and then close the window. (the combination of pcw ++ ii + bitlbee let me stop using pidgin :-D) Web frontend ------------ -phpii is a simple web frontend for ii. You can see a demo of it and download the php source here: [phpii homepage](http://yogan.meinungsverstaerker.de/phpii) +phpii is a simple web frontend for ii. You can see a demo of it and download +the php source here: [phpii +homepage](http://yogan.meinungsverstaerker.de/phpii) iii --- -[iii](https://github.com/c00kiemon5ter/iii) (maybe interactive ii, or something) is a collection of shell scripts to produce a cli frontend to ii. +[iii](https://github.com/c00kiemon5ter/iii) (maybe interactive ii, or +something) is a collection of shell scripts to produce a cli frontend to ii. iii looks like a "normal" irc client (ie irssi), working on top of ii. -It features connections to multiple servers and autojoin of channels, auto-reconnect to servers and channels on network failure, autocompletion through rlwrap, formatted and colored output etc. -It can be used directly in the command line, or like pcw spawning terminals for each channel, or inside a dedicated tmux session. -Read the readme file, and do not hesitate to ask c00kiemon5ter for help on freenode and oftc. + +It features connections to multiple servers and autojoin of channels, +auto-reconnect to servers and channels on network failure, autocompletion +through rlwrap, formatted and colored output etc. + +It can be used directly in the command line, or like pcw spawning terminals for +each channel, or inside a dedicated tmux session. + +Read the readme file, and do not hesitate to ask c00kiemon5ter for help on +freenode and oftc. iil --- -The [iil](http://chiselapp.com/user/onys/repository/iil/home) (short for iiless) is fast viewer/reader for ii irc client, using your shell and less. +The [iil](http://chiselapp.com/user/onys/repository/iil/home) (short for +iiless) is fast viewer/reader for ii irc client, using your shell and less. uii --- -[uii](https://github.com/erlehmann/uii) (usable irc it) is a set of shell scripts that provides readline support, uses inotify to monitor channels and pops up notifications. +[uii](https://github.com/erlehmann/uii) (usable irc it) is a set of shell +scripts that provides readline support, uses inotify to monitor channels and +pops up notifications. im-scripts ---------- -[im-scripts](http://github.com/gravicappa/im-scripts) is a set of sh-scripts for convenient use of ii and ji. +[im-scripts](http://github.com/gravicappa/im-scripts) is a set of sh-scripts +for convenient use of ii and ji. wii --- _AT_@ -59,9 +86,11 @@ lchat TLS/SSL ------- -To connect to a TLS/SSL encrypted channel, it is possible to use the [SSL patch](patches/ssl) or a proxy: +To connect to a TLS/SSL encrypted channel, it is possible to use the [SSL +patch](patches/ssl) or a proxy: -[stunnel](https://www.stunnel.org/) is a proxy for an unencrypted TCP connection to TLS: +[stunnel](https://www.stunnel.org/) is a proxy for an unencrypted TCP +connection to TLS: In `/etc/stunnel/stunnel.conf`: _AT_@ -69,8 +98,13 @@ In `/etc/stunnel/stunnel.conf`: accept = 127.0.0.1:<your-port> connect = irc.oftc.net:6697 -[inetd](http://man.openbsd.org/inetd) listens on multiple TCP ports and can connect a program standard input and output to a TCP socket. -This enables it to act as a simple proxy using any command line TLS client, such as [openssl s_client](http://man.openbsd.org/openssl#S_CLIENT), [brssl client](https://bearssl.org/gitweb/?p=BearSSL;a=blob;f=tools/brssl.c;h=91372b09f42149a503f9d13db0b78cf0a123611e;hb=HEAD#l43), nc -ssl, socat... or any other: +[inetd](http://man.openbsd.org/inetd) listens on multiple TCP ports and can +connect a program standard input and output to a TCP socket. + +This enables it to act as a simple proxy using any command line TLS client, +such as [openssl s_client](http://man.openbsd.org/openssl#S_CLIENT), +[brssl client](https://bearssl.org/gitweb/?p=BearSSL;a=blob;f=tools/brssl.c;h=91372b09f42149a503f9d13db0b78cf0a123611e;hb=HEAD#l43), +nc -ssl, socat... or any other: In `/etc/inetd.conf`: diff --git a/tools.suckless.org/quark/index.md b/tools.suckless.org/quark/index.md index bd5cfb8c..047bf173 100644 --- a/tools.suckless.org/quark/index.md +++ b/tools.suckless.org/quark/index.md _AT_@ -1,70 +1,64 @@ ![quark](quark.svg) -quark is an extremely small and simple HTTP GET/HEAD-only web server for -static content. +quark is an extremely small and simple HTTP GET/HEAD-only web server for static +content. The goal of this project is to do one thing and do it well, namely serving -static web directories and doing that right. Most other solutions either -are too complex (CGI support, dependencies on external libraries, ...) or -lack features you expect (TLS, virtual hosts, partial content, not modified -since, ...). quark tries to find a midway and just restrict itself to being -static while still offering functions you only find in more bloated solutions -and being as secure as possible (chroot, privilege dropping, strict parsers, -no malloc at runtime, pledge, ...). +static web directories and doing that right. Most other solutions either are +too complex (CGI support, dependencies on external libraries, ...) or lack +features you expect (TLS, virtual hosts, partial content, not modified since, +...). quark tries to find a midway and just restrict itself to being static +while still offering functions you only find in more bloated solutions and +being as secure as possible (chroot, privilege dropping, strict parsers, no +malloc at runtime, pledge, ...). Static web ---------- - We believe that most of the web does not need to be dynamic and increasing -complexity on server-side applications is one of the main reasons for the -web obesity crisis. -The common approach nowadays is to do everything on the server, including -parsing requests, modifying files and databases, generating HTML and all -that using unfit languages like PHP or JavaScript, which is a security and +complexity on server-side applications is one of the main reasons for the web +obesity crisis. The common approach nowadays is to do everything on the server, +including parsing requests, modifying files and databases, generating HTML and +all that using unfit languages like PHP or JavaScript, which is a security and efficiency nightmare. Over the years we have seen massive amounts of security holes in numerous -applications of tools commonly used for these jobs -(PHP, node.js, CGI-implementations, ...). -The reason why we are in this situation in the first place is due to the fact that -the jobs of data processing and data presentation, which should be separate, -converged together into one. +applications of tools commonly used for these jobs (PHP, node.js, +CGI-implementations, ...). The reason why we are in this situation in the first +place is due to the fact that the jobs of data processing and data +presentation, which should be separate, converged together into one. The solution is to rely on static regeneration independent from the web server, which just serves static files. You can still implement e.g. form handlers for -dynamic content which run as their own network instance and operate independently -from the web server. -What's left is just to generate the static content using the database and repeating -this process in case the database is updated. +dynamic content which run as their own network instance and operate +independently from the web server. What's left is just to generate the static +content using the database and repeating this process in case the database is +updated. This way the jobs of data processing and data presentation are separate again, -with many advantages. All requests are handled with constantly low latency, with -the possibility of serving everything directly from RAM (using a ramfs). Separated -concerns make it very unattractive to attack the web server itself and the -attack surface that is left, if it is present at all, is the separate form handler, -which can be implemented in a very simple, safe and efficient manner. +with many advantages. All requests are handled with constantly low latency, +with the possibility of serving everything directly from RAM (using a ramfs). +Separated concerns make it very unattractive to attack the web server itself +and the attack surface that is left, if it is present at all, is the separate +form handler, which can be implemented in a very simple, safe and efficient +manner. In case there is an attack on this infrastructure and the attacker manages to DoS the form handler, the serving of content is still unaffected. Solutions --------- - * [saait](https://git.codemadness.org/saait/file/README.html) site generator * [stagit](https://git.codemadness.org/stagit/file/README.html) git page generator Development ----------- - -You can [browse](//git.suckless.org/quark) the source code repository or -get a copy with the following command: +You can [browse](//git.suckless.org/quark) the source code repository or get a +copy with the following command: git clone git://git.suckless.org/quark Author ------ - * Laslo Hunhold (dev_AT_frign.de) -Please contact me when you find information that could be added to this -page. +Please contact me when you find information that could be added to this page. diff --git a/tools.suckless.org/sent/index.md b/tools.suckless.org/sent/index.md index a9e9edcb..7fceb640 100644 --- a/tools.suckless.org/sent/index.md +++ b/tools.suckless.org/sent/index.md _AT_@ -1,6 +1,5 @@ sent ==== - Simple plaintext presentation tool. [![Screenshot of sent](sent-bullets-s.png)](sent-bullets.png) _AT_@ -19,17 +18,15 @@ have to worry about alignment. Instead you can really focus on the content. Dependencies ------------ - * Xlib and Xft for building * [farbfeld](//tools.suckless.org/farbfeld/) tools to use images in the presentations (if you don't want to use farbfeld, - [sent-0.2](//dl.suckless.org/tools/sent-0.2.tar.gz) was the last version - with just png support, but may lack fixes and further improvements since its + [sent-0.2](//dl.suckless.org/tools/sent-0.2.tar.gz) was the last version with + just png support, but may lack fixes and further improvements since its release) Demo ---- - To get a little demo, just type make && ./sent example _AT_@ -38,7 +35,6 @@ You can navigate with the arrow keys and quit with `q`. (Non-)Features -------------- - * A presentation is just a simple text file. * Each paragraph represents one slide. * Content is automatically scaled to fit the screen. _AT_@ -56,7 +52,6 @@ You can navigate with the arrow keys and quit with `q`. Usage ----- - Edit config.h to fit your needs then build again. sent [FILE] _AT_@ -83,18 +78,16 @@ with `#` will be ignored. A `\` at the beginning of the line escapes `@` and thanks / questions? -A deeper example can be found in [this -file](//git.suckless.org/sent/tree/example) from the repository root. +A deeper example can be found in +[this file](//git.suckless.org/sent/tree/example) from the repository root. Development ----------- - -You can [browse](//git.suckless.org/sent) its source code repository -or get a copy using the following command: +You can [browse](//git.suckless.org/sent) its source code repository or get a +copy using the following command: git clone https://git.suckless.org/sent Download -------- - * [sent-1](//dl.suckless.org/tools/sent-1.tar.gz) (20170904) diff --git a/tools.suckless.org/sent/patches/bilinear_scaling/index.md b/tools.suckless.org/sent/patches/bilinear_scaling/index.md index 3eb45118..abda4749 100644 --- a/tools.suckless.org/sent/patches/bilinear_scaling/index.md +++ b/tools.suckless.org/sent/patches/bilinear_scaling/index.md _AT_@ -3,31 +3,25 @@ Use Bilinear Scaling for Image Slides Description ----------- +The patch replaces the Nearest Neighbor Scaling algorithm used for images with +Bilinear Scaling. -The patch replaces the Nearest Neighbor Scaling algorithm used for -images with Bilinear Scaling. - -This should give somewhat more pleasing results when using image -slides for graphs, or other material which suffers badly under -aliasing. +This should give somewhat more pleasing results when using image slides for +graphs, or other material which suffers badly under aliasing. Notes ----- +Due to the nature of Bilinear Scaling, scaling down more than 50% will have +somewhat less pleasing results. Scaling up will generally be quite blurry. -Due to the nature of Bilinear Scaling, scaling down more than 50% will -have somewhat less pleasing results. Scaling up will generally be -quite blurry. - -There is room for further improvement of image scaling, e.g: -Implementing a better scaling algorithm such as bicubic, or lancszos; -and/or using separate algorithms for scaling up or down. +There is room for further improvement of image scaling, e.g: Implementing a +better scaling algorithm such as bicubic, or lancszos; and/or using separate +algorithms for scaling up or down. Download -------- - * [sent-bilinearscaling-1.0.diff](sent-bilinearscaling-1.0.diff) Author ------ - * Anton Kindestam (xantoz) <antonki_AT_kth.se> diff --git a/tools.suckless.org/sent/patches/index.md b/tools.suckless.org/sent/patches/index.md index bfe0d3e2..e9c83893 100644 --- a/tools.suckless.org/sent/patches/index.md +++ b/tools.suckless.org/sent/patches/index.md _AT_@ -1,5 +1,5 @@ patches ======= -For instructions on how to submit and format patches, take a look at -the [hacking guidelines](//suckless.org/hacking). +For instructions on how to submit and format patches, take a look at the +[hacking guidelines](//suckless.org/hacking). diff --git a/tools.suckless.org/sent/patches/inverted-colors/index.md b/tools.suckless.org/sent/patches/inverted-colors/index.md index 4c59d47c..98d3870d 100644 --- a/tools.suckless.org/sent/patches/inverted-colors/index.md +++ b/tools.suckless.org/sent/patches/inverted-colors/index.md _AT_@ -3,24 +3,19 @@ Inverted Colors Description ----------- - This patch adds another color scheme. You can switch to that alternate color scheme with the `-i` flag. You no longer need to recompile sent if you want to present with a different color scheme. Notes ----- - -Just with the original `colors` array (`config.h`) you can adjust the colors -of the `inverted_colors` array. See `config.h` for more information. +Just with the original `colors` array (`config.h`) you can adjust the colors of +the `inverted_colors` array. See `config.h` for more information. Download -------- - -* [sent-invertedcolors-72d33d4.diff](sent-invertedcolors-72d33d4.diff) - (20190929) +* [sent-invertedcolors-72d33d4.diff](sent-invertedcolors-72d33d4.diff) (20190929) Author ------ - * Joel F. Meyer (sirjofri) <sirjofri_AT_sirjofri.de> diff --git a/tools.suckless.org/sent/patches/progress-bar/index.md b/tools.suckless.org/sent/patches/progress-bar/index.md index 8809b635..b9d588db 100644 --- a/tools.suckless.org/sent/patches/progress-bar/index.md +++ b/tools.suckless.org/sent/patches/progress-bar/index.md _AT_@ -3,7 +3,6 @@ Progress Bar Description ----------- - This patch introduces a progress bar at the very bottom of non-image slides. Similar to the slide numbers patch, it may be useful for an audience to know how much more of a presentation they have to endure. One way of measuring this _AT_@ -12,10 +11,8 @@ slide count. Download -------- - * [sent-progress-bar-1.0.diff](sent-progress-bar-1.0.diff) Author ------ - * David Phillips <david_AT_sighup.nz> diff --git a/tools.suckless.org/sent/patches/toggle_cursor/index.md b/tools.suckless.org/sent/patches/toggle_cursor/index.md index b820ff0a..0d24f5b3 100644 --- a/tools.suckless.org/sent/patches/toggle_cursor/index.md +++ b/tools.suckless.org/sent/patches/toggle_cursor/index.md _AT_@ -3,16 +3,13 @@ Toggle Mouse Cursor Description ----------- - The patch introduces a shortcut that toggles the mouse cursor. Enjoy! Download -------- - * [toggle-mouse-cursor.diff](toggle-mouse-cursor.diff) (1623) (20151117) Author ------ - * Alex Kozadaev (snobb) diff --git a/tools.suckless.org/sic/index.md b/tools.suckless.org/sic/index.md index 70cd0ffc..98f625b0 100644 --- a/tools.suckless.org/sic/index.md +++ b/tools.suckless.org/sic/index.md _AT_@ -1,6 +1,7 @@ simple irc client ================= -sic is an extremely simple IRC client. It consists of less than 250 lines of code. It is the little brother of [irc it](/ii). +sic is an extremely simple IRC client. It consists of less than 250 lines of +code. It is the little brother of [irc it](/ii). Download -------- _AT_@ -8,8 +9,8 @@ Download Development ----------- -You can [browse](//git.suckless.org/sic) its source code repository or -get a copy using the following command: +You can [browse](//git.suckless.org/sic) its source code repository or get a +copy using the following command: git clone https://git.suckless.org/sic diff --git a/tools.suckless.org/sic/patches/alert/index.md b/tools.suckless.org/sic/patches/alert/index.md index 554e6952..873dd5b4 100644 --- a/tools.suckless.org/sic/patches/alert/index.md +++ b/tools.suckless.org/sic/patches/alert/index.md _AT_@ -3,7 +3,8 @@ Alert Description ----------- -This patch make sic produce an alert by printing a bell character to stdout when the nick is found in an incoming message. +This patch make sic produce an alert by printing a bell character to stdout +when the nick is found in an incoming message. Download -------- diff --git a/tools.suckless.org/sic/patches/hidecommand/index.md b/tools.suckless.org/sic/patches/hidecommand/index.md index 14d741c2..d233b5e1 100644 --- a/tools.suckless.org/sic/patches/hidecommand/index.md +++ b/tools.suckless.org/sic/patches/hidecommand/index.md _AT_@ -3,11 +3,8 @@ hide commands Description ----------- - -This patch lets you hide IRC messages such as JOIN/QUIT. -You can use the sic command 'h' to specify what messages are hidden. -Example: -:h JOIN,QUIT +This patch lets you hide IRC messages such as JOIN/QUIT. You can use the sic +command 'h' to specify what messages are hidden. Example: :h JOIN,QUIT Now all JOIN and QUIT messages will not be displayed. The delimiter is unimportant (use what you like or nothing at all) _AT_@ -16,6 +13,5 @@ Use the command without arguments to stop hiding any messages. Download -------- - * [patch](hidecommand.diff) diff --git a/tools.suckless.org/sic/patches/index.md b/tools.suckless.org/sic/patches/index.md index bfe0d3e2..b6bd8095 100644 --- a/tools.suckless.org/sic/patches/index.md +++ b/tools.suckless.org/sic/patches/index.md _AT_@ -1,5 +1,4 @@ patches ======= - For instructions on how to submit and format patches, take a look at the [hacking guidelines](//suckless.org/hacking). diff --git a/tools.suckless.org/slock/index.md b/tools.suckless.org/slock/index.md index fdb87228..a6909e25 100644 --- a/tools.suckless.org/slock/index.md +++ b/tools.suckless.org/slock/index.md _AT_@ -1,14 +1,11 @@ slock ===== - -Simple X display locker. This is the simplest X screen locker we are -aware of. It is stable and quite a lot of people in our community are using it -every day when they are out with friends or fetching some food from the local -pub. +Simple X display locker. This is the simplest X screen locker we are aware of. +It is stable and quite a lot of people in our community are using it every day +when they are out with friends or fetching some food from the local pub. Configuration ------------- - slock is configured via `config.h` like most other suckless.org software. Per default it will turn the screen red on any keyboard press, if you are less paranoid and turning red on failed login attempts suffices for you, set _AT_@ -16,23 +13,20 @@ paranoid and turning red on failed login attempts suffices for you, set Development ----------- - -You can [browse](//git.suckless.org/slock) its source code repository -or get a copy using the following command: +You can [browse](//git.suckless.org/slock) its source code repository or get a +copy using the following command: git clone https://git.suckless.org/slock Download -------- - * [slock-1.4](//dl.suckless.org/tools/slock-1.4.tar.gz) (20161120) Xautolock --------- - slock can be started after a specific period of user inactivity using -[xautolock](http://www.ibiblio.org/pub/linux/X11/screensavers/). The -command syntax is: +[xautolock](http://www.ibiblio.org/pub/linux/X11/screensavers/). The command +syntax is: xautolock -time 10 -locker slock diff --git a/tools.suckless.org/slock/patches/capscolor/index.md b/tools.suckless.org/slock/patches/capscolor/index.md index 95fd82c2..58be2670 100644 --- a/tools.suckless.org/slock/patches/capscolor/index.md +++ b/tools.suckless.org/slock/patches/capscolor/index.md _AT_@ -3,18 +3,15 @@ Capscolor Description ----------- - Introduces an additional color to indicate the state of Caps Lock. Written against HEAD at a31b919, but should apply to 1.2. Download -------- - * [slock-capscolor.diff](slock-capscolor.diff) * [slock-capscolor-20170106-2d2a21a.diff](slock-capscolor-20170106-2d2a21a.diff) Authors ------- - * Andrew Hills <[ahills_AT_ednos.net](mailto:ahills_AT_ednos.net)> * Klemens Nanni <[kl3_AT_posteo.org](mailto:kl3_AT_posteo.org)> (20170106 version) diff --git a/tools.suckless.org/slock/patches/control-clear/index.md b/tools.suckless.org/slock/patches/control-clear/index.md index 3a19dc3a..5ea53578 100644 --- a/tools.suckless.org/slock/patches/control-clear/index.md +++ b/tools.suckless.org/slock/patches/control-clear/index.md _AT_@ -3,7 +3,6 @@ Control Clear Description ----------- - Adds an additional configuration parameter, controlkeyclear. When set to 1, slock will no longer change to the failure color if a control key is pressed while the buffer is empty. This is useful if, for example, you wake your _AT_@ -12,10 +11,8 @@ failed unlocking attempts. Download -------- - * [slock-git-20161012-control-clear.diff](slock-git-20161012-control-clear.diff) Author ------ - * David Phillips - <dbphillipsnz_AT_gmail.com> diff --git a/tools.suckless.org/slock/patches/dpms/index.md b/tools.suckless.org/slock/patches/dpms/index.md index 7986b992..2e439043 100644 --- a/tools.suckless.org/slock/patches/dpms/index.md +++ b/tools.suckless.org/slock/patches/dpms/index.md _AT_@ -3,7 +3,6 @@ DPMS Description ----------- - This patch interacts with the Display Power Signaling and automatically shuts down the monitor after a configurable amount of seconds. The monitor will automatically be activated by pressing a key or moving the mouse and the _AT_@ -11,19 +10,15 @@ password can be entered then. Notes ----- - -The number of seconds until the screen will be disabled is configured -in `config.h` via the `monitortime` option. +The number of seconds until the screen will be disabled is configured in +`config.h` via the `monitortime` option. This patch was written against the `1.4`-tag. - Download -------- - * [slock-dpms-20170923-fa11589.diff](slock-dpms-20170923-fa11589.diff) Authors ------- - * Alvar Penning <[post_AT_0x21.biz](mailto:post_AT_0x21.biz)> diff --git a/tools.suckless.org/slock/patches/index.md b/tools.suckless.org/slock/patches/index.md index bfe0d3e2..fa607dca 100644 --- a/tools.suckless.org/slock/patches/index.md +++ b/tools.suckless.org/slock/patches/index.md _AT_@ -1,5 +1,4 @@ patches ======= - -For instructions on how to submit and format patches, take a look at -the [hacking guidelines](//suckless.org/hacking). +For instructions on how to submit and format patches, take a look at the +[hacking guidelines](//suckless.org/hacking). diff --git a/tools.suckless.org/slock/patches/mediakeys/index.md b/tools.suckless.org/slock/patches/mediakeys/index.md index f15f221c..703d0e74 100644 --- a/tools.suckless.org/slock/patches/mediakeys/index.md +++ b/tools.suckless.org/slock/patches/mediakeys/index.md _AT_@ -14,15 +14,13 @@ locked: - XF86AudioPrev - XF86AudioNext -I don't want to unlock the screen just in order to skip the current song -or raise the volume, that's all there is to it. +I don't want to unlock the screen just in order to skip the current song or +raise the volume, that's all there is to it. Download -------- - * [slock-mediakeys-20170111-2d2a21a.diff](slock-mediakeys-20170111-2d2a21a.diff) Authors ------- - * Klemens Nanni <[kl3_AT_posteo.org](mailto:kl3_AT_posteo.org)> diff --git a/tools.suckless.org/slock/patches/message/index.md b/tools.suckless.org/slock/patches/message/index.md index 9ef7d049..b8a7360e 100644 --- a/tools.suckless.org/slock/patches/message/index.md +++ b/tools.suckless.org/slock/patches/message/index.md _AT_@ -3,10 +3,8 @@ Message Description ----------- - -This patch lets you add a message to your lock screen. You can place -a default message in `config.h`, and you can also pass a message with -`-m message` +This patch lets you add a message to your lock screen. You can place a default +message in `config.h`, and you can also pass a message with `-m message` So, for instance, you can run _AT_@ -18,7 +16,6 @@ Or if you want a silly lockscreen Notes ----- - This adds three items to `config.h`: * `message` - the default message _AT_@ -27,13 +24,10 @@ This adds three items to `config.h`: *A list of font sizes might be in* `/usr/share/fonts/X11/misc/` - Download -------- - * [slock-message-20180626-8384a86.diff](slock-message-20180626-8384a86.diff) Authors ------- - * Blair Drummond - blair.robert.drummond_AT_gmail.com diff --git a/tools.suckless.org/slock/patches/pam_auth/index.md b/tools.suckless.org/slock/patches/pam_auth/index.md index 890d1bf6..b3287492 100644 --- a/tools.suckless.org/slock/patches/pam_auth/index.md +++ b/tools.suckless.org/slock/patches/pam_auth/index.md _AT_@ -3,21 +3,18 @@ PAM auth Description ----------- - Replaces shadow support with PAM authentication support. Change variable `pam_service` in `config.def.h` to the corresponding PAM -service. The default configuration is for ArchLinux's `login` service. +service. The default configuration is for ArchLinux's `login` service. Download -------- - -* [slock-pam_auth-20161126-9909280.diff](slock-pam_auth-20161126-9909280.diff) -* [slock-pam_auth-20161026-5974695.diff](slock-pam_auth-20161026-5974695.diff) -* [slock-pam_auth-20160909-a7619f7.diff](slock-pam_auth-20160909-a7619f7.diff) -* [slock-pam_auth.diff](slock-pam_auth.diff) +* [slock-pam\_auth-20161126-9909280.diff](slock-pam_auth-20161126-9909280.diff) +* [slock-pam\_auth-20161026-5974695.diff](slock-pam_auth-20161026-5974695.diff) +* [slock-pam\_auth-20160909-a7619f7.diff](slock-pam_auth-20160909-a7619f7.diff) +* [slock-pam\_auth.diff](slock-pam_auth.diff) Authors ------- - * Jan Christoph Ebersbach <[jceb_AT_e-jc.de](mailto:jceb_AT_e-jc.de)> diff --git a/tools.suckless.org/slock/patches/quickcancel/index.md b/tools.suckless.org/slock/patches/quickcancel/index.md index 35b9870a..360f1497 100644 --- a/tools.suckless.org/slock/patches/quickcancel/index.md +++ b/tools.suckless.org/slock/patches/quickcancel/index.md _AT_@ -3,7 +3,6 @@ quickcancel Description ----------- - Allow slock to be cancelled by simple mouse movement within the first 3 seconds after starting. _AT_@ -12,17 +11,14 @@ an activity that requires no input (e.g. reading text, watching video). Notes ----- - The number of seconds while the lock can be cancelled is configured in `config.h` via the `timetocancel` option. Download -------- - * [slock-quickcancel-20160619-65b8d52.diff](slock-quickcancel-20160619-65b8d52.diff) Authors ------- - * Matthias Schoth - mschoth_AT_gmail.com diff --git a/tools.suckless.org/slock/patches/terminalkeys/index.md b/tools.suckless.org/slock/patches/terminalkeys/index.md index d4f4cb2c..6fc26d67 100644 --- a/tools.suckless.org/slock/patches/terminalkeys/index.md +++ b/tools.suckless.org/slock/patches/terminalkeys/index.md _AT_@ -3,7 +3,6 @@ terminalkeys Description ----------- - Add key commands that are commonly used in terminal applications (in particular the login prompt) to slock. _AT_@ -19,11 +18,9 @@ Mappings: Download -------- - * [slock-terminalkeys-20160618-65b8d52.diff](slock-terminalkeys-20160618-65b8d52.diff) Authors ------- - * Matthias Schoth - mschoth_AT_gmail.com diff --git a/tools.suckless.org/slock/patches/unlock_screen/index.md b/tools.suckless.org/slock/patches/unlock_screen/index.md index eef6025e..103c9212 100644 --- a/tools.suckless.org/slock/patches/unlock_screen/index.md +++ b/tools.suckless.org/slock/patches/unlock_screen/index.md _AT_@ -3,17 +3,14 @@ Unlock Screen Description ----------- - -This patch keeps the screen unlocked but keeps the input locked. -That is, the screen is not affected by slock, but users will not -be able to interact with the X session unless they enter the correct password. +This patch keeps the screen unlocked but keeps the input locked. That is, the +screen is not affected by slock, but users will not be able to interact with +the X session unless they enter the correct password. Download -------- - -* [slock-unlock_screen-1.4.diff](slock-unlock_screen-1.4.diff) +* [slock-unlock\_screen-1.4.diff](slock-unlock_screen-1.4.diff) Authors ------- - * Arif Roktim <[aroktim_AT_stuy.edu](mailto:aroktim_AT_stuy.edu)> diff --git a/tools.suckless.org/slstatus/index.md b/tools.suckless.org/slstatus/index.md index d5f5cbed..7dae9715 100644 --- a/tools.suckless.org/slstatus/index.md +++ b/tools.suckless.org/slstatus/index.md _AT_@ -1,12 +1,11 @@ ![slstatus](slstatus.svg) -slstatus is a status monitor for window managers that use WM\_NAME or stdin -to fill the status bar. +slstatus is a status monitor for window managers that use WM\_NAME or stdin to +fill the status bar. Development ----------- - -You can [browse](//git.suckless.org/slstatus) its source code repository -or get a copy using the following command: +You can [browse](//git.suckless.org/slstatus) its source code repository or get +a copy using the following command: git clone https://git.suckless.org/slstatus diff --git a/tools.suckless.org/tabbed/index.md b/tools.suckless.org/tabbed/index.md index 945663f8..c49aa510 100644 --- a/tools.suckless.org/tabbed/index.md +++ b/tools.suckless.org/tabbed/index.md _AT_@ -3,15 +3,15 @@ tabbed ====== Simple generic tabbed fronted to xembed aware applications, originally designed -for [surf](//surf.suckless.org) but also usable with many other -applications, i.e. [st](//st.suckless.org), [uzbl](http://uzbl.org), +for [surf](//surf.suckless.org) but also usable with many other applications, +i.e. [st](//st.suckless.org), [uzbl](http://uzbl.org), [urxvt](http://software.schmorp.de/pkg/rxvt-unicode.html) and [xterm](http://invisible-island.net/xterm/) Development ----------- -You can [browse](//git.suckless.org/tabbed) its source code repository -or get a copy using the following command: +You can [browse](//git.suckless.org/tabbed) its source code repository or get a +copy using the following command: git clone https://git.suckless.org/tabbed diff --git a/tools.suckless.org/tabbed/patches/alpha/index.md b/tools.suckless.org/tabbed/patches/alpha/index.md index 908e7cef..8699d88c 100644 --- a/tools.suckless.org/tabbed/patches/alpha/index.md +++ b/tools.suckless.org/tabbed/patches/alpha/index.md _AT_@ -3,7 +3,6 @@ Alpha Description ----------- - This patch create 32bit window in tabbed. This allows to handle windows with transparency. _AT_@ -12,7 +11,6 @@ this patch effective. If you want to use transparency in st with this patch, you also need to replace - #define USE_ARGB (alpha != OPAQUE && opt_embed == NULL) by _AT_@ -23,12 +21,8 @@ in st.c Download -------- - * [alpha.diff](alpha.diff) (3.8k) (28 Feb 2017) - Author ------ - * Sébastien Dailly - `<contact at chimrod dot com>` - diff --git a/tools.suckless.org/tabbed/patches/autohide/index.md b/tools.suckless.org/tabbed/patches/autohide/index.md index 701c9768..7e8d02d2 100644 --- a/tools.suckless.org/tabbed/patches/autohide/index.md +++ b/tools.suckless.org/tabbed/patches/autohide/index.md _AT_@ -1,6 +1,5 @@ Autohide ======== - This patch hides the tab bar if only one tab is open. Download diff --git a/tools.suckless.org/tabbed/patches/index.md b/tools.suckless.org/tabbed/patches/index.md index bfe0d3e2..fa607dca 100644 --- a/tools.suckless.org/tabbed/patches/index.md +++ b/tools.suckless.org/tabbed/patches/index.md _AT_@ -1,5 +1,4 @@ patches ======= - -For instructions on how to submit and format patches, take a look at -the [hacking guidelines](//suckless.org/hacking). +For instructions on how to submit and format patches, take a look at the +[hacking guidelines](//suckless.org/hacking). diff --git a/tools.suckless.org/tabbed/patches/keycode/index.md b/tools.suckless.org/tabbed/patches/keycode/index.md index 71287c40..d162791a 100644 --- a/tools.suckless.org/tabbed/patches/keycode/index.md +++ b/tools.suckless.org/tabbed/patches/keycode/index.md _AT_@ -1,7 +1,8 @@ Keycode ======= With this patch, handling key input is done with keycodes instead of keysyms. -This way, input is keyboard layout independant (adapt config.h to your keyboard using for example xev). +This way, input is keyboard layout independant (adapt config.h to your keyboard +using for example xev). Download -------- diff --git a/tools.suckless.org/tabbed/patches/xft/index.md b/tools.suckless.org/tabbed/patches/xft/index.md index 156e6911..7595ef06 100644 --- a/tools.suckless.org/tabbed/patches/xft/index.md +++ b/tools.suckless.org/tabbed/patches/xft/index.md _AT_@ -3,16 +3,12 @@ xft Description ----------- - This patch implements Xft. This allows users to utilize the UTF8 character set. Download -------- - * [tabbed-0.6-xft.diff](tabbed-0.6-xft.diff) (6.5k) (10 Sep 2015) - Author ------ - * Danil Semelenov - `<mail at danil dot mobi>` diff --git a/tools.suckless.org/x/svkbd/index.md b/tools.suckless.org/x/svkbd/index.md index c4b60a18..a4050605 100644 --- a/tools.suckless.org/x/svkbd/index.md +++ b/tools.suckless.org/x/svkbd/index.md _AT_@ -1,11 +1,10 @@ svkbd ===== -This is a simple virtual keyboard, intended to be used in environments, -where no keyboard is available. +This is a simple virtual keyboard, intended to be used in environments, where +no keyboard is available. Installation ------------ - % make % make install _AT_@ -14,31 +13,29 @@ keyboard layout. You can create svkbd for additional layouts by doing: % make svkbd-$layout -This will take the file `layout.$layout.h` and create `svkbd-$layout`. -`make install` will then pick up the new file and install it accordingly. +This will take the file `layout.$layout.h` and create `svkbd-$layout`. `make +install` will then pick up the new file and install it accordingly. Usage ----- - % svkbd-en -This will open svkbd at the bottom of the screen, showing the default -English layout. +This will open svkbd at the bottom of the screen, showing the default English +layout. % svkbd-en -d -This tells svkbd-en to announce itself being a dock window, which then -is managed differently between different window managers. If using dwm -and the dock patch, then this will make svkbd being managed by dwm and -some space of the screen being reserved for it. +This tells svkbd-en to announce itself being a dock window, which then is +managed differently between different window managers. If using dwm and the +dock patch, then this will make svkbd being managed by dwm and some space of +the screen being reserved for it. % svkbd-en -g 400x200+1+1 -This will start svkbd-en with a size of 400x200 and at the upper left -window corner. +This will start svkbd-en with a size of 400x200 and at the upper left window +corner. Repository ---------- - git clone https://git.suckless.org/svkbd diff --git a/tools.suckless.org/x/swarp/index.md b/tools.suckless.org/x/swarp/index.md index dfbff7c1..3dbf2f8a 100644 --- a/tools.suckless.org/x/swarp/index.md +++ b/tools.suckless.org/x/swarp/index.md _AT_@ -1,6 +1,7 @@ swarp ===== -Simple pointer warping tool for X. Warps the mouse pointer to a given position, e.g.: +Simple pointer warping tool for X. Warps the mouse pointer to a given position, +e.g.: swarp 100 100 diff --git a/tools.suckless.org/x/wmname/index.md b/tools.suckless.org/x/wmname/index.md index b0e71a1e..8f5c532e 100644 --- a/tools.suckless.org/x/wmname/index.md +++ b/tools.suckless.org/x/wmname/index.md _AT_@ -12,8 +12,8 @@ Download Repository ---------- -You can [browse](//git.suckless.org/wmname) the source code or get a -copy using the following command: +You can [browse](//git.suckless.org/wmname) the source code or get a copy using +the following command: git clone https://git.suckless.org/wmname _AT_@ -21,11 +21,11 @@ Usage ----- The following command prints the window manager name, if any: - ; wmname + $ wmname This is helpful when attempting to run java swing(broken) applications, -it makes them think they are running through the looking glass and behave as expected. -The following command sets the window manager name, e.g. +it makes them think they are running through the looking glass and behave as +expected. The following command sets the window manager name, e.g. - ; wmname LG3D + $ wmname LG3DReceived on Sun Jan 06 2019 - 01:34:34 CET
This archive was generated by hypermail 2.3.0 : Sun Jan 06 2019 - 01:36:27 CET