JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
Add control and meta combinations for arrow keys
[st.git] / config.def.h
1 /* See LICENSE file for copyright and license details. */
2
3 /* appearance */
4 static char font[] = "Liberation Mono:pixelsize=12:antialias=false:autohint=false";
5 static int borderpx = 2;
6 static char shell[] = "/bin/sh";
7
8 /* double-click timeout (in milliseconds) between clicks for selection */
9 static unsigned int doubleclicktimeout = 300;
10 static unsigned int tripleclicktimeout = 600;
11
12 /* TERM value */
13 static char termname[] = "st-256color";
14
15 static unsigned int tabspaces = 8;
16
17
18 /* Terminal colors (16 first used in escape sequence) */
19 static const char *colorname[] = {
20         /* 8 normal colors */
21         "black",
22         "red3",
23         "green3",
24         "yellow3",
25         "blue2",
26         "magenta3",
27         "cyan3",
28         "gray90",
29
30         /* 8 bright colors */
31         "gray50",
32         "red",
33         "green",
34         "yellow",
35         "#5c5cff",
36         "magenta",
37         "cyan",
38         "white",
39
40         [255] = 0,
41
42         /* more colors can be added after 255 to use with DefaultXX */
43         "#cccccc",
44         "#333333",
45 };
46
47
48 /*
49  * Default colors (colorname index)
50  * foreground, background, cursor, unfocused cursor
51  */
52 static unsigned int defaultfg = 7;
53 static unsigned int defaultbg = 0;
54 static unsigned int defaultcs = 256;
55 static unsigned int defaultucs = 257;
56
57 /*
58  * Special keys (change & recompile st.info accordingly)
59  *
60  * Mask value:
61  * * Use XK_ANY_MOD to match the key no matter modifiers state
62  * * Use XK_NO_MOD to match the key alone (no modifiers)
63  * keypad value:
64  * * 0: no value
65  * * > 0: keypad application mode enabled
66  * * < 0: keypad application mode disabled
67  * cursor value:
68  * * 0: no value
69  * * > 0: cursor application mode enabled
70  * * < 0: cursor application mode disabled
71  * crlf value
72  * * 0: no value
73  * * > 0: crlf mode is enabled
74  * * < 0: crlf mode is disabled
75  */
76
77 /* key, mask, output, keypad, cursor, crlf */
78 static Key key[] = {
79         /* keysym             mask         string         keypad cursor crlf */
80         { XK_BackSpace,     XK_NO_MOD,      "\177",          0,    0,    0},
81         { XK_Up,            XK_NO_MOD,      "\033[A",        0,   -1,    0},
82         { XK_Up,            XK_NO_MOD,      "\033OA",        0,   +1,    0},
83         { XK_Up,            ShiftMask,      "\033[1;2A",     0,    0,    0},
84         { XK_Up,            ControlMask,    "\033[1;5A",     0,    0,    0},
85         { XK_Up,            Mod1Mask,       "\033[1;3A",     0,    0,    0},
86         { XK_Down,          XK_NO_MOD,      "\033[B",        0,   -1,    0},
87         { XK_Down,          XK_NO_MOD,      "\033OB",        0,   +1,    0},
88         { XK_Down,          ShiftMask,      "\033[1;2B",     0,    0,    0},
89         { XK_Down,          ControlMask,    "\033[1;5B",     0,    0,    0},
90         { XK_Down,          Mod1Mask,       "\033[1;3B",     0,    0,    0},
91         { XK_Left,          XK_NO_MOD,      "\033[D",        0,   -1,    0},
92         { XK_Left,          XK_NO_MOD,      "\033OD",        0,   +1,    0},
93         { XK_Left,          ShiftMask,      "\033[1;2D",     0,    0,    0},
94         { XK_Left,          ControlMask,    "\033[1;5D",     0,    0,    0},
95         { XK_Left,          Mod1Mask,       "\033[1;3D",     0,    0,    0},
96         { XK_Right,         XK_NO_MOD,      "\033[C",        0,   -1,    0},
97         { XK_Right,         XK_NO_MOD,      "\033OC",        0,   +1,    0},
98         { XK_Right,         ShiftMask,      "\033[1;2C",     0,    0,    0},
99         { XK_Right,         ControlMask,    "\033[1;5C",     0,    0,    0},
100         { XK_Right,         Mod1Mask,       "\033[1;3C",     0,    0,    0},
101         { XK_Return,        XK_NO_MOD,      "\n",            0,    0,   -1},
102         { XK_Return,        XK_NO_MOD,      "\r\n",          0,    0,   +1},
103         { XK_Return,        Mod1Mask,       "\033\n",        0,    0,   -1},
104         { XK_Return,        Mod1Mask,       "\033\r\n",      0,    0,   +1},
105         { XK_Insert,        XK_NO_MOD,      "\033[2~",       0,    0,    0},
106         { XK_Delete,        XK_NO_MOD,      "\033[3~",       0,    0,    0},
107         { XK_Home,          XK_NO_MOD,      "\033[1~",       0,    0,    0},
108         { XK_End,           XK_NO_MOD,      "\033[4~",       0,    0,    0},
109         { XK_Prior,         XK_NO_MOD,      "\033[5~",       0,    0,    0},
110         { XK_Next,          XK_NO_MOD,      "\033[6~",       0,    0,    0},
111         { XK_F1,            XK_NO_MOD,      "\033OP" ,       0,    0,    0},
112         { XK_F2,            XK_NO_MOD,      "\033OQ" ,       0,    0,    0},
113         { XK_F3,            XK_NO_MOD,      "\033OR" ,       0,    0,    0},
114         { XK_F4,            XK_NO_MOD,      "\033OS" ,       0,    0,    0},
115         { XK_F5,            XK_NO_MOD,      "\033[15~",      0,    0,    0},
116         { XK_F6,            XK_NO_MOD,      "\033[17~",      0,    0,    0},
117         { XK_F7,            XK_NO_MOD,      "\033[18~",      0,    0,    0},
118         { XK_F8,            XK_NO_MOD,      "\033[19~",      0,    0,    0},
119         { XK_F9,            XK_NO_MOD,      "\033[20~",      0,    0,    0},
120         { XK_F10,           XK_NO_MOD,      "\033[21~",      0,    0,    0},
121         { XK_F11,           XK_NO_MOD,      "\033[23~",      0,    0,    0},
122         { XK_F12,           XK_NO_MOD,      "\033[24~",      0,    0,    0},
123 };
124
125 /* Internal shortcuts. */
126 #define MODKEY Mod1Mask
127
128 static Shortcut shortcuts[] = {
129         /* modifier             key             function        argument */
130         { MODKEY|ShiftMask,     XK_Prior,       xzoom,          {.i = +1} },
131         { MODKEY|ShiftMask,     XK_Next,        xzoom,          {.i = -1} },
132         { ShiftMask,            XK_Insert,      selpaste,       {.i =  0} },
133 };
134