sites

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit f5a008029a6209b6645ac4797593884fc2a43457
parent f10b77b1a8e36b755321f7125be03fe6e25eb6fd
Author: Moritz Wilhelmy <moritz+hg@wzff.de>
Date:   Tue,  1 Mar 2011 11:35:51 +0100

merge with official wiki
Diffstat:
Adwm.suckless.org/patches/dwm-5.8.2-statuscolors.diff | 232+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mdwm.suckless.org/patches/statuscolors.md | 4++--
Asta.li/technologies.md | 23+++++++++++++++++++++++
Msuckless.org/misc/cool_programs.md | 104+++++++++++++++++++++++++++++++++++++++++--------------------------------------
Msuckless.org/other_projects.md | 1-
Rtools.suckless.org/dmenu/patches/allow-kp_decimal-in-dmenu.patch -> tools.suckless.org/dmenu/patches/legacy/allow-kp_decimal-in-dmenu.patch | 0
Rtools.suckless.org/dmenu/patches/kp_decimal.md -> tools.suckless.org/dmenu/patches/legacy/kp_decimal.md | 0
7 files changed, 311 insertions(+), 53 deletions(-)

diff --git a/dwm.suckless.org/patches/dwm-5.8.2-statuscolors.diff b/dwm.suckless.org/patches/dwm-5.8.2-statuscolors.diff @@ -0,0 +1,232 @@ +--- a/config.def.h 2010-10-16 15:49:03.000000000 +0200 ++++ b/config.def.h 2010-10-16 15:51:35.000000000 +0200 +@@ -1,13 +1,16 @@ + /* See LICENSE file for copyright and license details. */ + + /* appearance */ ++#define NUMCOLORS 4 // need at least 3 ++static const char colors[NUMCOLORS][ColLast][8] = { ++ // border foreground background ++ { "#cccccc", "#000000", "#cccccc" }, // 0 = normal ++ { "#0066ff", "#ffffff", "#0066ff" }, // 1 = selected ++ { "#0066ff", "#0066ff", "#ffffff" }, // 2 = urgent/warning ++ { "#ff0000", "#ffffff", "#ff0000" }, // 3 = error ++ // add more here ++}; + static const char font[] = "-*-terminus-medium-r-*-*-16-*-*-*-*-*-*-*"; +-static const char normbordercolor[] = "#cccccc"; +-static const char normbgcolor[] = "#cccccc"; +-static const char normfgcolor[] = "#000000"; +-static const char selbordercolor[] = "#0066ff"; +-static const char selbgcolor[] = "#0066ff"; +-static const char selfgcolor[] = "#ffffff"; + static const unsigned int borderpx = 1; /* border pixel of windows */ + static const unsigned int snap = 32; /* snap pixel */ + static const Bool showbar = True; /* False means no bar */ +@@ -45,7 +48,7 @@ + #define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } } + + /* commands */ +-static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL }; ++static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", colors[0][ColBG], "-nf", colors[0][ColFG],"-sb", colors[1][ColBG], "-sf", colors[1][ColFG], NULL }; + static const char *termcmd[] = { "uxterm", NULL }; + + static Key keys[] = { +--- a//dwm.c 2010-06-04 12:39:15.000000000 +0200 ++++ b/dwm.c 2010-11-03 20:36:50.000000000 +0100 +@@ -48,6 +48,7 @@ + #define LENGTH(X) (sizeof X / sizeof X[0]) + #define MAX(A, B) ((A) > (B) ? (A) : (B)) + #define MIN(A, B) ((A) < (B) ? (A) : (B)) ++#define MAXCOLORS 8 + #define MOUSEMASK (BUTTONMASK|PointerMotionMask) + #define WIDTH(X) ((X)->w + 2 * (X)->bw) + #define HEIGHT(X) ((X)->h + 2 * (X)->bw) +@@ -97,8 +98,7 @@ + + typedef struct { + int x, y, w, h; +- unsigned long norm[ColLast]; +- unsigned long sel[ColLast]; ++ unsigned long colors[MAXCOLORS][ColLast]; + Drawable drawable; + GC gc; + struct { +@@ -175,8 +175,9 @@ + static Monitor *dirtomon(int dir); + static void drawbar(Monitor *m); + static void drawbars(void); +-static void drawsquare(Bool filled, Bool empty, Bool invert, unsigned long col[ColLast]); +-static void drawtext(const char *text, unsigned long col[ColLast], Bool invert); ++static void drawcoloredtext(char *text); ++static void drawsquare(Bool filled, Bool empty, unsigned long col[ColLast]); ++static void drawtext(const char *text, unsigned long col[ColLast], Bool pad); + static void enternotify(XEvent *e); + static void expose(XEvent *e); + static void focus(Client *c); +@@ -696,14 +697,13 @@ + dc.x = 0; + for(i = 0; i < LENGTH(tags); i++) { + dc.w = TEXTW(tags[i]); +- col = m->tagset[m->seltags] & 1 << i ? dc.sel : dc.norm; +- drawtext(tags[i], col, urg & 1 << i); +- drawsquare(m == selmon && selmon->sel && selmon->sel->tags & 1 << i, +- occ & 1 << i, urg & 1 << i, col); ++ col = dc.colors[ (m->tagset[m->seltags] & 1 << i ? 1:(urg & 1 << i ? 2:0))]; ++ drawtext(tags[i], col, True); ++ drawsquare(m == selmon && selmon->sel && selmon->sel->tags & 1 << i, occ & 1 << i, col); + dc.x += dc.w; + } + dc.w = blw = TEXTW(m->ltsymbol); +- drawtext(m->ltsymbol, dc.norm, False); ++ drawtext(m->ltsymbol, dc.colors[0], True); + dc.x += dc.w; + x = dc.x; + if(m == selmon) { /* status is only drawn on selected monitor */ +@@ -713,19 +713,19 @@ + dc.x = x; + dc.w = m->ww - x; + } +- drawtext(stext, dc.norm, False); ++ drawcoloredtext(stext); + } + else + dc.x = m->ww; + if((dc.w = dc.x - x) > bh) { + dc.x = x; + if(m->sel) { +- col = m == selmon ? dc.sel : dc.norm; +- drawtext(m->sel->name, col, False); +- drawsquare(m->sel->isfixed, m->sel->isfloating, False, col); ++ col = m == selmon ? dc.colors[1] : dc.colors[0]; ++ drawtext(m->sel->name, col, True); ++ drawsquare(m->sel->isfixed, m->sel->isfloating, col); + } + else +- drawtext(NULL, dc.norm, False); ++ drawtext(NULL, dc.colors[0], False); + } + XCopyArea(dpy, dc.drawable, m->barwin, dc.gc, 0, 0, m->ww, bh, 0, 0); + XSync(dpy, False); +@@ -740,12 +740,42 @@ + } + + void +-drawsquare(Bool filled, Bool empty, Bool invert, unsigned long col[ColLast]) { ++drawcoloredtext(char *text) { ++ Bool first=True; ++ char *buf = text, *ptr = buf, c = 1; ++ unsigned long *col = dc.colors[0]; ++ int i, ox = dc.x; ++ ++ while( *ptr ) { ++ for( i = 0; *ptr < 0 || *ptr > NUMCOLORS; i++, ptr++); ++ if( !*ptr ) break; ++ c=*ptr; ++ *ptr=0; ++ if( i ) { ++ dc.w = selmon->ww - dc.x; ++ drawtext(buf, col, first); ++ dc.x += textnw(buf, i) + textnw(&c,1); ++ if( first ) dc.x += ( dc.font.ascent + dc.font.descent ) / 2; ++ first = False; ++ } else if( first ) { ++ ox = dc.x += textnw(&c,1); ++ } ++ *ptr = c; ++ col = dc.colors[ c-1 ]; ++ buf = ++ptr; ++ } ++ if( !first ) dc.x-=(dc.font.ascent+dc.font.descent)/2; ++ drawtext(buf, col, True); ++ dc.x = ox; ++} ++ ++void ++drawsquare(Bool filled, Bool empty, unsigned long col[ColLast]) { + int x; + XGCValues gcv; + XRectangle r = { dc.x, dc.y, dc.w, dc.h }; + +- gcv.foreground = col[invert ? ColBG : ColFG]; ++ gcv.foreground = col[ ColFG ]; + XChangeGC(dpy, dc.gc, GCForeground, &gcv); + x = (dc.font.ascent + dc.font.descent + 2) / 4; + r.x = dc.x + 1; +@@ -761,18 +791,18 @@ + } + + void +-drawtext(const char *text, unsigned long col[ColLast], Bool invert) { ++drawtext(const char *text, unsigned long col[ColLast], Bool pad) { + char buf[256]; + int i, x, y, h, len, olen; + XRectangle r = { dc.x, dc.y, dc.w, dc.h }; + +- XSetForeground(dpy, dc.gc, col[invert ? ColFG : ColBG]); ++ XSetForeground(dpy, dc.gc, col[ ColBG ]); + XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1); + if(!text) + return; + olen = strlen(text); +- h = dc.font.ascent + dc.font.descent; +- y = dc.y + (dc.h / 2) - (h / 2) + dc.font.ascent; ++ h = pad ? (dc.font.ascent + dc.font.descent) : 0; ++ y = dc.y + ((dc.h + dc.font.ascent - dc.font.descent) / 2); + x = dc.x + (h / 2); + /* shorten text if necessary */ + for(len = MIN(olen, sizeof buf); len && textnw(text, len) > dc.w - h; len--); +@@ -781,7 +811,7 @@ + memcpy(buf, text, len); + if(len < olen) + for(i = len; i && i > len - 3; buf[--i] = '.'); +- XSetForeground(dpy, dc.gc, col[invert ? ColBG : ColFG]); ++ XSetForeground(dpy, dc.gc, col[ ColFG ]); + if(dc.font.set) + XmbDrawString(dpy, dc.drawable, dc.font.set, dc.gc, x, y, buf, len); + else +@@ -830,7 +860,7 @@ + detachstack(c); + attachstack(c); + grabbuttons(c, True); +- XSetWindowBorder(dpy, c->win, dc.sel[ColBorder]); ++ XSetWindowBorder(dpy, c->win, dc.colors[1][ColBorder]); + XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime); + } + else +@@ -1139,7 +1169,7 @@ + } + wc.border_width = c->bw; + XConfigureWindow(dpy, w, CWBorderWidth, &wc); +- XSetWindowBorder(dpy, w, dc.norm[ColBorder]); ++ XSetWindowBorder(dpy, w, dc.colors[0][ColBorder]); + configure(c); /* propagates border_width, if size doesn't change */ + updatesizehints(c); + XSelectInput(dpy, w, EnterWindowMask|FocusChangeMask|PropertyChangeMask|StructureNotifyMask); +@@ -1544,12 +1574,11 @@ + cursor[CurResize] = XCreateFontCursor(dpy, XC_sizing); + cursor[CurMove] = XCreateFontCursor(dpy, XC_fleur); + /* init appearance */ +- dc.norm[ColBorder] = getcolor(normbordercolor); +- dc.norm[ColBG] = getcolor(normbgcolor); +- dc.norm[ColFG] = getcolor(normfgcolor); +- dc.sel[ColBorder] = getcolor(selbordercolor); +- dc.sel[ColBG] = getcolor(selbgcolor); +- dc.sel[ColFG] = getcolor(selfgcolor); ++ for(int i=0; i<NUMCOLORS; i++) { ++ dc.colors[i][ColBorder] = getcolor( colors[i][ColBorder] ); ++ dc.colors[i][ColFG] = getcolor( colors[i][ColFG] ); ++ dc.colors[i][ColBG] = getcolor( colors[i][ColBG] ); ++ } + dc.drawable = XCreatePixmap(dpy, root, DisplayWidth(dpy, screen), bh, DefaultDepth(dpy, screen)); + dc.gc = XCreateGC(dpy, root, 0, NULL); + XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter); +@@ -1711,7 +1740,7 @@ + if(!c) + return; + grabbuttons(c, False); +- XSetWindowBorder(dpy, c->win, dc.norm[ColBorder]); ++ XSetWindowBorder(dpy, c->win, dc.colors[0][ColBorder]); + if(setfocus) + XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime); + } diff --git a/dwm.suckless.org/patches/statuscolors.md b/dwm.suckless.org/patches/statuscolors.md @@ -12,7 +12,7 @@ Modify the colors definition in 'config.h' to suit your needs. Make sure to def ## 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 '\0' is the string terminator). To switch back to the normal text color use '\x01'. +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 '\0' is the string terminator). To switch back to the 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 ### @@ -57,4 +57,4 @@ An example status script snippet to take advantage of the colors: ## 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) diff --git a/sta.li/technologies.md b/sta.li/technologies.md @@ -0,0 +1,23 @@ +Software / Techologies sta.li could use +======================================= + +This list is a proposal of software, which sta.li should include. The rules +are: Be as simple as possible and as useful as possible. + +* [asm_utils](http://www.energymech.net/users/proton/) +* init + * [cinit](http://www.nico.schottelius.org/software/cinit/) +* services + * [runit](http://smarden.org/runit/) +* logging + * [socklog](http://smarden.org/socklog/) +* documents + * [ted](http://www.nllg.nl/Ted/) +* udev + * [mdev](http://lists.busybox.net/pipermail/busybox/2005-December/017183.html) +* wm + * [dwm](http://dwm.suckless.org) + * [nowm](https://github.com/patrickhaller/no-wm) +* dyndns + * [tinydyndns](http://smarden.org/tinydyndns/) + diff --git a/suckless.org/misc/cool_programs.md b/suckless.org/misc/cool_programs.md @@ -9,15 +9,9 @@ for judging a programs as usable are: This covers most console-based programs and programs from [plan9port][]. -Text Editors ------------- -* [acme][acme] - [Rob Pike][rob]'s framing text editor for Plan 9. Included in [plan9port][]. -* [ired](http://www.radare.org) (Minimalist hexadecimal editor and bindiffer for p9, w32 and *nix) -* [nvi](http://www.bostic.com/vi/) - A small, multiple file vi-alike. -* [sam](http://sam.cat-v.org/) - An editor by [Rob Pike][rob] with inspiration from ed. -* [traditional vi](http://ex-vi.sourceforge.net/) - A fixed version of the original vi. -* [vim](http://www.vim.org) (With the GUI, use `:set go+=c` to kill popup dialogs) -* [wily](http://www.cs.yorku.ca/~oz/wily/) - An acme clone for POSIX. +Accounting +---------- +* [Ledger](https://github.com/jwiegley/ledger/wiki) Audio Players ------------- @@ -31,20 +25,23 @@ Audio Players * [mpg321](http://mpg321.sourceforge.net) * [vorbis-tools](http://www.xiph.org/) (Ogg/FLAC) - Command-line tools to play Ogg and FLAC files. -Media Players -------------- -* [mplayer](http://www.mplayerhq.hu/) (without GUI) - You know mplayer, but you may not know that it works well without the GUI. -* smplayer +BitTorrent Clients +------------------ +* [btpd](https://github.com/btpd/btpd) - The BitTorrent Protocol Daemon -Utilities ---------- -* [9menu](http://www.freshports.org/x11/9menu/) - A menu program based on the Blit-style menus so prevalent in Plan 9. A take on it is included with wmii. -* [dmenu](/programs/dmenu.html) - Obvious +Feed aggregators +---------------- +* [newsbeuter](http://www.newsbeuter.org/) -Programming languages ---------------------- -* [Lua](http://www.lua.org) -* [TinyPy](http://www.tinypy.org/) - Tiny Python (partial python) +IRC Clients +----------- +* [Irc](http://swtch.com/irc/) +* [acme:SAC](http://caerwyn.com/acme/index.html) +* [ii](/programs/ii.html) - A FIFO based IRC client which is part of the suckless.org project. +* [ircc](http://www.r-36.net/ircc.tgz) - A no-frills, ncurses free, console-based IRC client. Broken link. Is it [netwalker-ircc?](http://www.freebsdsoftware.org/irc/netwalker-ircc.html) +* [ircrc](http://plan9.bell-labs.com/sources/contrib/fgb/rc/ircrc) - An rc-based IRC client similar to ircc. Needs minor modification to run on UNIX. +* [irssi](http://www.irssi.org/) +* [sic](/programs/sic.html) - Another suckless.org IRC client. Similar to ircc. Image Viewers ------------- @@ -55,15 +52,14 @@ Image Viewers * [xli](http://pantransit.reptiles.org/prog/) - broken link? Apparently, there's a copy here: http://ftp.x.org/contrib/applications/ -- at your own risk * [xzgv](http://sourceforge.net/projects/xzgv) -IRC Clients ------------ -* [Irc](http://swtch.com/irc/) -* [acme:SAC](http://caerwyn.com/acme/index.html) -* [ii](/programs/ii.html) - A FIFO based IRC client which is part of the suckless.org project. -* [ircc](http://www.r-36.net/ircc.tgz) - A no-frills, ncurses free, console-based IRC client. Broken link. Is it [netwalker-ircc?](http://www.freebsdsoftware.org/irc/netwalker-ircc.html) -* [ircrc](http://plan9.bell-labs.com/sources/contrib/fgb/rc/ircrc) - An rc-based IRC client similar to ircc. Needs minor modification to run on UNIX. -* [irssi](http://www.irssi.org/) -* [sic](/programs/sic.html) - Another suckless.org IRC client. Similar to ircc. +Instant Messaging Clients +------------------------- +* [bitlbee](http://www.bitlbee.org/) - A program to translate IM protocols to IRC. You can now IM from your IRC client, and you don't even need to install anything. +* [centericq](http://konst.org.ua/centericq/) +* [centerim](http://www.centerim.org/) - A centericq fork. +* [climm](http://www.climm.org/) +* [mcabber](http://www.lilotux.net/~mikael/mcabber/) - A console jabber client. +* [ysm](http://ysmv7.sourceforge.net/) Mail Clients ------------ @@ -76,14 +72,34 @@ Mail Clients * [muttator](http://vimperator.org/muttator) - A Thunderbird extension to make it keyboard friendly and mutt/Vim-like. * [nmh](http://www.nongnu.org/nmh/) -Instant Messaging Clients -------------------------- -* [bitlbee](http://www.bitlbee.org/) - A program to translate IM protocols to IRC. You can now IM from your IRC client, and you don't even need to install anything. -* [centericq](http://konst.org.ua/centericq/) -* [centerim](http://www.centerim.org/) - A centericq fork. -* [climm](http://www.climm.org/) -* [mcabber](http://www.lilotux.net/~mikael/mcabber/) - A console jabber client. -* [ysm](http://ysmv7.sourceforge.net/) +Media Players +------------- +* [mplayer](http://www.mplayerhq.hu/) (without GUI) - You know mplayer, but you may not know that it works well without the GUI. +* smplayer + +PDF Viewers +----------- +* [zathura](http://zathura.pwmt.org/) + +Programming languages +--------------------- +* [Lua](http://www.lua.org) +* [TinyPy](http://www.tinypy.org/) - Tiny Python (partial python) + +Text Editors +------------ +* [acme][acme] - [Rob Pike][rob]'s framing text editor for Plan 9. Included in [plan9port][]. +* [ired](http://www.radare.org) (Minimalist hexadecimal editor and bindiffer for p9, w32 and *nix) +* [nvi](http://www.bostic.com/vi/) - A small, multiple file vi-alike. +* [sam](http://sam.cat-v.org/) - An editor by [Rob Pike][rob] with inspiration from ed. +* [traditional vi](http://ex-vi.sourceforge.net/) - A fixed version of the original vi. +* [vim](http://www.vim.org) (With the GUI, use `:set go+=c` to kill popup dialogs) +* [wily](http://www.cs.yorku.ca/~oz/wily/) - An acme clone for POSIX. + +Utilities +--------- +* [9menu](http://www.freshports.org/x11/9menu/) - A menu program based on the Blit-style menus so prevalent in Plan 9. A take on it is included with wmii. +* [dmenu](/programs/dmenu.html) - Obvious Web Browsers ------------ @@ -99,22 +115,10 @@ Web Browsers * [uzbl](http://uzbl.org/) * [w3m](http://w3m.sf.net/) -Feed aggregators ----------------- -* [newsbeuter](http://www.newsbeuter.org/) - Web Servers ----------- * [Nostromo](http://www.nazgul.ch/dev_nostromo.html) -PDF Viewers ------------ -* [zathura](http://zathura.pwmt.org/) - -Accounting ----------- -* [Ledger](https://github.com/jwiegley/ledger/wiki) - [rob]: http://herpolhode.com/rob/ [plan9port]: http://swtch.com/plan9port/ [acme]: http://acme.cat-v.org diff --git a/suckless.org/other_projects.md b/suckless.org/other_projects.md @@ -2,7 +2,6 @@ OTHER PROJECTS ============== There are several other projects which are inspired by the spirit of suckless. -* [acr](http://hg.youterm.com/acr/) - autoconf replacement * [alt](http://hg.youterm.com/alt/) - abstract language tree * [bgs](http://s01.de/~tox/index.cgi/proj_bgs) - background setter * [bug](http://vicerveza.homeunix.net/~viric/soft/bug/) - commandline todo-tracking system diff --git a/tools.suckless.org/dmenu/patches/allow-kp_decimal-in-dmenu.patch b/tools.suckless.org/dmenu/patches/legacy/allow-kp_decimal-in-dmenu.patch diff --git a/tools.suckless.org/dmenu/patches/kp_decimal.md b/tools.suckless.org/dmenu/patches/legacy/kp_decimal.md