#include "anvil.h"
+#include <unistd.h>
+
+static void quit(Arg* arg)
+{
+ (void)arg;
+ exit(0);
+}
static void set_workspace(Arg* arg)
{
mons_towspace(Focused, arg->i);
}
+static void runcmd(Arg *arg)
+{
+ if (fork() == 0) {
+ if (X.disp)
+ {
+ close(ConnectionNumber(X.disp));
+ }
+ setsid();
+ exit(execvp(arg->cmd[0], arg->cmd));
+ }
+}
+
+static void killwin(Arg *arg)
+{
+ (void)arg;
+ client_close(Focused);
+}
+
#ifdef __APPLE__
#define MODKEY Mod1Mask
#else
#define MODKEY Mod4Mask
#endif
+static char* pickexec[] = { "pickexec", NULL };
+static char* terminal[] = { "xterm", NULL };
+static char* locker[] = { "slock", NULL };
+
static Key keys[] = {
- { MODKEY, XK_1, set_workspace, {.i = 0 } },
- { MODKEY, XK_2, set_workspace, {.i = 1 } },
- { MODKEY, XK_3, set_workspace, {.i = 2 } },
- { MODKEY, XK_4, set_workspace, {.i = 3 } },
- { MODKEY, XK_5, set_workspace, {.i = 4 } },
- { MODKEY, XK_6, set_workspace, {.i = 5 } },
- { MODKEY, XK_7, set_workspace, {.i = 6 } },
- { MODKEY, XK_8, set_workspace, {.i = 7 } },
- { MODKEY, XK_9, set_workspace, {.i = 8 } },
- { MODKEY, XK_0, set_workspace, {.i = 9 } },
- { MODKEY|ShiftMask, XK_1, to_workspace, {.i = 0 } },
- { MODKEY|ShiftMask, XK_2, to_workspace, {.i = 1 } },
- { MODKEY|ShiftMask, XK_3, to_workspace, {.i = 2 } },
- { MODKEY|ShiftMask, XK_4, to_workspace, {.i = 3 } },
- { MODKEY|ShiftMask, XK_5, to_workspace, {.i = 4 } },
- { MODKEY|ShiftMask, XK_6, to_workspace, {.i = 5 } },
- { MODKEY|ShiftMask, XK_7, to_workspace, {.i = 6 } },
- { MODKEY|ShiftMask, XK_8, to_workspace, {.i = 7 } },
- { MODKEY|ShiftMask, XK_9, to_workspace, {.i = 8 } },
- { MODKEY|ShiftMask, XK_0, to_workspace, {.i = 9 } },
+ { MODKEY|ShiftMask, XK_q, quit, { 0 } },
+ { MODKEY, XK_p, runcmd, { .cmd = pickexec } },
+ { MODKEY|ShiftMask, XK_Return, runcmd, { .cmd = terminal } },
+ { MODKEY|ShiftMask, XK_l, runcmd, { .cmd = locker } },
+ { MODKEY|ShiftMask, XK_c, killwin, { 0 } },
+
+ { MODKEY, XK_1, set_workspace, { .i = 0 } },
+ { MODKEY, XK_2, set_workspace, { .i = 1 } },
+ { MODKEY, XK_3, set_workspace, { .i = 2 } },
+ { MODKEY, XK_4, set_workspace, { .i = 3 } },
+ { MODKEY, XK_5, set_workspace, { .i = 4 } },
+ { MODKEY, XK_6, set_workspace, { .i = 5 } },
+ { MODKEY, XK_7, set_workspace, { .i = 6 } },
+ { MODKEY, XK_8, set_workspace, { .i = 7 } },
+ { MODKEY, XK_9, set_workspace, { .i = 8 } },
+ { MODKEY, XK_0, set_workspace, { .i = 9 } },
+
+ { MODKEY|ShiftMask, XK_1, to_workspace, { .i = 0 } },
+ { MODKEY|ShiftMask, XK_2, to_workspace, { .i = 1 } },
+ { MODKEY|ShiftMask, XK_3, to_workspace, { .i = 2 } },
+ { MODKEY|ShiftMask, XK_4, to_workspace, { .i = 3 } },
+ { MODKEY|ShiftMask, XK_5, to_workspace, { .i = 4 } },
+ { MODKEY|ShiftMask, XK_6, to_workspace, { .i = 5 } },
+ { MODKEY|ShiftMask, XK_7, to_workspace, { .i = 6 } },
+ { MODKEY|ShiftMask, XK_8, to_workspace, { .i = 7 } },
+ { MODKEY|ShiftMask, XK_9, to_workspace, { .i = 8 } },
+ { MODKEY|ShiftMask, XK_0, to_workspace, { .i = 9 } },
};
void keys_init(void)