1
1
/* See LICENSE file for copyright and license details. */
2
2
3
- /* appearance */
3
+ /*
4
+ * appearance
5
+ *
6
+ * font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html
7
+ */
4
8
static char font [] = "Ubuntu Mono:pixelsize=15" ;
5
9
static int borderpx = 2 ;
6
- static char shell [] = "/bin/zsh " ;
10
+ static char shell [] = "/bin/sh " ;
7
11
8
12
/* double-click timeout (in milliseconds) between clicks for selection */
9
13
static unsigned int doubleclicktimeout = 300 ;
@@ -64,6 +68,7 @@ static Shortcut shortcuts[] = {
64
68
{ MODKEY |ShiftMask , XK_Prior , xzoom , {.i = +1 } },
65
69
{ MODKEY |ShiftMask , XK_Next , xzoom , {.i = -1 } },
66
70
{ ShiftMask , XK_Insert , selpaste , {.i = 0 } },
71
+ { MODKEY , XK_Num_Lock , numlock , {.i = 0 } },
67
72
};
68
73
69
74
/*
@@ -75,6 +80,7 @@ static Shortcut shortcuts[] = {
75
80
* keypad value:
76
81
* * 0: no value
77
82
* * > 0: keypad application mode enabled
83
+ * * = 2: term.numlock = 1
78
84
* * < 0: keypad application mode disabled
79
85
* cursor value:
80
86
* * 0: no value
@@ -100,7 +106,8 @@ static KeySym mappedkeys[] = { -1 };
100
106
static Key key [] = {
101
107
/* keysym mask string keypad cursor crlf */
102
108
{ XK_KP_Home , ShiftMask , "\033[1;2H" , 0 , 0 , 0 },
103
- { XK_KP_Home , XK_ANY_MOD , "\033[H" , 0 , 0 , 0 },
109
+ { XK_KP_Home , XK_ANY_MOD , "\033[H" , 0 , -1 , 0 },
110
+ { XK_KP_Home , XK_ANY_MOD , "\033[1~" , 0 , +1 , 0 },
104
111
{ XK_KP_Up , XK_ANY_MOD , "\033Ox" , +1 , 0 , 0 },
105
112
{ XK_KP_Up , XK_ANY_MOD , "\033[A" , 0 , -1 , 0 },
106
113
{ XK_KP_Up , XK_ANY_MOD , "\033OA" , 0 , +1 , 0 },
@@ -116,33 +123,44 @@ static Key key[] = {
116
123
{ XK_KP_Prior , ShiftMask , "\033[5;2~" , 0 , 0 , 0 },
117
124
{ XK_KP_Prior , XK_ANY_MOD , "\033[5~" , 0 , 0 , 0 },
118
125
{ XK_KP_Begin , XK_ANY_MOD , "\033[E" , 0 , 0 , 0 },
119
- { XK_KP_End , ShiftMask , "\033[1;2F" , 0 , 0 , 0 },
126
+ { XK_KP_End , ControlMask , "\033[J" , -1 , 0 , 0 },
127
+ { XK_KP_End , ControlMask , "\033[1;5F" , +1 , 0 , 0 },
128
+ { XK_KP_End , ShiftMask , "\033[K" , -1 , 0 , 0 },
129
+ { XK_KP_End , ShiftMask , "\033[1;2F" , +1 , 0 , 0 },
120
130
{ XK_KP_End , XK_ANY_MOD , "\033[4~" , 0 , 0 , 0 },
121
131
{ XK_KP_Next , ShiftMask , "\033[6;2~" , 0 , 0 , 0 },
122
132
{ XK_KP_Next , XK_ANY_MOD , "\033[6~" , 0 , 0 , 0 },
123
- { XK_KP_Insert , ShiftMask , "\033[2;2~" , 0 , 0 , 0 },
124
- { XK_KP_Insert , XK_ANY_MOD , "\033[2~" , 0 , 0 , 0 },
125
- { XK_KP_Delete , ShiftMask , "\033[3;2~" , 0 , 0 , 0 },
126
- { XK_KP_Delete , XK_ANY_MOD , "\033[3~" , 0 , 0 , 0 },
127
- { XK_KP_Multiply , XK_ANY_MOD , "\033Oj" , +1 , 0 , 0 },
128
- { XK_KP_Add , XK_ANY_MOD , "\033Ok" , +1 , 0 , 0 },
129
- { XK_KP_Enter , XK_ANY_MOD , "\033OM" , +1 , 0 , 0 },
133
+ { XK_KP_Insert , ShiftMask , "\033[2;2~" , +1 , 0 , 0 },
134
+ { XK_KP_Insert , ShiftMask , "\033[4l" , -1 , 0 , 0 },
135
+ { XK_KP_Insert , ControlMask , "\033[L" , -1 , 0 , 0 },
136
+ { XK_KP_Insert , ControlMask , "\033[2;5~" , +1 , 0 , 0 },
137
+ { XK_KP_Insert , XK_ANY_MOD , "\033[4h" , -1 , 0 , 0 },
138
+ { XK_KP_Insert , XK_ANY_MOD , "\033[2~" , +1 , 0 , 0 },
139
+ { XK_KP_Delete , ControlMask , "\033[2J" , -1 , 0 , 0 },
140
+ { XK_KP_Delete , ControlMask , "\033[3;5~" , +1 , 0 , 0 },
141
+ { XK_KP_Delete , ShiftMask , "\033[2K" , +1 , 0 , 0 },
142
+ { XK_KP_Delete , ShiftMask , "\033[3;2~" , -1 , 0 , 0 },
143
+ { XK_KP_Delete , XK_ANY_MOD , "\033[P" , -1 , 0 , 0 },
144
+ { XK_KP_Delete , XK_ANY_MOD , "\033[3~" , +1 , 0 , 0 },
145
+ { XK_KP_Multiply , XK_ANY_MOD , "\033Oj" , +2 , 0 , 0 },
146
+ { XK_KP_Add , XK_ANY_MOD , "\033Ok" , +2 , 0 , 0 },
147
+ { XK_KP_Enter , XK_ANY_MOD , "\033OM" , +2 , 0 , 0 },
130
148
{ XK_KP_Enter , XK_ANY_MOD , "\r" , -1 , 0 , -1 },
131
149
{ XK_KP_Enter , XK_ANY_MOD , "\r\n" , -1 , 0 , +1 },
132
- { XK_KP_Subtract , XK_ANY_MOD , "\033Om" , +1 , 0 , 0 },
133
- { XK_KP_Decimal , XK_ANY_MOD , "\033On" , +1 , 0 , 0 },
134
- { XK_KP_Divide , XK_ANY_MOD , "\033Oo" , +1 , 0 , 0 },
135
- { XK_KP_0 , XK_ANY_MOD , "\033Op" , +1 , 0 , 0 },
136
- { XK_KP_1 , XK_ANY_MOD , "\033Oq" , +1 , 0 , 0 },
137
- { XK_KP_2 , XK_ANY_MOD , "\033Or" , +1 , 0 , 0 },
138
- { XK_KP_3 , XK_ANY_MOD , "\033Os" , +1 , 0 , 0 },
139
- { XK_KP_4 , XK_ANY_MOD , "\033Ot" , +1 , 0 , 0 },
140
- { XK_KP_5 , XK_ANY_MOD , "\033Ou" , +1 , 0 , 0 },
141
- { XK_KP_6 , XK_ANY_MOD , "\033Ov" , +1 , 0 , 0 },
142
- { XK_KP_7 , XK_ANY_MOD , "\033Ow" , +1 , 0 , 0 },
143
- { XK_KP_8 , XK_ANY_MOD , "\033Ox" , +1 , 0 , 0 },
144
- { XK_KP_9 , XK_ANY_MOD , "\033Oy" , +1 , 0 , 0 },
145
- { XK_BackSpace , XK_ANY_MOD , "\177" , 0 , 0 , 0 },
150
+ { XK_KP_Subtract , XK_ANY_MOD , "\033Om" , +2 , 0 , 0 },
151
+ { XK_KP_Decimal , XK_ANY_MOD , "\033On" , +2 , 0 , 0 },
152
+ { XK_KP_Divide , XK_ANY_MOD , "\033Oo" , +2 , 0 , 0 },
153
+ { XK_KP_0 , XK_ANY_MOD , "\033Op" , +2 , 0 , 0 },
154
+ { XK_KP_1 , XK_ANY_MOD , "\033Oq" , +2 , 0 , 0 },
155
+ { XK_KP_2 , XK_ANY_MOD , "\033Or" , +2 , 0 , 0 },
156
+ { XK_KP_3 , XK_ANY_MOD , "\033Os" , +2 , 0 , 0 },
157
+ { XK_KP_4 , XK_ANY_MOD , "\033Ot" , +2 , 0 , 0 },
158
+ { XK_KP_5 , XK_ANY_MOD , "\033Ou" , +2 , 0 , 0 },
159
+ { XK_KP_6 , XK_ANY_MOD , "\033Ov" , +2 , 0 , 0 },
160
+ { XK_KP_7 , XK_ANY_MOD , "\033Ow" , +2 , 0 , 0 },
161
+ { XK_KP_8 , XK_ANY_MOD , "\033Ox" , +2 , 0 , 0 },
162
+ { XK_KP_9 , XK_ANY_MOD , "\033Oy" , +2 , 0 , 0 },
163
+ { XK_BackSpace , XK_NO_MOD , "\177" , 0 , 0 , 0 },
146
164
{ XK_Up , ShiftMask , "\033[1;2A" , 0 , 0 , 0 },
147
165
{ XK_Up , ControlMask , "\033[1;5A" , 0 , 0 , 0 },
148
166
{ XK_Up , Mod1Mask , "\033[1;3A" , 0 , 0 , 0 },
@@ -168,13 +186,25 @@ static Key key[] = {
168
186
{ XK_Return , Mod1Mask , "\033\r\n" , 0 , 0 , +1 },
169
187
{ XK_Return , XK_ANY_MOD , "\r" , 0 , 0 , -1 },
170
188
{ XK_Return , XK_ANY_MOD , "\r\n" , 0 , 0 , +1 },
171
- { XK_Insert , ShiftMask , "\033[2;2~" , 0 , 0 , 0 },
172
- { XK_Insert , XK_ANY_MOD , "\033[2~" , 0 , 0 , 0 },
173
- { XK_Delete , ShiftMask , "\033[3;2~" , 0 , 0 , 0 },
174
- { XK_Delete , XK_ANY_MOD , "\033[3~" , 0 , 0 , 0 },
189
+ { XK_Insert , ShiftMask , "\033[4l" , -1 , 0 , 0 },
190
+ { XK_Insert , ShiftMask , "\033[2;2~" , +1 , 0 , 0 },
191
+ { XK_Insert , ControlMask , "\033[L" , -1 , 0 , 0 },
192
+ { XK_Insert , ControlMask , "\033[2;5~" , +1 , 0 , 0 },
193
+ { XK_Insert , XK_ANY_MOD , "\033[4h" , -1 , 0 , 0 },
194
+ { XK_Insert , XK_ANY_MOD , "\033[2~" , +1 , 0 , 0 },
195
+ { XK_Delete , ControlMask , "\033[2J" , -1 , 0 , 0 },
196
+ { XK_Delete , ControlMask , "\033[3;5~" , +1 , 0 , 0 },
197
+ { XK_Delete , ShiftMask , "\033[2K" , +1 , 0 , 0 },
198
+ { XK_Delete , ShiftMask , "\033[3;2~" , -1 , 0 , 0 },
199
+ { XK_Delete , XK_ANY_MOD , "\033[P" , -1 , 0 , 0 },
200
+ { XK_Delete , XK_ANY_MOD , "\033[3~" , +1 , 0 , 0 },
175
201
{ XK_Home , ShiftMask , "\033[1;2H" , 0 , 0 , 0 },
176
- { XK_Home , XK_ANY_MOD , "\033[H" , 0 , 0 , 0 },
177
- { XK_End , ShiftMask , "\033[1;2F" , 0 , 0 , 0 },
202
+ { XK_Home , XK_ANY_MOD , "\033[H" , 0 , -1 , 0 },
203
+ { XK_Home , XK_ANY_MOD , "\033[1~" , 0 , +1 , 0 },
204
+ { XK_End , ControlMask , "\033[J" , -1 , 0 , 0 },
205
+ { XK_End , ControlMask , "\033[1;5F" , +1 , 0 , 0 },
206
+ { XK_End , ShiftMask , "\033[K" , -1 , 0 , 0 },
207
+ { XK_End , ShiftMask , "\033[1;2F" , +1 , 0 , 0 },
178
208
{ XK_End , XK_ANY_MOD , "\033[4~" , 0 , 0 , 0 },
179
209
{ XK_Prior , XK_NO_MOD , "\033[5~" , 0 , 0 , 0 },
180
210
{ XK_Next , ShiftMask , "\033[6;2~" , 0 , 0 , 0 },
0 commit comments