Skip to content

Commit 24f9291

Browse files
committed
added a way to temporily disable hotkeys
1 parent a23c431 commit 24f9291

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ Hotkeys:
1414
ALT + 1..4 -> changes to desktop 1..4
1515
CTRL + 1..4 -> moves active window to desktop 1..4
1616
ALT + CTRL + SHIFT + Q -> exits the program
17+
ALT + CTRL + SHIFT + S -> starts/stops handling of other hotkeys
1718

1819
the nerds can build it with
1920

virgo.c

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ typedef struct {
3131

3232
typedef struct {
3333
int current;
34+
int handle_hotkeys;
3435
Windows desktops[NUM_DESKTOPS];
3536
Trayicon trayicon;
3637
} Virgo;
@@ -224,13 +225,15 @@ static void virgo_init(Virgo *v)
224225
#define MOD_NOREPEAT 0x4000
225226
int i;
226227
v->current = 0;
228+
v->handle_hotkeys = 1;
227229
for(i=0; i<NUM_DESKTOPS; i++) {
228230
v->desktops[i].windows = NULL;
229231
v->desktops[i].count = 0;
230232
register_hotkey(i*2, MOD_ALT|MOD_NOREPEAT, i+1+0x30);
231233
register_hotkey(i*2+1, MOD_CONTROL|MOD_NOREPEAT, i+1+0x30);
232234
}
233235
register_hotkey(i*2, MOD_ALT|MOD_CONTROL|MOD_SHIFT|MOD_NOREPEAT, 'Q');
236+
register_hotkey((i*2)+1, MOD_ALT|MOD_CONTROL|MOD_SHIFT|MOD_NOREPEAT, 'S');
234237
trayicon_init(&v->trayicon);
235238
}
236239

@@ -286,13 +289,17 @@ int main(int argc, char **argv)
286289
if(msg.message != WM_HOTKEY) {
287290
continue;
288291
}
289-
if(msg.wParam == NUM_DESKTOPS*2) {
290-
break;
291-
}
292-
if(msg.wParam%2 == 0) {
293-
virgo_go_to_desk(&v, msg.wParam/2);
294-
} else {
295-
virgo_move_to_desk(&v, (msg.wParam-1)/2);
292+
if(msg.wParam == (NUM_DESKTOPS*2)+1) {
293+
v.handle_hotkeys = !v.handle_hotkeys;
294+
} else if(v.handle_hotkeys) {
295+
if(msg.wParam == NUM_DESKTOPS*2) {
296+
break;
297+
}
298+
if(msg.wParam%2 == 0) {
299+
virgo_go_to_desk(&v, msg.wParam/2);
300+
} else {
301+
virgo_move_to_desk(&v, (msg.wParam-1)/2);
302+
}
296303
}
297304
}
298305
virgo_deinit(&v);

0 commit comments

Comments
 (0)