@@ -26,6 +26,7 @@ using std::signal;
26
26
// ------------------------------------------------- GLOBALS
27
27
28
28
bool DEBUG;
29
+ bool NO_LEFT_RIGHT_ARROWS;
29
30
30
31
// ------------------------------------------------- X11/XTEST ENGINE
31
32
@@ -170,6 +171,8 @@ void handle(KeyCode key, bool isPressed) {
170
171
auto isArrowForward = (key == KEY_DOWN || key == KEY_RIGHT);
171
172
auto isArrowBackward = (key == KEY_UP || key == KEY_LEFT);
172
173
auto isArrow = isArrowBackward || isArrowForward;
174
+ if (NO_LEFT_RIGHT_ARROWS)
175
+ isArrow = key == KEY_DOWN || key == KEY_UP;
173
176
174
177
if (!isPressed && isAlt) {
175
178
if (DEBUG)
@@ -206,15 +209,19 @@ void handle(KeyCode key, bool isPressed) {
206
209
int main (int argc, char *argv[]) {
207
210
// parse args
208
211
if (argc == 0 ) {
209
- cout << " Usage: karrowswitch [-d]" ;
210
- cout << " Runs as a daemon unless -d flag is set" << endl;
212
+ cout << " Usage: karrowswitch [-d] [--no-left-right]" ;
213
+ cout << " Runs as a daemon unless -d flag is set" << endl;
214
+ cout << " --no-left-right ignores left/right arrow keys" << endl;
211
215
return 0 ;
212
216
}
217
+ NO_LEFT_RIGHT_ARROWS = false ;
213
218
DEBUG = false ;
214
219
for (int i = 0 ; i < argc; ++i) {
215
220
string arg = argv[i];
216
221
if (arg == " -d" )
217
222
DEBUG = true ;
223
+ else if (arg == " --no-left-right" )
224
+ NO_LEFT_RIGHT_ARROWS = true ;
218
225
}
219
226
// go !
220
227
if (!DEBUG)
0 commit comments