Xinqi Bao's Git
3d406d460f73f8087d3971dbf03e25c8f910e8e0
1 /* See LICENSE file for copyright and license details. */
4 static char font
[] = "Liberation Mono:pixelsize=12:antialias=false:autohint=false";
5 static int borderpx
= 2;
6 static char shell
[] = "/bin/sh";
8 /* double-click timeout (in milliseconds) between clicks for selection */
9 static unsigned int doubleclicktimeout
= 300;
10 static unsigned int tripleclicktimeout
= 600;
13 static char termname
[] = "st-256color";
15 static unsigned int tabspaces
= 8;
18 /* Terminal colors (16 first used in escape sequence) */
19 static const char *colorname
[] = {
42 /* more colors can be added after 255 to use with DefaultXX */
49 * Default colors (colorname index)
50 * foreground, background, cursor, unfocused cursor
52 static unsigned int defaultfg
= 7;
53 static unsigned int defaultbg
= 0;
54 static unsigned int defaultcs
= 256;
55 static unsigned int defaultucs
= 257;
58 * Special keys (change & recompile st.info accordingly)
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)
65 * * > 0: keypad application mode enabled
66 * * < 0: keypad application mode disabled
69 * * > 0: cursor application mode enabled
70 * * < 0: cursor application mode disabled
73 * * > 0: crlf mode is enabled
74 * * < 0: crlf mode is disabled
77 /* key, mask, output, keypad, cursor, crlf */
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},
125 /* Internal shortcuts. */
126 #define MODKEY Mod1Mask
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} },