saner key defaults
This commit is contained in:
40
config.h
40
config.h
@@ -48,14 +48,16 @@
|
||||
binding keys[] = {
|
||||
|
||||
// Focus the top-most window in a spot.
|
||||
{ .mod = Mod4Mask, .key = XK_1, .act = ACTION_FOCUS, .num = SPOT1 },
|
||||
{ .mod = Mod4Mask, .key = XK_2, .act = ACTION_FOCUS, .num = SPOT2 },
|
||||
{ .mod = Mod4Mask, .key = XK_3, .act = ACTION_FOCUS, .num = SPOT3 },
|
||||
{ .mod = Mod4Mask, .key = XK_Left, .act = ACTION_FOCUS, .num = SPOT1 },
|
||||
{ .mod = Mod4Mask, .key = XK_Up, .act = ACTION_FOCUS, .num = SPOT2 },
|
||||
{ .mod = Mod4Mask, .key = XK_Right, .act = ACTION_FOCUS, .num = SPOT2 },
|
||||
{ .mod = Mod4Mask, .key = XK_Down, .act = ACTION_FOCUS, .num = SPOT3 },
|
||||
|
||||
// Move the current window to another spot.
|
||||
{ .mod = ShiftMask|Mod4Mask, .key = XK_1, .act = ACTION_MOVE, .num = SPOT1 },
|
||||
{ .mod = ShiftMask|Mod4Mask, .key = XK_2, .act = ACTION_MOVE, .num = SPOT2 },
|
||||
{ .mod = ShiftMask|Mod4Mask, .key = XK_3, .act = ACTION_MOVE, .num = SPOT3 },
|
||||
{ .mod = ShiftMask|Mod4Mask, .key = XK_Left, .act = ACTION_MOVE, .num = SPOT1 },
|
||||
{ .mod = ShiftMask|Mod4Mask, .key = XK_Up, .act = ACTION_MOVE, .num = SPOT2 },
|
||||
{ .mod = ShiftMask|Mod4Mask, .key = XK_Right, .act = ACTION_MOVE, .num = SPOT2 },
|
||||
{ .mod = ShiftMask|Mod4Mask, .key = XK_Down, .act = ACTION_MOVE, .num = SPOT3 },
|
||||
|
||||
// Flip between the top two windows in the current spot.
|
||||
{ .mod = Mod4Mask, .key = XK_Tab, .act = ACTION_OTHER },
|
||||
@@ -73,28 +75,28 @@ binding keys[] = {
|
||||
{ .mod = Mod4Mask, .key = XK_a, .act = ACTION_ABOVE_TOGGLE },
|
||||
|
||||
// Switch focus between monitors.
|
||||
{ .mod = Mod4Mask, .key = XK_Right, .act = ACTION_FOCUS_MONITOR, .num = 1 },
|
||||
{ .mod = Mod4Mask, .key = XK_Left, .act = ACTION_FOCUS_MONITOR, .num = -1 },
|
||||
{ .mod = Mod4Mask, .key = XK_Next, .act = ACTION_FOCUS_MONITOR, .num = 1 },
|
||||
{ .mod = Mod4Mask, .key = XK_Prior, .act = ACTION_FOCUS_MONITOR, .num = -1 },
|
||||
|
||||
// Move windows between monitors.
|
||||
{ .mod = ShiftMask|Mod4Mask, .key = XK_Right, .act = ACTION_MOVE_MONITOR, .num = 1 },
|
||||
{ .mod = ShiftMask|Mod4Mask, .key = XK_Left, .act = ACTION_MOVE_MONITOR, .num = -1 },
|
||||
{ .mod = ShiftMask|Mod4Mask, .key = XK_Next, .act = ACTION_MOVE_MONITOR, .num = 1 },
|
||||
{ .mod = ShiftMask|Mod4Mask, .key = XK_Prior, .act = ACTION_MOVE_MONITOR, .num = -1 },
|
||||
|
||||
// Launcher
|
||||
{ .mod = Mod4Mask, .key = XK_x, .act = ACTION_COMMAND, .data = "dmenu_run" },
|
||||
|
||||
// Raise tag groups
|
||||
{ .mod = Mod4Mask, .key = XK_F1, .act = ACTION_RAISE_TAG, .num = TAG1 },
|
||||
{ .mod = Mod4Mask, .key = XK_F2, .act = ACTION_RAISE_TAG, .num = TAG2 },
|
||||
{ .mod = Mod4Mask, .key = XK_F3, .act = ACTION_RAISE_TAG, .num = TAG3 },
|
||||
{ .mod = Mod4Mask, .key = XK_1, .act = ACTION_RAISE_TAG, .num = TAG1 },
|
||||
{ .mod = Mod4Mask, .key = XK_2, .act = ACTION_RAISE_TAG, .num = TAG2 },
|
||||
{ .mod = Mod4Mask, .key = XK_3, .act = ACTION_RAISE_TAG, .num = TAG3 },
|
||||
|
||||
// Tag/untag the current window
|
||||
{ .mod = ShiftMask|Mod4Mask, .key = XK_F1, .act = ACTION_TAG, .num = TAG1 },
|
||||
{ .mod = ShiftMask|Mod4Mask, .key = XK_F2, .act = ACTION_TAG, .num = TAG2 },
|
||||
{ .mod = ShiftMask|Mod4Mask, .key = XK_F3, .act = ACTION_TAG, .num = TAG3 },
|
||||
{ .mod = ShiftMask|ControlMask|Mod4Mask, .key = XK_F1, .act = ACTION_UNTAG, .num = TAG1 },
|
||||
{ .mod = ShiftMask|ControlMask|Mod4Mask, .key = XK_F2, .act = ACTION_UNTAG, .num = TAG2 },
|
||||
{ .mod = ShiftMask|ControlMask|Mod4Mask, .key = XK_F3, .act = ACTION_UNTAG, .num = TAG3 },
|
||||
{ .mod = ShiftMask|Mod4Mask, .key = XK_1, .act = ACTION_TAG, .num = TAG1 },
|
||||
{ .mod = ShiftMask|Mod4Mask, .key = XK_2, .act = ACTION_TAG, .num = TAG2 },
|
||||
{ .mod = ShiftMask|Mod4Mask, .key = XK_3, .act = ACTION_TAG, .num = TAG3 },
|
||||
{ .mod = ShiftMask|ControlMask|Mod4Mask, .key = XK_1, .act = ACTION_UNTAG, .num = TAG1 },
|
||||
{ .mod = ShiftMask|ControlMask|Mod4Mask, .key = XK_2, .act = ACTION_UNTAG, .num = TAG2 },
|
||||
{ .mod = ShiftMask|ControlMask|Mod4Mask, .key = XK_3, .act = ACTION_UNTAG, .num = TAG3 },
|
||||
|
||||
// Find or start apps by WM_CLASS (lower case match).
|
||||
{ .mod = AnyModifier, .key = XK_F1, .act = ACTION_FIND_OR_START, .data = "urxvt" },
|
||||
|
||||
38
xoat.1
38
xoat.1
@@ -16,32 +16,32 @@ See config.h for customization.
|
||||
.PP
|
||||
These are the default key bindings:
|
||||
.TP
|
||||
.B Mod4-1
|
||||
.B Mod4-Left
|
||||
Focus tile 1.
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B Mod4-2
|
||||
.B Mod4-Right (and Up)
|
||||
Focus tile 2.
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B Mod4-3
|
||||
.B Mod4-Down
|
||||
Focus tile 3.
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B Shift-Mod4-1
|
||||
.B Shift-Mod4-Left
|
||||
Move window to tile 1.
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B Shift-Mod4-2
|
||||
.B Shift-Mod4-Right (and Up)
|
||||
Move window to tile 2.
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B Shift-Mod4-3
|
||||
.B Shift-Mod4-Down
|
||||
Move window to tile 3.
|
||||
.RS
|
||||
.RE
|
||||
@@ -72,22 +72,22 @@ Toggle state above (only placed above fullscreen windows).
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B Mod4-Right
|
||||
.B Mod4-Next (Page Down)
|
||||
Focus next monitor.
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B Mod4-Left
|
||||
.B Mod4-Prior (Page Up)
|
||||
Focus previous monitor.
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B Shift-Mod4-Right
|
||||
.B Shift-Mod4-Next
|
||||
Move window to next monitor.
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B Shift-Mod4-Left
|
||||
.B Shift-Mod4-Prior
|
||||
Move window to previous monitor.
|
||||
.RS
|
||||
.RE
|
||||
@@ -102,47 +102,47 @@ Launch urxvt
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B Mod4-F1
|
||||
.B Mod4-1
|
||||
Raise windows in tag 1.
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B Shift-Mod4-F1
|
||||
.B Shift-Mod4-1
|
||||
Place current window in tag 1.
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B Shift-Control-Mod4-F1
|
||||
.B Shift-Control-Mod4-1
|
||||
Remove current window from tag 1.
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B Mod4-F2
|
||||
.B Mod4-2
|
||||
Raise windows in tag 2.
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B Shift-Mod4-F2
|
||||
.B Shift-Mod4-2
|
||||
Place current window in tag 2.
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B Shift-Control-Mod4-F2
|
||||
.B Shift-Control-Mod4-2
|
||||
Remove current window from tag 2.
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B Mod4-F3
|
||||
.B Mod4-3
|
||||
Raise windows in tag 3.
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B Shift-Mod4-F3
|
||||
.B Shift-Mod4-3
|
||||
Place current window in tag 3.
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B Shift-Control-Mod4-F3
|
||||
.B Shift-Control-Mod4-3
|
||||
Remove current window from tag 3.
|
||||
.RS
|
||||
.RE
|
||||
|
||||
26
xoat.c
26
xoat.c
@@ -992,15 +992,15 @@ int main(int argc, char *argv[])
|
||||
client *c = wins.clients[i];
|
||||
if (!c) continue;
|
||||
|
||||
unsigned long strut[12]; memset(strut, 0, sizeof(strut));
|
||||
if (window_get_cardinal_prop(c->window, atoms[_NET_WM_STRUT_PARTIAL], strut, 12)
|
||||
|| window_get_cardinal_prop(c->window, atoms[_NET_WM_STRUT], strut, 4))
|
||||
wm_strut strut; memset(&strut, 0, sizeof(wm_strut));
|
||||
if (window_get_cardinal_prop(c->window, atoms[_NET_WM_STRUT_PARTIAL], (unsigned long*)&strut, 12)
|
||||
|| window_get_cardinal_prop(c->window, atoms[_NET_WM_STRUT], (unsigned long*)&strut, 4))
|
||||
{
|
||||
struts[LEFT] = MAX(struts[LEFT], strut[LEFT]);
|
||||
struts[RIGHT] = MAX(struts[RIGHT], strut[RIGHT]);
|
||||
struts[TOP] = MAX(struts[TOP], strut[TOP]);
|
||||
struts[BOTTOM] = MAX(struts[BOTTOM], strut[BOTTOM]);
|
||||
warnx("struts %ld %ld %ld %ld 0x%08lx %s", strut[LEFT], strut[LEFT], strut[LEFT], strut[LEFT], (long)c->window, c->class);
|
||||
struts.left = MAX(struts.left, strut.left);
|
||||
struts.right = MAX(struts.right, strut.right);
|
||||
struts.top = MAX(struts.top, strut.top);
|
||||
struts.bottom = MAX(struts.bottom, strut.bottom);
|
||||
warnx("struts %ld %ld %ld %ld 0x%08lx %s", strut.left, strut.left, strut.left, strut.left, (long)c->window, c->class);
|
||||
}
|
||||
client_free(c);
|
||||
}
|
||||
@@ -1014,9 +1014,9 @@ int main(int argc, char *argv[])
|
||||
for (i = 0; i < nmonitors; i++)
|
||||
{
|
||||
monitors[i].x = info[i].x_org;
|
||||
monitors[i].y = info[i].y_org + struts[TOP];
|
||||
monitors[i].y = info[i].y_org + struts.top;
|
||||
monitors[i].w = info[i].width;
|
||||
monitors[i].h = info[i].height - struts[TOP] - struts[BOTTOM];
|
||||
monitors[i].h = info[i].height - struts.top - struts.bottom;
|
||||
warnx("monitor %d %dx%d+%d+%d", i, monitors[i].w, monitors[i].h, monitors[i].x, monitors[i].y);
|
||||
}
|
||||
XFree(info);
|
||||
@@ -1024,11 +1024,11 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
// left struts affect first monitor
|
||||
monitors[0].x += struts[LEFT];
|
||||
monitors[0].w -= struts[LEFT];
|
||||
monitors[0].x += struts.left;
|
||||
monitors[0].w -= struts.left;
|
||||
|
||||
// right struts affect last monitor
|
||||
monitors[nmonitors-1].w -= struts[RIGHT];
|
||||
monitors[nmonitors-1].w -= struts.right;
|
||||
|
||||
// dump atoms for debug
|
||||
for (i = 0; i < ATOMS; i++) warnx("atom 0x%lx %s", (long)atoms[i], atom_names[i]);
|
||||
|
||||
9
xoat.h
9
xoat.h
@@ -94,8 +94,13 @@ stack inplay;
|
||||
|
||||
static int (*xerror)(Display *, XErrorEvent *);
|
||||
|
||||
enum { LEFT, RIGHT, TOP, BOTTOM };
|
||||
int struts[4] = { 0, 0, 0, 0 };
|
||||
typedef struct {
|
||||
long left, right, top, bottom,
|
||||
left_start_y, left_end_y, right_start_y, right_end_y,
|
||||
top_start_x, top_end_x, bottom_start_x, bottom_end_x;
|
||||
} wm_strut;
|
||||
|
||||
wm_strut struts;
|
||||
|
||||
#define ATOM_ENUM(x) x
|
||||
#define ATOM_CHAR(x) #x
|
||||
|
||||
38
xoat.md
38
xoat.md
@@ -20,22 +20,22 @@ See config.h for customization.
|
||||
|
||||
These are the default key bindings:
|
||||
|
||||
Mod4-1
|
||||
Mod4-Left
|
||||
: Focus tile 1.
|
||||
|
||||
Mod4-2
|
||||
Mod4-Right (and Up)
|
||||
: Focus tile 2.
|
||||
|
||||
Mod4-3
|
||||
Mod4-Down
|
||||
: Focus tile 3.
|
||||
|
||||
Shift-Mod4-1
|
||||
Shift-Mod4-Left
|
||||
: Move window to tile 1.
|
||||
|
||||
Shift-Mod4-2
|
||||
Shift-Mod4-Right (and Up)
|
||||
: Move window to tile 2.
|
||||
|
||||
Shift-Mod4-3
|
||||
Shift-Mod4-Down
|
||||
: Move window to tile 3.
|
||||
|
||||
Mod4-Tab
|
||||
@@ -53,16 +53,16 @@ Mod4-f
|
||||
Mod4-a
|
||||
: Toggle state above (only placed above fullscreen windows).
|
||||
|
||||
Mod4-Right
|
||||
Mod4-Next (Page Down)
|
||||
: Focus next monitor.
|
||||
|
||||
Mod4-Left
|
||||
Mod4-Prior (Page Up)
|
||||
: Focus previous monitor.
|
||||
|
||||
Shift-Mod4-Right
|
||||
Shift-Mod4-Next
|
||||
: Move window to next monitor.
|
||||
|
||||
Shift-Mod4-Left
|
||||
Shift-Mod4-Prior
|
||||
: Move window to previous monitor.
|
||||
|
||||
Shift-Mod4-x
|
||||
@@ -71,31 +71,31 @@ Shift-Mod4-x
|
||||
F1
|
||||
: Launch urxvt
|
||||
|
||||
Mod4-F1
|
||||
Mod4-1
|
||||
: Raise windows in tag 1.
|
||||
|
||||
Shift-Mod4-F1
|
||||
Shift-Mod4-1
|
||||
: Place current window in tag 1.
|
||||
|
||||
Shift-Control-Mod4-F1
|
||||
Shift-Control-Mod4-1
|
||||
: Remove current window from tag 1.
|
||||
|
||||
Mod4-F2
|
||||
Mod4-2
|
||||
: Raise windows in tag 2.
|
||||
|
||||
Shift-Mod4-F2
|
||||
Shift-Mod4-2
|
||||
: Place current window in tag 2.
|
||||
|
||||
Shift-Control-Mod4-F2
|
||||
Shift-Control-Mod4-2
|
||||
: Remove current window from tag 2.
|
||||
|
||||
Mod4-F3
|
||||
Mod4-3
|
||||
: Raise windows in tag 3.
|
||||
|
||||
Shift-Mod4-F3
|
||||
Shift-Mod4-3
|
||||
: Place current window in tag 3.
|
||||
|
||||
Shift-Control-Mod4-F3
|
||||
Shift-Control-Mod4-3
|
||||
: Remove current window from tag 3.
|
||||
|
||||
# OPTIONS
|
||||
|
||||
Reference in New Issue
Block a user