Skip to content

Add basic sxhkdrc configurability #45

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
319 changes: 189 additions & 130 deletions config.def.h
Original file line number Diff line number Diff line change
Expand Up @@ -219,16 +219,75 @@ ResourcePref resources[] = {

};

/* commands for instantwmctrl */
static Xcommand commands[] = {
/* signum function argument */
{ "overlay", setoverlay, {0}, 0 },
{ "tag", view, { .ui = 2 }, 3 },
{ "animated", toggleanimated, { .ui = 2 }, 1 },
{ "alttab", alttabfree, { .ui = 2 }, 1 },
{ "layout", commandlayout, { .ui = 0 }, 1 },
{ "prefix", commandprefix, { .ui = 1 }, 1 },
{ "alttag", togglealttag, { .ui = 0 }, 1 },
{ "hidetags", toggleshowtags, { .ui = 0 }, 1 },
/* signum function argument */
{ "view", view, { .ui = 2 }, 3 },
{ "viewall", view, { .ui = ~0 }, 0 },
{ "tag", tag, { .ui = 2 }, 3 },
{ "tagall", tagall, { .ui = ~0 }, 0 },
{ "toggletag", toggletag, { .ui = 2 }, 3 },
{ "toggleview", toggleview, { .ui = 2 }, 3 },
{ "followtag", followtag, { .ui = 2 }, 3 },
{ "toggleanimated", toggleanimated, { .ui = 2 }, 1 },
{ "alttabfree", alttabfree, { .ui = 2 }, 1 },
{ "commandlayout", commandlayout, { .ui = 0 }, 1 },
{ "commandprefix", commandprefix, { .ui = 1 }, 1 },
{ "togglealttag", togglealttag, { .ui = 0 }, 1 },
{ "toggleshowtags", toggleshowtags, { .ui = 0 }, 1 },
{ "setoverlay", setoverlay, {0}, 0 },
{ "createoverlay", createoverlay, {0}, 0 },
{ "pushup", pushup, {0}, 0 },
{ "pushdown", pushdown, {0}, 0 },
{ "killclient", killclient, {0}, 0 },
{ "shutkill", shutkill, {0}, 0 },
{ "followview", followview, {0}, 0 },
{ "focuslastclient", focuslastclient, {0}, 0 },
{ "lastview", lastview, {0}, 0 },
{ "zoom", zoom, {0}, 0 },
{ "quit", quit, {0}, 0 },
{ "togglescratchpad", togglescratchpad, {0}, 0 },
{ "createscratchpad", createscratchpad, {0}, 0 },
{ "togglesticky", togglesticky, {0}, 0 },
{ "desktopset", desktopset, {0}, 0 },
{ "togglebar", togglebar, {0}, 0 },
{ "distributeclients", distributeclients, {0}, 0 },
{ "drawwindow", drawwindow, {0}, 0 },
{ "redrawwin", redrawwin, {0}, 0 },
{ "togglefakefullscreen", togglefakefullscreen, {0}, 0},
{ "tempfullscreen", tempfullscreen, {0}, 0 },
{ "toggledoubledraw", toggledoubledraw, {0}, 0 },
{ "warpfocus", warpfocus, {0}, 0 },
{ "centerwindow", centerwindow, {0}, 0 },
{ "movemouse", movemouse, {0}, 0 },
{ "resizemouse", resizemouse, {0}, 0 },
{ "animleft", animleft, {0}, 0 },
{ "animright", animright, {0}, 0 },
{ "moveleft", moveleft, {0}, 0 },
{ "moveright", moveright, {0}, 0 },
{ "tagtoleft", tagtoleft, {0}, 0 },
{ "tagtoright", tagtoright, {0}, 0 },
{ "hidewin", hidewin, {0}, 0 },
{ "unhideall", unhideall, {0}, 0 },
{ "setlayout", setlayout, {0}, 0 },
{ "winview", winview, {0}, 0 },
{ "spacetoggle", spacetoggle, {0}, 0 },
{ "downpress", downpress, {0}, 0 },
{ "uppress", uppress, {0}, 0 },
{ "overtoggle", overtoggle, { .ui = ~0 }, 0 },
{ "fullovertoggle", fullovertoggle, { .ui = ~0 }, 0 },
{ "focusstack", focusstack, { .ui = 0 }, 1 },
{ "incnmaster", incnmaster, { .ui = 0 }, 1 },
{ "keyresize", keyresize, { .ui = 0 }, 1 },
{ "shiftview", shiftview, { .ui = 0 }, 1 },
{ "moveresize", moveresize, { .ui = 0 }, 1 },
{ "cyclelayout", cyclelayout, { .ui = 0 }, 1 },
{ "focusmon", focusmon, { .ui = 0 }, 1 },
{ "tagmon", tagmon, { .ui = 0 }, 1 },
{ "followmon", followmon, { .ui = 0 }, 1 },
{ "downkey", downkey, { .ui = 0 }, 1 },
{ "upkey", upkey, { .ui = 0 }, 1 },
{ "setmfact", setmfact, { .f = 0.0 }, 2 },
};

static Key dkeys[] = {
Expand Down Expand Up @@ -274,126 +333,126 @@ static Key dkeys[] = {
static Key keys[] = {
/* modifier key function argument */

{MODKEY|Mod1Mask, XK_j, keyresize, {.i = 0}},
{MODKEY|Mod1Mask, XK_k, keyresize, {.i = 1}},
{MODKEY|Mod1Mask, XK_l, keyresize, {.i = 2}},
{MODKEY|Mod1Mask, XK_h, keyresize, {.i = 3}},
{MODKEY|ControlMask, XK_d, distributeclients, {0}},
{MODKEY|ShiftMask, XK_d, drawwindow, {0}},
{MODKEY|ShiftMask, XK_Escape, spawn, {.v = systemmonitorcmd}},

{MODKEY, XK_r, spawn, {.v = rangercmd } },
{MODKEY|ControlMask|Mod1Mask, XK_r, redrawwin, {0} },
{MODKEY, XK_n, spawn, {.v = nautiluscmd } },
{MODKEY | ControlMask, XK_q, spawn, {.v = instantshutdowncmd } },
{MODKEY, XK_y, spawn, {.v = panther} },
{MODKEY, XK_a, spawn, {.v = instantassistcmd} },
{MODKEY|ShiftMask, XK_a, spawn, {.v = instantrepeatcmd} },
{MODKEY|ControlMask, XK_i, spawn, {.v = instantpacmancmd} },
{MODKEY|ShiftMask, XK_i, spawn, {.v = instantsharecmd} },
{MODKEY, XK_w, setoverlay, {0} },
{MODKEY | ControlMask, XK_w, createoverlay, {0} },
{MODKEY, XK_g, spawn, {.v = notifycmd} },
{MODKEY | ControlMask, XK_space, spawn, {.v = instantmenucmd}},
{MODKEY | ShiftMask, XK_v, spawn, {.v = clipmenucmd}},
{MODKEY, XK_space, spawn, {.v = smartcmd}},
{MODKEY, XK_minus, spawn, {.v = instantmenustcmd}},
{MODKEY, XK_x, spawn, {.v = instantswitchcmd}},
{Mod1Mask, XK_Tab, spawn, {.v = iswitchcmd}},
{MODKEY|Mod1Mask|ControlMask|ShiftMask, XK_Tab, alttabfree, {0}},
//{MODKEY|Mod1Mask, XK_j, keyresize, {.i = 0}},
//{MODKEY|Mod1Mask, XK_k, keyresize, {.i = 1}},
//{MODKEY|Mod1Mask, XK_l, keyresize, {.i = 2}},
//{MODKEY|Mod1Mask, XK_h, keyresize, {.i = 3}},
//{MODKEY|ControlMask, XK_d, distributeclients, {0}},
//{MODKEY|ShiftMask, XK_d, drawwindow, {0}},
//{MODKEY|ShiftMask, XK_Escape, spawn, {.v = systemmonitorcmd}},

//{MODKEY, XK_r, spawn, {.v = rangercmd } },
//{MODKEY|ControlMask|Mod1Mask, XK_r, redrawwin, {0} },
//{MODKEY, XK_n, spawn, {.v = nautiluscmd } },
//{MODKEY | ControlMask, XK_q, spawn, {.v = instantshutdowncmd } },
//{MODKEY, XK_y, spawn, {.v = panther} },
//{MODKEY, XK_a, spawn, {.v = instantassistcmd} },
//{MODKEY|ShiftMask, XK_a, spawn, {.v = instantrepeatcmd} },
//{MODKEY|ControlMask, XK_i, spawn, {.v = instantpacmancmd} },
//{MODKEY|ShiftMask, XK_i, spawn, {.v = instantsharecmd} },
//{MODKEY, XK_w, setoverlay, {0} },
//{MODKEY | ControlMask, XK_w, createoverlay, {0} },
//{MODKEY, XK_g, spawn, {.v = notifycmd} },
//{MODKEY | ControlMask, XK_space, spawn, {.v = instantmenucmd}},
//{MODKEY | ShiftMask, XK_v, spawn, {.v = clipmenucmd}},
//{MODKEY, XK_space, spawn, {.v = smartcmd}},
//{MODKEY, XK_minus, spawn, {.v = instantmenustcmd}},
//{MODKEY, XK_x, spawn, {.v = instantswitchcmd}},
//{Mod1Mask, XK_Tab, spawn, {.v = iswitchcmd}},
//{MODKEY|Mod1Mask|ControlMask|ShiftMask, XK_Tab, alttabfree, {0}},
{MODKEY, XK_dead_circumflex, spawn, {.v = caretinstantswitchcmd}},
{MODKEY | ControlMask, XK_l, spawn, {.v = slockcmd}},
{MODKEY | ControlMask, XK_h, hidewin, {0}},
{MODKEY | Mod1Mask | ControlMask, XK_h, unhideall, {0}},
{MODKEY | Mod1Mask | ControlMask, XK_l, spawn, {.v = langswitchcmd}},
{MODKEY, XK_Return, spawn, {.v = termcmd}},
{MODKEY, XK_v, spawn, {.v = quickmenucmd}},
{MODKEY, XK_b, togglebar, {0}},
{MODKEY, XK_j, focusstack, {.i = +1}},
{MODKEY, XK_Down, downkey, {.i = +1}},
{MODKEY|ShiftMask, XK_Down, downpress, {0}},
{MODKEY, XK_k, focusstack, {.i = -1}},
{MODKEY, XK_Up, upkey, {.i = -1}},
{MODKEY|ShiftMask, XK_Up, uppress, {0}},
{MODKEY|ControlMask, XK_j, pushdown, {0} },
{MODKEY|ControlMask, XK_k, pushup, {0} },
{MODKEY|Mod1Mask, XK_s, togglealttag, { .ui = 2 } },
{MODKEY|ShiftMask|Mod1Mask, XK_s, toggleanimated, { .ui = 2 } },
{MODKEY|ControlMask, XK_s, togglesticky, {0} },
{MODKEY|ShiftMask, XK_s, createscratchpad, {0}},
{MODKEY, XK_s, togglescratchpad, {0}},
{MODKEY|ShiftMask, XK_f, togglefakefullscreen, {0} },
{MODKEY|ControlMask, XK_f, tempfullscreen, {0} },
{MODKEY | ShiftMask | Mod1Mask, XK_d, toggledoubledraw, {0} },
{MODKEY|ShiftMask, XK_w, warpfocus, {0} },
{MODKEY|Mod1Mask, XK_w, centerwindow, {0} },
{MODKEY|ShiftMask|ControlMask, XK_s, toggleshowtags, { .ui = 2 } },
{MODKEY, XK_i, incnmaster, {.i = +1}},
{MODKEY, XK_d, incnmaster, {.i = -1}},
{MODKEY, XK_h, setmfact, {.f = -0.05}},
{MODKEY, XK_l, setmfact, {.f = +0.05}},
{MODKEY | ShiftMask, XK_Return, zoom, {0}},
{MODKEY, XK_Tab, lastview, {0}},
{MODKEY|ShiftMask, XK_Tab, focuslastclient, {0}},
{MODKEY|Mod1Mask, XK_Tab, followview, {0}},
{MODKEY, XK_q, shutkill, {0}},
{Mod1Mask, XK_F4, killclient, {0}},
{MODKEY, XK_F1, spawn, {.v = helpcmd}},
{MODKEY, XK_F2, toggleprefix, {0}},
{MODKEY, XK_t, setlayout, {.v = &layouts[0]}},
{MODKEY, XK_f, setlayout, {.v = &layouts[2]}},
{MODKEY, XK_m, setlayout, {.v = &layouts[3]}},
{MODKEY|ShiftMask, XK_m, movemouse, {0}},
{MODKEY|Mod1Mask, XK_m, resizemouse, {0}},
{MODKEY, XK_c, setlayout, {.v = &layouts[1]}},
{MODKEY|ControlMask, XK_c, spawn, {.v = controlcentercmd}},

{MODKEY, XK_Left, animleft, {0}},
{MODKEY, XK_Right, animright, {0}},

{MODKEY, XK_e, overtoggle, {.ui = ~0}},
{MODKEY|ShiftMask, XK_e, fullovertoggle, {.ui = ~0}},

{MODKEY|ControlMask, XK_Left, shiftview, {.i = -1 }},
{MODKEY|Mod1Mask, XK_Left, moveleft, {0}},
{MODKEY|ControlMask, XK_Right, shiftview, {.i = +1 }},

{MODKEY|Mod1Mask, XK_Right, moveright, {0}},

{MODKEY|ShiftMask, XK_Left, tagtoleft, {0}},
{MODKEY|ShiftMask, XK_Right, tagtoright, {0}},

{MODKEY|ShiftMask, XK_j, moveresize, {.i = 0}},
{MODKEY|ShiftMask, XK_k, moveresize, {.i = 1}},
{MODKEY|ShiftMask, XK_l, moveresize, {.i = 2}},
{MODKEY|ShiftMask, XK_h, moveresize, {.i = 3}},


{MODKEY|ControlMask, XK_comma, cyclelayout, {.i = -1 } },
{MODKEY|ControlMask, XK_period, cyclelayout, {.i = +1 } },
{MODKEY, XK_p, setlayout, {0}},
{MODKEY|ShiftMask, XK_p, spawn, {.v = displaycmd }},
{MODKEY | ShiftMask, XK_space, spacetoggle, {0}},
{MODKEY, XK_0, view, {.ui = ~0}},
{MODKEY | ShiftMask, XK_0, tag, {.ui = ~0}},
{MODKEY, XK_comma, focusmon, {.i = -1}},
{MODKEY, XK_period, focusmon, {.i = +1}},
{MODKEY | ShiftMask, XK_comma, tagmon, {.i = -1}},
{MODKEY | ShiftMask, XK_period, tagmon, {.i = +1}},
{MODKEY | Mod1Mask, XK_comma, followmon, {.i = -1}},
{MODKEY | Mod1Mask, XK_period, followmon, {.i = +1}},

{MODKEY | ShiftMask | ControlMask | Mod1Mask, XK_period, desktopset, {0}},
TAGKEYS(XK_1, 0)
TAGKEYS(XK_2, 1)
TAGKEYS(XK_3, 2)
TAGKEYS(XK_4, 3)
TAGKEYS(XK_5, 4)
TAGKEYS(XK_6, 5)
TAGKEYS(XK_7, 6)
TAGKEYS(XK_8, 7)
TAGKEYS(XK_9, 8){MODKEY | ShiftMask | ControlMask, XK_q, quit, {0}},
{0, XF86XK_MonBrightnessUp, spawn, {.v = upbright}},
//{MODKEY | ControlMask, XK_l, spawn, {.v = slockcmd}},
//{MODKEY | ControlMask, XK_h, hidewin, {0}},
//{MODKEY | Mod1Mask | ControlMask, XK_h, unhideall, {0}},
//{MODKEY | Mod1Mask | ControlMask, XK_l, spawn, {.v = langswitchcmd}},
//{MODKEY, XK_Return, spawn, {.v = termcmd}},
//{MODKEY, XK_v, spawn, {.v = quickmenucmd}},
//{MODKEY, XK_b, togglebar, {0}},
//{MODKEY, XK_j, focusstack, {.i = +1}},
//{MODKEY, XK_Down, downkey, {.i = +1}},
//{MODKEY|ShiftMask, XK_Down, downpress, {0}},
//{MODKEY, XK_k, focusstack, {.i = -1}},
//{MODKEY, XK_Up, upkey, {.i = -1}},
//{MODKEY|ShiftMask, XK_Up, uppress, {0}},
//{MODKEY|ControlMask, XK_j, pushdown, {0} },
//{MODKEY|ControlMask, XK_k, pushup, {0} },
//{MODKEY|Mod1Mask, XK_s, togglealttag, { .ui = 2 } },
//{MODKEY|ShiftMask|Mod1Mask, XK_s, toggleanimated, { .ui = 2 } },
//{MODKEY|ControlMask, XK_s, togglesticky, {0} },
//{MODKEY|ShiftMask, XK_s, createscratchpad, {0}},
//{MODKEY, XK_s, togglescratchpad, {0}},
//{MODKEY|ShiftMask, XK_f, togglefakefullscreen, {0} },
//{MODKEY|ControlMask, XK_f, tempfullscreen, {0} },
//{MODKEY | ShiftMask | Mod1Mask, XK_d, toggledoubledraw, {0} },
//{MODKEY|ShiftMask, XK_w, warpfocus, {0} },
//{MODKEY|Mod1Mask, XK_w, centerwindow, {0} },
//{MODKEY|ShiftMask|ControlMask, XK_s, toggleshowtags, { .ui = 2 } },
//{MODKEY, XK_i, incnmaster, {.i = +1}},
//{MODKEY, XK_d, incnmaster, {.i = -1}},
//{MODKEY, XK_h, setmfact, {.f = -0.05}},
//{MODKEY, XK_l, setmfact, {.f = +0.05}},
//{MODKEY | ShiftMask, XK_Return, zoom, {0}},
//{MODKEY, XK_Tab, lastview, {0}},
//{MODKEY|ShiftMask, XK_Tab, focuslastclient, {0}},
//{MODKEY|Mod1Mask, XK_Tab, followview, {0}},
//{MODKEY, XK_q, shutkill, {0}},
//{Mod1Mask, XK_F4, killclient, {0}},
//{MODKEY, XK_F1, spawn, {.v = helpcmd}},
//{MODKEY, XK_F2, toggleprefix, {0}},
//{MODKEY, XK_t, setlayout, {.v = &layouts[0]}},
//{MODKEY, XK_f, setlayout, {.v = &layouts[2]}},
//{MODKEY, XK_m, setlayout, {.v = &layouts[3]}},
//{MODKEY|ShiftMask, XK_m, movemouse, {0}},
//{MODKEY|Mod1Mask, XK_m, resizemouse, {0}},
//{MODKEY, XK_c, setlayout, {.v = &layouts[1]}},
//{MODKEY|ControlMask, XK_c, spawn, {.v = controlcentercmd}},

//{MODKEY, XK_Left, animleft, {0}},
//{MODKEY, XK_Right, animright, {0}},

//{MODKEY, XK_e, overtoggle, {.ui = ~0}},
//{MODKEY|ShiftMask, XK_e, fullovertoggle, {.ui = ~0}},

//{MODKEY|ControlMask, XK_Left, shiftview, {.i = -1 }},
//{MODKEY|Mod1Mask, XK_Left, moveleft, {0}},
//{MODKEY|ControlMask, XK_Right, shiftview, {.i = +1 }},

//{MODKEY|Mod1Mask, XK_Right, moveright, {0}},

//{MODKEY|ShiftMask, XK_Left, tagtoleft, {0}},
//{MODKEY|ShiftMask, XK_Right, tagtoright, {0}},

//{MODKEY|ShiftMask, XK_j, moveresize, {.i = 0}},
//{MODKEY|ShiftMask, XK_k, moveresize, {.i = 1}},
//{MODKEY|ShiftMask, XK_l, moveresize, {.i = 2}},
//{MODKEY|ShiftMask, XK_h, moveresize, {.i = 3}},


//{MODKEY|ControlMask, XK_comma, cyclelayout, {.i = -1 } },
//{MODKEY|ControlMask, XK_period, cyclelayout, {.i = +1 } },
//{MODKEY, XK_p, setlayout, {0}},
//{MODKEY|ShiftMask, XK_p, spawn, {.v = displaycmd }},
//{MODKEY | ShiftMask, XK_space, spacetoggle, {0}},
//{MODKEY, XK_0, view, {.ui = ~0}},
//{MODKEY | ShiftMask, XK_0, tag, {.ui = ~0}},
//{MODKEY, XK_comma, focusmon, {.i = -1}},
//{MODKEY, XK_period, focusmon, {.i = +1}},
//{MODKEY | ShiftMask, XK_comma, tagmon, {.i = -1}},
//{MODKEY | ShiftMask, XK_period, tagmon, {.i = +1}},
//{MODKEY | Mod1Mask, XK_comma, followmon, {.i = -1}},
//{MODKEY | Mod1Mask, XK_period, followmon, {.i = +1}},

//{MODKEY | ShiftMask | ControlMask | Mod1Mask, XK_period, desktopset, {0}},
//TAGKEYS(XK_1, 0)
//TAGKEYS(XK_2, 1)
//TAGKEYS(XK_3, 2)
//TAGKEYS(XK_4, 3)
//TAGKEYS(XK_5, 4)
//TAGKEYS(XK_6, 5)
//TAGKEYS(XK_7, 6)
//TAGKEYS(XK_8, 7)
//TAGKEYS(XK_9, 8){MODKEY | ShiftMask | ControlMask, XK_q, quit, {0}},
/*{0, XF86XK_MonBrightnessUp, spawn, {.v = upbright}},
{0, XF86XK_MonBrightnessDown, spawn, {.v = downbright}},
{0, XF86XK_AudioLowerVolume, spawn, {.v = downvol}},
{0, XF86XK_AudioMute, spawn, {.v = mutevol}},
Expand All @@ -406,9 +465,9 @@ static Key keys[] = {
{MODKEY|ShiftMask, XK_Print, spawn, {.v = fscrotcmd}},
{MODKEY, XK_Print, spawn, {.v = scrotcmd}},
{MODKEY|ControlMask, XK_Print, spawn, {.v = clipscrotcmd}},
{MODKEY|Mod1Mask, XK_Print, spawn, {.v = fclipscrotcmd}},
{MODKEY|Mod1Mask, XK_Print, spawn, {.v = fclipscrotcmd}},*/

{ MODKEY, XK_o, winview, {0} },
//{ MODKEY, XK_o, winview, {0} },

};

Expand Down
9 changes: 9 additions & 0 deletions instantwm.c
Original file line number Diff line number Diff line change
Expand Up @@ -1983,6 +1983,7 @@ xcommand(void)
char *indicator="c;:;";
char str_signum[16];
int i, v, signum, argnum;
float argfloat;
size_t len_command;
Arg arg;

Expand Down Expand Up @@ -2024,6 +2025,14 @@ xcommand(void)
arg = commands[i].arg;
}
break;
case 2:
argfloat = atof(fcursor);
if (argfloat != 0.0) {
arg = ((Arg) { .f = argfloat });
} else {
arg = commands[i].arg;
}
break;
case 3:
argnum = atoi(fcursor);
if (argnum != 0 && fcursor[0] != '0') {
Expand Down
Loading