Introduction
Introduction Statistics Contact Development Disclaimer Help
tMoving to the dwm config.h variable usage. - st - [fork] customized build of s…
git clone git://src.adamsgaard.dk/st
Log
Files
Refs
README
LICENSE
---
commit 393825f9f8a23dfcdfda5220aa8029e9356fa15b
parent e5d7c5a69e17d858984fe2c28b7d026672f42177
Author: Christoph Lohmann <[email protected]>
Date: Fri, 2 Nov 2012 19:56:02 +0100
Moving to the dwm config.h variable usage.
Diffstat:
M config.def.h | 60 +++++++++++++++++------------…
M st.c | 80 ++++++++++++++++-------------…
2 files changed, 72 insertions(+), 68 deletions(-)
---
diff --git a/config.def.h b/config.def.h
t@@ -1,11 +1,19 @@
+/* See LICENSE file for copyright and license details. */
-#define FONT "Liberation Mono:pixelsize=12:antialias=false:autohint=false"
+/* appearance */
+static char font[] = "Liberation Mono:pixelsize=12:antialias=false:autohint=fa…
+static unsigned int borderpx = 2;
+static char shell[] = "/bin/sh";
-/* Space in pixels around the terminal buffer */
-#define BORDER 2
+/* double-click timeout (in milliseconds) between clicks for selection */
+static unsigned int doubleclicktimeout = 300;
+static unsigned int tripleclicktimeout = 600;
+
+/* TERM value */
+static char termname[] = "st-256color";
+
+static unsigned int tabspaces = 8;
-/* Default shell to use if SHELL is not set in the env */
-#define SHELL "/bin/sh"
/* Terminal colors (16 first used in escape sequence) */
static const char *colorname[] = {
t@@ -36,21 +44,26 @@ static const char *colorname[] = {
"#333333",
};
-/* Default colors (colorname index)
- foreground, background, cursor, unfocused cursor */
-#define DefaultFG 7
-#define DefaultBG 0
-#define DefaultCS 256
-#define DefaultUCS 257
-
-/* Special keys (change & recompile st.info accordingly)
- Keep in mind that kpress() in st.c hardcodes some keys.
-
- Mask value:
- * Use XK_ANY_MOD to match the key no matter modifiers state
- * Use XK_NO_MOD to match the key alone (no modifiers)
- key, mask, output */
+/*
+ * Default colors (colorname index)
+ * foreground, background, cursor, unfocused cursor
+ */
+static unsigned int defaultfg = 7;
+static unsigned int defaultbg = 0;
+static unsigned int defaultcs = 256;
+static unsigned int defaultucs = 257;
+
+/*
+ * Special keys (change & recompile st.info accordingly)
+ * Keep in mind that kpress() in st.c hardcodes some keys.
+ *
+ * Mask value:
+ * * Use XK_ANY_MOD to match the key no matter modifiers state
+ * * Use XK_NO_MOD to match the key alone (no modifiers)
+ */
+
+/* key, mask, output */
static Key key[] = {
{ XK_BackSpace, XK_NO_MOD, "\177" },
{ XK_Insert, XK_NO_MOD, "\033[2~" },
t@@ -82,12 +95,3 @@ static Shortcut shortcuts[] = {
{ MODKEY|ShiftMask, XK_Next, xzoom, {.i =…
};
-/* Set TERM to this */
-#define TNAME "st-256color"
-
-/* double-click timeout (in milliseconds) between clicks for selection */
-#define DOUBLECLICK_TIMEOUT 300
-#define TRIPLECLICK_TIMEOUT (2*DOUBLECLICK_TIMEOUT)
-
-#define TAB 8
-
diff --git a/st.c b/st.c
t@@ -72,8 +72,8 @@
#define ATTRCMP(a, b) ((a).mode != (b).mode || (a).fg != (b).fg || (a).bg != (…
#define IS_SET(flag) (term.mode & (flag))
#define TIMEDIFF(t1, t2) ((t1.tv_sec-t2.tv_sec)*1000 + (t1.tv_usec-t2.tv_usec)…
-#define X2COL(x) (((x) - BORDER)/xw.cw)
-#define Y2ROW(y) (((y) - BORDER)/xw.ch)
+#define X2COL(x) (((x) - borderpx)/xw.cw)
+#define Y2ROW(y) (((y) - borderpx)/xw.ch)
#define VT102ID "\033[?6c"
t@@ -803,13 +803,13 @@ brelease(XEvent *e) {
sel.bx = -1;
gettimeofday(&now, NULL);
- if(TIMEDIFF(now, sel.tclick2) <= TRIPLECLICK_TIMEOUT) {
+ if(TIMEDIFF(now, sel.tclick2) <= tripleclicktimeout) {
/* triple click on the line */
sel.b.x = sel.bx = 0;
sel.e.x = sel.ex = term.col;
sel.b.y = sel.e.y = sel.ey;
selcopy();
- } else if(TIMEDIFF(now, sel.tclick1) <= DOUBLECLICK_TI…
+ } else if(TIMEDIFF(now, sel.tclick1) <= doubleclicktim…
/* double click to select word */
sel.bx = sel.ex;
while(sel.bx > 0 && term.line[sel.ey][sel.bx-1…
t@@ -894,8 +894,8 @@ execsh(void) {
signal(SIGTERM, SIG_DFL);
signal(SIGALRM, SIG_DFL);
- DEFAULT(envshell, SHELL);
- putenv("TERM="TNAME);
+ DEFAULT(envshell, shell);
+ setenv("TERM", termname, 1);
args = opt_cmd ? opt_cmd : (char *[]){envshell, "-i", NULL};
execvp(args[0], args);
exit(EXIT_FAILURE);
t@@ -1045,12 +1045,12 @@ treset(void) {
term.c = (TCursor){{
.mode = ATTR_NULL,
- .fg = DefaultFG,
- .bg = DefaultBG
+ .fg = defaultfg,
+ .bg = defaultbg
}, .x = 0, .y = 0, .state = CURSOR_DEFAULT};
memset(term.tabs, 0, term.col * sizeof(*term.tabs));
- for(i = TAB; i < term.col; i += TAB)
+ for(i = tabspaces; i < term.col; i += tabspaces)
term.tabs[i] = 1;
term.top = 0;
term.bot = term.row - 1;
t@@ -1310,8 +1310,8 @@ tsetattr(int *attr, int l) {
case 0:
term.c.attr.mode &= ~(ATTR_REVERSE | ATTR_UNDERLINE | …
| ATTR_ITALIC | ATTR_BLINK);
- term.c.attr.fg = DefaultFG;
- term.c.attr.bg = DefaultBG;
+ term.c.attr.fg = defaultfg;
+ term.c.attr.bg = defaultbg;
break;
case 1:
term.c.attr.mode |= ATTR_BOLD;
t@@ -1361,7 +1361,7 @@ tsetattr(int *attr, int l) {
}
break;
case 39:
- term.c.attr.fg = DefaultFG;
+ term.c.attr.fg = defaultfg;
break;
case 48:
if(i + 2 < l && attr[i + 1] == 5) {
t@@ -1380,7 +1380,7 @@ tsetattr(int *attr, int l) {
}
break;
case 49:
- term.c.attr.bg = DefaultBG;
+ term.c.attr.bg = defaultbg;
break;
default:
if(BETWEEN(attr[i], 30, 37)) {
t@@ -2091,7 +2091,7 @@ tresize(int col, int row) {
memset(bp, 0, sizeof(*term.tabs) * (col - term.col));
while(--bp > term.tabs && !*bp)
/* nothing */ ;
- for(bp += TAB; bp < term.tabs + col; bp += TAB)
+ for(bp += tabspaces; bp < term.tabs + col; bp += tabspaces)
*bp = 1;
}
/* update terminal size */
t@@ -2107,8 +2107,8 @@ tresize(int col, int row) {
void
xresize(int col, int row) {
- xw.tw = MAX(1, 2*BORDER + col * xw.cw);
- xw.th = MAX(1, 2*BORDER + row * xw.ch);
+ xw.tw = MAX(1, 2*borderpx + col * xw.cw);
+ xw.th = MAX(1, 2*borderpx + row * xw.ch);
XftDrawChange(xw.xft_draw, xw.buf);
}
t@@ -2154,9 +2154,9 @@ xloadcols(void) {
void
xtermclear(int col1, int row1, int col2, int row2) {
XftDrawRect(xw.xft_draw,
- &dc.xft_col[IS_SET(MODE_REVERSE) ? DefaultFG : Default…
- BORDER + col1 * xw.cw,
- BORDER + row1 * xw.ch,
+ &dc.xft_col[IS_SET(MODE_REVERSE) ? defaultfg : default…
+ borderpx + col1 * xw.cw,
+ borderpx + row1 * xw.ch,
(col2-col1+1) * xw.cw,
(row2-row1+1) * xw.ch);
}
t@@ -2167,13 +2167,13 @@ xtermclear(int col1, int row1, int col2, int row2) {
void
xclear(int x1, int y1, int x2, int y2) {
XftDrawRect(xw.xft_draw,
- &dc.xft_col[IS_SET(MODE_REVERSE) ? DefaultFG : Default…
+ &dc.xft_col[IS_SET(MODE_REVERSE) ? defaultfg : default…
x1, y1, x2-x1, y2-y1);
}
void
xhints(void) {
- XClassHint class = {opt_class ? opt_class : TNAME, TNAME};
+ XClassHint class = {opt_class ? opt_class : termname, termname};
XWMHints wm = {.flags = InputHint, .input = 1};
XSizeHints *sizeh = NULL;
t@@ -2184,8 +2184,8 @@ xhints(void) {
sizeh->width = xw.w;
sizeh->height_inc = xw.ch;
sizeh->width_inc = xw.cw;
- sizeh->base_height = 2*BORDER;
- sizeh->base_width = 2*BORDER;
+ sizeh->base_height = 2*borderpx;
+ sizeh->base_width = 2*borderpx;
} else {
sizeh->flags = PMaxSize | PMinSize;
sizeh->min_width = sizeh->max_width = xw.fw;
t@@ -2293,7 +2293,7 @@ xinit(void) {
xw.vis = XDefaultVisual(xw.dpy, xw.scr);
/* font */
- usedfont = (opt_font == NULL)? FONT : opt_font;
+ usedfont = (opt_font == NULL)? font : opt_font;
xloadfonts(usedfont, 0);
/* colors */
t@@ -2313,14 +2313,14 @@ xinit(void) {
xw.w = xw.fw;
} else {
/* window - default size */
- xw.h = 2*BORDER + term.row * xw.ch;
- xw.w = 2*BORDER + term.col * xw.cw;
+ xw.h = 2*borderpx + term.row * xw.ch;
+ xw.w = 2*borderpx + term.col * xw.cw;
xw.fx = 0;
xw.fy = 0;
}
- attrs.background_pixel = dc.xft_col[DefaultBG].pixel;
- attrs.border_pixel = dc.xft_col[DefaultBG].pixel;
+ attrs.background_pixel = dc.xft_col[defaultbg].pixel;
+ attrs.border_pixel = dc.xft_col[defaultbg].pixel;
attrs.bit_gravity = NorthWestGravity;
attrs.event_mask = FocusChangeMask | KeyPressMask
| ExposureMask | VisibilityChangeMask | StructureNotifyMask
t@@ -2370,7 +2370,7 @@ xinit(void) {
void
xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) {
- int winx = BORDER + x * xw.cw, winy = BORDER + y * xw.ch,
+ int winx = borderpx + x * xw.cw, winy = borderpx + y * xw.ch,
width = charlen * xw.cw;
Font *font = &dc.font;
XGlyphInfo extents;
t@@ -2407,8 +2407,8 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, i…
font = &dc.ibfont;
if(IS_SET(MODE_REVERSE)) {
- if(fg == &dc.xft_col[DefaultFG]) {
- fg = &dc.xft_col[DefaultBG];
+ if(fg == &dc.xft_col[defaultfg]) {
+ fg = &dc.xft_col[defaultbg];
} else {
colfg.red = ~fg->color.red;
colfg.green = ~fg->color.green;
t@@ -2418,8 +2418,8 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, i…
fg = &revfg;
}
- if(bg == &dc.xft_col[DefaultBG]) {
- bg = &dc.xft_col[DefaultFG];
+ if(bg == &dc.xft_col[defaultbg]) {
+ bg = &dc.xft_col[defaultfg];
} else {
colbg.red = ~bg->color.red;
colbg.green = ~bg->color.green;
t@@ -2436,7 +2436,7 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, i…
/* Intelligent cleaning up of the borders. */
if(x == 0) {
- xclear(0, (y == 0)? 0 : winy, BORDER,
+ xclear(0, (y == 0)? 0 : winy, borderpx,
winy + xw.ch + (y == term.row-1)? xw.h : 0);
}
if(x + charlen >= term.col-1) {
t@@ -2444,7 +2444,7 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, i…
(y == term.row-1)? xw.h : (winy + xw.ch));
}
if(y == 0)
- xclear(winx, 0, winx + width, BORDER);
+ xclear(winx, 0, winx + width, borderpx);
if(y == term.row-1)
xclear(winx, winy + xw.ch, winx + width, xw.h);
t@@ -2462,7 +2462,7 @@ void
xdrawcursor(void) {
static int oldx = 0, oldy = 0;
int sl;
- Glyph g = {{' '}, ATTR_NULL, DefaultBG, DefaultCS, 0};
+ Glyph g = {{' '}, ATTR_NULL, defaultbg, defaultcs, 0};
LIMIT(oldx, 0, term.col-1);
LIMIT(oldy, 0, term.row-1);
t@@ -2482,10 +2482,10 @@ xdrawcursor(void) {
/* draw the new one */
if(!(term.c.state & CURSOR_HIDE)) {
if(!(xw.state & WIN_FOCUSED))
- g.bg = DefaultUCS;
+ g.bg = defaultucs;
if(IS_SET(MODE_REVERSE))
- g.mode |= ATTR_REVERSE, g.fg = DefaultCS, g.bg = Defau…
+ g.mode |= ATTR_REVERSE, g.fg = defaultcs, g.bg = defau…
sl = utf8size(g.c);
xdraws(g.c, g, term.c.x, term.c.y, 1, sl);
t@@ -2720,8 +2720,8 @@ cresize(int width, int height)
if(height != 0)
xw.h = height;
- col = (xw.w - 2*BORDER) / xw.cw;
- row = (xw.h - 2*BORDER) / xw.ch;
+ col = (xw.w - 2*borderpx) / xw.cw;
+ row = (xw.h - 2*borderpx) / xw.ch;
if(col == term.col && row == term.row)
return;
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.