summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config.def.h8
-rw-r--r--config.def.h.orig164
-rw-r--r--config.h8
-rw-r--r--dwm.c88
4 files changed, 96 insertions, 172 deletions
diff --git a/config.def.h b/config.def.h
index 1d4c2ee..f43f41d 100644
--- a/config.def.h
+++ b/config.def.h
@@ -134,10 +134,10 @@ static const Key keys[] = {
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },
{ Mod1Mask, XK_Tab, altTabStart, {0} },
- { MODKEY|ControlMask, XK_l, movekeyboard_x, {.i = 20}},
- { MODKEY|ControlMask, XK_h, movekeyboard_x, {.i = -20}},
- { MODKEY|ControlMask, XK_j, movekeyboard_y, {.i = 20}},
- { MODKEY|ControlMask, XK_k, movekeyboard_y, {.i = -20}},
+ { MODKEY|ControlMask, XK_l, movekeyboard_x, {.i = 10}},
+ { MODKEY|ControlMask, XK_h, movekeyboard_x, {.i = -10}},
+ { MODKEY|ControlMask, XK_j, movekeyboard_y, {.i = 10}},
+ { MODKEY|ControlMask, XK_k, movekeyboard_y, {.i = -10}},
TAGKEYS( XK_1, 0)
TAGKEYS( XK_2, 1)
TAGKEYS( XK_3, 2)
diff --git a/config.def.h.orig b/config.def.h.orig
deleted file mode 100644
index 8ffea1e..0000000
--- a/config.def.h.orig
+++ /dev/null
@@ -1,164 +0,0 @@
-/* See LICENSE file for copyright and license details. */
-
-/* alt-tab configuration */
-static const unsigned int tabModKey = 0x40; /* if this key is hold the alt-tab functionality stays acitve. This key must be the same as key that is used to active functin altTabStart `*/
-static const unsigned int tabCycleKey = 0x17; /* if this key is hit the alt-tab program moves one position forward in clients stack. This key must be the same as key that is used to active functin altTabStart */
-static const unsigned int tabPosY = 1; /* tab position on Y axis, 0 = bottom, 1 = center, 2 = top */
-static const unsigned int tabPosX = 1; /* tab position on X axis, 0 = left, 1 = center, 2 = right */
-static const unsigned int maxWTab = 600; /* tab menu width */
-static const unsigned int maxHTab = 200; /* tab menu height */
-
-/* appearance */
-static const unsigned int borderpx = 24; /* border pixel of windows */
-static const unsigned int gappx = 24; /* gap pixel between windows */
-static const unsigned int snap = 32; /* snap pixel */
-static const int showbar = 1; /* 0 means no bar */
-static const int topbar = 1; /* 0 means bottom bar */
-static const char *fonts[] = { "monospace:size=10" };
-static const char dmenufont[] = "monospace:size=10";
-static const char col_gray1[] = "#222222";
-static const char col_gray2[] = "#444444";
-static const char col_gray3[] = "#bbbbbb";
-static const char col_gray4[] = "#eeeeee";
-static const char col_black[] = "#101010";
-static const char col_white[] = "#ffffff";
-static const char col_green[] = "#003300";
-static const char col_olive[] = "#0B1500";
-static const char *colors[][3] = {
- /* fg bg border */
- [SchemeNorm] = { col_gray3, col_gray1, col_gray2 },
- [SchemeSel] = { col_gray4, col_green, col_green },
- [SchemeStatus] = { col_white, col_olive, "#000000" }, // Statusbar right {text,background,not used but cannot be empty}
- [SchemeTagsSel] = { col_white, col_green, "#000000" }, // Tagbar left selected {text,background,not used but cannot be empty}
- [SchemeTagsNorm] = { col_white, col_olive, "#000000" }, // Tagbar left unselected {text,background,not used but cannot be empty}
- [SchemeInfoSel] = { col_white, col_green, "#000000" }, // infobar middle selected {text,background,not used but cannot be empty}
- [SchemeInfoNorm] = { col_white, col_green, "#000000" }, // infobar middle unselected {text,background,not used but cannot be empty}
-};
-
-/* tagging */
-static const char *tags[] = { "1", "2", "3" };
-static const char *defaulttagapps[] = { "librewolf", "via", "dz" };
-
-static const Rule rules[] = {
- /* xprop(1):
- * WM_CLASS(STRING) = instance, class
- * WM_NAME(STRING) = title
- */
- /* class instance title tags mask isfloating monitor */
- { "Gimp", NULL, NULL, 0, 1, -1 },
- { "Librewolf", NULL, NULL, 1 << 8, 0, -1 },
-};
-
-/* layout(s) */
-static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */
-static const int nmaster = 1; /* number of clients in master area */
-static const int resizehints = 1; /* 1 means respect size hints in tiled resizals */
-static const int lockfullscreen = 1; /* 1 will force focus on the fullscreen window */
-
-#include "fibonacci.c"
-static const Layout layouts[] = {
- /* symbol arrange function */
- { "[@]", spiral }, /* first entry is default */
- { "[]=", tile }, /* unused */
- { "><>", NULL }, /* no layout function means floating behavior */
- { "[\\]", dwindle },
- { "[M]", monocle }, /* unused */
-};
-
-/* key definitions */
-#define MODKEY Mod4Mask
-#define TAGKEYS(KEY,TAG) \
- { MODKEY, KEY, view, {.ui = 1 << TAG} }, \
- { MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
- { MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
- { MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },
-
-/* helper for spawning shell commands in the pre dwm-5.0 fashion */
-#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
-
-/* commands */
-static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */
-static const char *termcmd[] = { "tabbed", "-c", "-r", "2", "st", "-w", "''", "-e", "/usr/bin/zsh", NULL };
-static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_black, "-nf", col_white, "-sb", col_green, "-sf", col_white, NULL }; /* unused */
-// static const char *dtranscmd[] = { "dtrans", NULL };
-static const char *launchcmd[] = { "launch", NULL };
-static const char *maimcmd[] = { "maimpick", NULL };
-static const char *mansplaincmd[] = { "mansplain", NULL };
-static const char *notesplaincmd[] = { "notesplain", NULL };
-static const char *slpcmd[] = { "slp", NULL };
-static const char *viacmd[] = { "via", NULL };
-static const char *volumeupcmd[] = { "volume", "up", NULL };
-static const char *volumedowncmd[] = { "volume", "down", NULL };
-static const char *volumemutecmd[] = { "volume", "mute", NULL };
-static const char *brightnessupcmd[] = { "brightness", "up", NULL };
-static const char *brightnessdowncmd[] = { "brightness", "down", NULL };
-// static const char *termcmd[] = { "st", NULL };
-
-static const Key keys[] = {
- /* modifier key function argument */
- { MODKEY, XK_p, spawn, {.v = launchcmd } },
- { MODKEY, XK_Return, spawn, {.v = termcmd } },
- { MODKEY|ShiftMask, XK_s, spawn, {.v = maimcmd } },
- { MODKEY, XK_s, spawn, {.v = slpcmd } },
- { MODKEY, XK_u, spawndefault, {0} },
- { MODKEY, XK_b, togglebar, {0} },
- { MODKEY, XK_j, focusstack, {.i = +1 } },
- { MODKEY, XK_k, focusstack, {.i = -1 } },
- { MODKEY, XK_i, incnmaster, {.i = +1 } },
- { MODKEY, XK_h, setmfact, {.f = -0.05} },
- { MODKEY, XK_d, incnmaster, {.i = -1 } },
- { MODKEY, XK_l, setmfact, {.f = +0.05} },
- { MODKEY|ShiftMask, XK_Return, zoom, {0} },
- { MODKEY, XK_q, view, {0} },
- { MODKEY|ShiftMask, XK_c, killclient, {0} },
- { MODKEY, XK_f, setlayout, {.v = &layouts[0]} },
- // { MODKEY, XK_t, setlayout, {.v = &layouts[1]} },
- { MODKEY, XK_r, setlayout, {.v = &layouts[2]} },
- { MODKEY|ShiftMask, XK_r, setlayout, {.v = &layouts[3]} },
- { MODKEY, XK_m, spawn, {.v = mansplaincmd}},
- { MODKEY, XK_n, spawn, {.v = notesplaincmd}},
- { MODKEY, XK_space, spawn, {.v = viacmd }},
- { MODKEY, XK_Page_Up, spawn, {.v = volumeupcmd} },
- { MODKEY, XK_Page_Down, spawn, {.v = volumedowncmd}},
- { MODKEY, XK_Up, spawn, {.v = volumemutecmd}},
- { MODKEY|ShiftMask, XK_Page_Up, spawn, {.v = brightnessupcmd} },
- { MODKEY|ShiftMask, XK_Page_Down, spawn, {.v = brightnessdowncmd}},
- // { MODKEY, XK_t, spawn, {.v = dtranscmd}},
- // { MODKEY, XK_space, setlayout, {0} },
- { MODKEY|ShiftMask, XK_space, togglefloating, {0} },
- { MODKEY|ShiftMask, XK_f, togglefullscr, {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 } },
- { Mod1Mask, XK_Tab, altTabStart, {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, XK_q, quit, {0}},
-};
-
-/* button definitions */
-/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
-static const Button buttons[] = {
- /* click event mask button function argument */
- { ClkLtSymbol, 0, Button1, setlayout, {0} },
- { ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} },
- { ClkWinTitle, 0, Button2, zoom, {0} },
- { ClkStatusText, 0, Button2, spawn, {.v = termcmd } },
- { ClkClientWin, MODKEY, Button1, movemouse, {0} },
- { ClkClientWin, MODKEY, Button2, togglefloating, {0} },
- { ClkClientWin, MODKEY, Button3, resizemouse, {0} },
- { ClkTagBar, 0, Button1, view, {0} },
- { ClkTagBar, 0, Button3, toggleview, {0} },
- { ClkTagBar, MODKEY, Button1, tag, {0} },
- { ClkTagBar, MODKEY, Button3, toggletag, {0} },
-};
diff --git a/config.h b/config.h
index 1d4c2ee..f43f41d 100644
--- a/config.h
+++ b/config.h
@@ -134,10 +134,10 @@ static const Key keys[] = {
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },
{ Mod1Mask, XK_Tab, altTabStart, {0} },
- { MODKEY|ControlMask, XK_l, movekeyboard_x, {.i = 20}},
- { MODKEY|ControlMask, XK_h, movekeyboard_x, {.i = -20}},
- { MODKEY|ControlMask, XK_j, movekeyboard_y, {.i = 20}},
- { MODKEY|ControlMask, XK_k, movekeyboard_y, {.i = -20}},
+ { MODKEY|ControlMask, XK_l, movekeyboard_x, {.i = 10}},
+ { MODKEY|ControlMask, XK_h, movekeyboard_x, {.i = -10}},
+ { MODKEY|ControlMask, XK_j, movekeyboard_y, {.i = 10}},
+ { MODKEY|ControlMask, XK_k, movekeyboard_y, {.i = -10}},
TAGKEYS( XK_1, 0)
TAGKEYS( XK_2, 1)
TAGKEYS( XK_3, 2)
diff --git a/dwm.c b/dwm.c
index 9599373..36ae974 100644
--- a/dwm.c
+++ b/dwm.c
@@ -192,6 +192,8 @@ static void maprequest(XEvent *e);
static void monocle(Monitor *m);
static void motionnotify(XEvent *e);
static void movemouse(const Arg *arg);
+static void movekeyboard_x(const Arg *arg);
+static void movekeyboard_y(const Arg *arg);
static Client *nexttiled(Client *c);
static void pop(Client *c);
static void propertynotify(XEvent *e);
@@ -1226,6 +1228,92 @@ movemouse(const Arg *arg)
}
}
+void
+movekeyboard_x(const Arg *arg){
+ int ocx, ocy, nx, ny;
+ Client *c;
+ Monitor *m;
+
+ if (!(c = selmon->sel))
+ return;
+
+ if (c->isfullscreen) /* no support moving fullscreen windows by mouse */
+ return;
+
+ restack(selmon);
+
+ ocx = c->x;
+ ocy = c->y;
+
+ nx = ocx + arg->i;
+ ny = ocy;
+
+ // if (abs(selmon->wx - nx) < snap)
+ // nx = selmon->wx;
+ // else if (abs((selmon->wx + selmon->ww) - (nx + WIDTH(c))) < snap)
+ // nx = selmon->wx + selmon->ww - WIDTH(c);
+ //
+ // if (abs(selmon->wy - ny) < snap)
+ // ny = selmon->wy;
+ // else if (abs((selmon->wy + selmon->wh) - (ny + HEIGHT(c))) < snap)
+ // ny = selmon->wy + selmon->wh - HEIGHT(c);
+
+ if (!c->isfloating)
+ togglefloating(NULL);
+
+ if (!selmon->lt[selmon->sellt]->arrange || c->isfloating)
+ resize(c, nx, ny, c->w, c->h, 1);
+
+ if ((m = recttomon(c->x, c->y, c->w, c->h)) != selmon) {
+ sendmon(c, m);
+ selmon = m;
+ focus(NULL);
+ }
+}
+
+void
+movekeyboard_y(const Arg *arg){
+ int ocx, ocy, nx, ny;
+ Client *c;
+ Monitor *m;
+
+ if (!(c = selmon->sel))
+ return;
+
+ if (c->isfullscreen) /* no support moving fullscreen windows by mouse */
+ return;
+
+ restack(selmon);
+
+ ocx = c->x;
+ ocy = c->y;
+
+ nx = ocx;
+ ny = ocy + arg->i;
+
+ // if (abs(selmon->wx - nx) < snap)
+ // nx = selmon->wx;
+ // else if (abs((selmon->wx + selmon->ww) - (nx + WIDTH(c))) < snap)
+ // nx = selmon->wx + selmon->ww - WIDTH(c);
+ //
+ // if (abs(selmon->wy - ny) < snap)
+ // ny = selmon->wy;
+ // else if (abs((selmon->wy + selmon->wh) - (ny + HEIGHT(c))) < snap)
+ // ny = selmon->wy + selmon->wh - HEIGHT(c);
+
+ if (!c->isfloating)
+ togglefloating(NULL);
+
+ if (!selmon->lt[selmon->sellt]->arrange || c->isfloating)
+ resize(c, nx, ny, c->w, c->h, 1);
+
+ if ((m = recttomon(c->x, c->y, c->w, c->h)) != selmon) {
+ sendmon(c, m);
+ selmon = m;
+ focus(NULL);
+ }
+}
+
Client *
nexttiled(Client *c)
{