config.h: reorganize config.h and update documentation; key,c: make all keybinds except alt-tab optional
This commit is contained in:
parent
943b4fd82a
commit
404424f518
2 changed files with 288 additions and 85 deletions
207
config.h
207
config.h
|
@ -1,101 +1,44 @@
|
||||||
#define SHOLDCOL 0xC8C8C8
|
/***********************
|
||||||
#define HOLDCOL 0x444444
|
* RYUDO CONFIGURATION *
|
||||||
|
**********************/
|
||||||
|
|
||||||
|
/***************
|
||||||
|
* LOOK & FEEL *
|
||||||
|
**************/
|
||||||
|
|
||||||
|
/* Border colors */
|
||||||
#define SBORDERCOL 0x17736C
|
#define SBORDERCOL 0x17736C
|
||||||
#define BORDERCOL 0x000000
|
#define BORDERCOL 0x000000
|
||||||
|
|
||||||
|
/* Window sweep border color */
|
||||||
#define GHOSTCOL 0x797979
|
#define GHOSTCOL 0x797979
|
||||||
|
|
||||||
|
/* Hold mode border colors -- if you don't use 9term you don't need to
|
||||||
|
* care what these are
|
||||||
|
*/
|
||||||
|
#define SHOLDCOL 0xC8C8C8
|
||||||
|
#define HOLDCOL 0x444444
|
||||||
|
|
||||||
|
/* Border width in pixels */
|
||||||
#define BORDER 4
|
#define BORDER 4
|
||||||
|
|
||||||
/* Should be even */
|
/* Gap size, in pixels, for pseudo-tiling. Should be even */
|
||||||
#define GAPSZ 4
|
#define GAPSZ 4
|
||||||
|
|
||||||
|
/* Menu border width and color */
|
||||||
#define MENUBORDER 0
|
#define MENUBORDER 0
|
||||||
#define MBORDERCOL 0x000000
|
#define MBORDERCOL 0x000000
|
||||||
|
|
||||||
|
/* Normal menu colors */
|
||||||
#define MENUFGCOL 0x797979
|
#define MENUFGCOL 0x797979
|
||||||
#define MENUBGCOL 0x000000
|
#define MENUBGCOL 0x000000
|
||||||
|
|
||||||
|
/* Selected menu colors */
|
||||||
#define SMENUFGCOL 0x000000
|
#define SMENUFGCOL 0x000000
|
||||||
#define SMENUBGCOL 0x1F9B92
|
#define SMENUBGCOL 0x1F9B92
|
||||||
|
|
||||||
/* This sets the size ratio for windows spawned via keyboard or
|
|
||||||
* center-snapped; CENTERNUM should be >= 2, so use 2/4 instead of 1/2
|
|
||||||
*/
|
|
||||||
#define CENTERNUM 2
|
|
||||||
#define CENTERDEN 3
|
|
||||||
|
|
||||||
/* Centered windows should maximize vertically by default?
|
|
||||||
* This is the behavior of new windows spawned with the launch shortcut
|
|
||||||
* and of centered windows with SHORTCUTMOD + SNAPCENTER_KEY --
|
|
||||||
* use SHORTCUTMOD + SHIFT + SNAPCENTER_KEY to get the other behavior.
|
|
||||||
*/
|
|
||||||
#define CENTERVMAX
|
|
||||||
|
|
||||||
/* Show 'Stick' menuitem? */
|
|
||||||
//#define SHOWSTICK
|
|
||||||
|
|
||||||
/* Notify on virtual desktop switch? */
|
|
||||||
#define VIRTNOTIFY
|
|
||||||
|
|
||||||
/* The summary and message to pass to the notifcation daeomon */
|
|
||||||
#define VIRTHEADER "virtual"
|
|
||||||
#define VIRTMSG "[%s]"
|
|
||||||
|
|
||||||
/* Modifier key and associated modifier bits;
|
|
||||||
* Shift = (1<<0)
|
|
||||||
* Lock = (1<<1)
|
|
||||||
* Control = (1<<2)
|
|
||||||
* Mod1 = (1<<3)
|
|
||||||
* Mod2 = (1<<4)
|
|
||||||
* Mod3 = (1<<5)
|
|
||||||
* Mod4 = (1<<6)
|
|
||||||
* Mod5 = (1<<7)
|
|
||||||
*/
|
|
||||||
#define SHORTCUTMOD Mod4Mask
|
|
||||||
#define MODBITS (1 << 6)
|
|
||||||
|
|
||||||
/* Shortcut keys */
|
|
||||||
|
|
||||||
#define MAX_KEY XK_m
|
|
||||||
#define ICON_KEY XK_i
|
|
||||||
#define UNHIDE_KEY XK_u
|
|
||||||
#define MOVE_KEY XK_v
|
|
||||||
#define RESIZE_KEY XK_r
|
|
||||||
#define DESTROY_KEY XK_d
|
|
||||||
#define STICK_KEY XK_s
|
|
||||||
#define ZOOM_KEY XK_z
|
|
||||||
|
|
||||||
#define STICKYTOFRONT_KEY XK_t
|
|
||||||
#define STICKYTOBACK_KEY XK_b
|
|
||||||
|
|
||||||
#define SNAPLEFT_KEY XK_h
|
|
||||||
#define SNAPRIGHT_KEY XK_l
|
|
||||||
#define SNAPTOP_KEY XK_k
|
|
||||||
#define SNAPBOTTOM_KEY XK_j
|
|
||||||
|
|
||||||
#define SNAPTOPLEFT_KEY XK_q
|
|
||||||
#define SNAPBOTTOMLEFT_KEY XK_w
|
|
||||||
#define SNAPBOTTOMRIGHT_KEY XK_o
|
|
||||||
#define SNAPTOPRIGHT_KEY XK_p
|
|
||||||
|
|
||||||
#define SNAPCENTER_KEY XK_c
|
|
||||||
|
|
||||||
#define NEXTVIRT_KEY XK_Right
|
|
||||||
#define PREVVIRT_KEY XK_Left
|
|
||||||
|
|
||||||
#define LAUNCH_KEY XK_slash
|
|
||||||
|
|
||||||
// clang-format off
|
// clang-format off
|
||||||
|
|
||||||
/* List of window classes to spawn as sticky;
|
|
||||||
* Class values for currently open windows are conveniently shown in the last
|
|
||||||
* column of the 'xshove' command given with no arguments.
|
|
||||||
* Remember the backslash at the end of non-terminating lines!
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define AUTOSTICK {\
|
|
||||||
"XOsview", \
|
|
||||||
"XClock", \
|
|
||||||
0 \
|
|
||||||
}
|
|
||||||
|
|
||||||
/* List of fonts to try, in order, for rendering the menus.
|
/* List of fonts to try, in order, for rendering the menus.
|
||||||
* Remember the backslash at the end of non-terminating lines!
|
* Remember the backslash at the end of non-terminating lines!
|
||||||
*/
|
*/
|
||||||
|
@ -133,3 +76,103 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
|
||||||
|
/************
|
||||||
|
* BEHAVIOR *
|
||||||
|
***********/
|
||||||
|
|
||||||
|
/* This sets the size ratio for windows spawned via keyboard or
|
||||||
|
* center-snapped; CENTERNUM should be >= 2, so use 2/4 instead of 1/2
|
||||||
|
*/
|
||||||
|
#define CENTERNUM 2
|
||||||
|
#define CENTERDEN 3
|
||||||
|
|
||||||
|
/* Centered windows should maximize vertically by default?
|
||||||
|
* This is the behavior of new windows spawned with the launch shortcut
|
||||||
|
* and of centered windows with SHORTCUTMOD + SNAPCENTER_KEY --
|
||||||
|
* use SHORTCUTMOD + SHIFT + SNAPCENTER_KEY to get the other behavior.
|
||||||
|
*/
|
||||||
|
#define CENTERVMAX
|
||||||
|
|
||||||
|
/* Show 'Stick' menuitem? */
|
||||||
|
//#define SHOWSTICK
|
||||||
|
|
||||||
|
/* Notify on virtual desktop switch? */
|
||||||
|
#define VIRTNOTIFY
|
||||||
|
|
||||||
|
/* The summary and message to pass to the notifcation daeomon */
|
||||||
|
#define VIRTHEADER "virtual"
|
||||||
|
#define VIRTMSG "[%s]"
|
||||||
|
|
||||||
|
// clang-format off
|
||||||
|
|
||||||
|
/* List of window classes to spawn as sticky;
|
||||||
|
* Class values for currently open windows are conveniently shown in the last
|
||||||
|
* column of the 'xshove' command given with no arguments.
|
||||||
|
* Remember the backslash at the end of non-terminating lines!
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* You can remove/comment the entire macro to improve performance if you
|
||||||
|
* don't use this feature!
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define AUTOSTICK {\
|
||||||
|
"XOsview", \
|
||||||
|
"XClock", \
|
||||||
|
0 \
|
||||||
|
}
|
||||||
|
|
||||||
|
// clang-format on
|
||||||
|
|
||||||
|
/***************
|
||||||
|
* KEYBINDINGS *
|
||||||
|
**************/
|
||||||
|
|
||||||
|
/* Modifier key and associated modifier bits;
|
||||||
|
* Shift = (1<<0)
|
||||||
|
* Lock = (1<<1)
|
||||||
|
* Control = (1<<2)
|
||||||
|
* Mod1 = (1<<3)
|
||||||
|
* Mod2 = (1<<4)
|
||||||
|
* Mod3 = (1<<5)
|
||||||
|
* Mod4 = (1<<6)
|
||||||
|
* Mod5 = (1<<7)
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define SHORTCUTMOD Mod4Mask
|
||||||
|
#define MODBITS (1 << 6)
|
||||||
|
|
||||||
|
/* Shortcut keys */
|
||||||
|
/* Any of these can be commented out/omitted if you want to free up
|
||||||
|
* your keyboard shortcuts for other things. Alt-tab is always bound.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define MAX_KEY XK_m
|
||||||
|
#define ICON_KEY XK_i
|
||||||
|
#define UNHIDE_KEY XK_u
|
||||||
|
#define MOVE_KEY XK_v
|
||||||
|
#define RESIZE_KEY XK_r
|
||||||
|
#define DESTROY_KEY XK_d
|
||||||
|
#define STICK_KEY XK_s
|
||||||
|
#define ZOOM_KEY XK_z
|
||||||
|
|
||||||
|
#define SNAPLEFT_KEY XK_h
|
||||||
|
#define SNAPRIGHT_KEY XK_l
|
||||||
|
#define SNAPTOP_KEY XK_k
|
||||||
|
#define SNAPBOTTOM_KEY XK_j
|
||||||
|
|
||||||
|
#define SNAPTOPLEFT_KEY XK_q
|
||||||
|
#define SNAPBOTTOMLEFT_KEY XK_w
|
||||||
|
#define SNAPBOTTOMRIGHT_KEY XK_o
|
||||||
|
#define SNAPTOPRIGHT_KEY XK_p
|
||||||
|
|
||||||
|
#define SNAPCENTER_KEY XK_c
|
||||||
|
|
||||||
|
#define NEXTVIRT_KEY XK_Right
|
||||||
|
#define PREVVIRT_KEY XK_Left
|
||||||
|
|
||||||
|
#define LAUNCH_KEY XK_slash
|
||||||
|
|
||||||
|
// ignore these for now -- this is a feature in development
|
||||||
|
#define STICKYTOFRONT_KEY XK_t
|
||||||
|
#define STICKYTOBACK_KEY XK_b
|
||||||
|
|
166
key.c
166
key.c
|
@ -30,26 +30,66 @@ static void alttab(int shift);
|
||||||
void keysetup(void) {
|
void keysetup(void) {
|
||||||
int i;
|
int i;
|
||||||
int tabcode = XKeysymToKeycode(dpy, XK_Tab);
|
int tabcode = XKeysymToKeycode(dpy, XK_Tab);
|
||||||
|
#ifdef DESTROY_KEY
|
||||||
int dcode = XKeysymToKeycode(dpy, DESTROY_KEY);
|
int dcode = XKeysymToKeycode(dpy, DESTROY_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef ICON_KEY
|
||||||
int icode = XKeysymToKeycode(dpy, ICON_KEY);
|
int icode = XKeysymToKeycode(dpy, ICON_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef UNHIDE_KEY
|
||||||
int ucode = XKeysymToKeycode(dpy, UNHIDE_KEY);
|
int ucode = XKeysymToKeycode(dpy, UNHIDE_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef MAX_KEY
|
||||||
int mcode = XKeysymToKeycode(dpy, MAX_KEY);
|
int mcode = XKeysymToKeycode(dpy, MAX_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef MOVE_KEY
|
||||||
int vcode = XKeysymToKeycode(dpy, MOVE_KEY);
|
int vcode = XKeysymToKeycode(dpy, MOVE_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef RESIZE_KEY
|
||||||
int rcode = XKeysymToKeycode(dpy, RESIZE_KEY);
|
int rcode = XKeysymToKeycode(dpy, RESIZE_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef STICK_KEY
|
||||||
int scode = XKeysymToKeycode(dpy, STICK_KEY);
|
int scode = XKeysymToKeycode(dpy, STICK_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPLEFT_KEY
|
||||||
int hcode = XKeysymToKeycode(dpy, SNAPLEFT_KEY);
|
int hcode = XKeysymToKeycode(dpy, SNAPLEFT_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPRIGHT_KEY
|
||||||
int lcode = XKeysymToKeycode(dpy, SNAPRIGHT_KEY);
|
int lcode = XKeysymToKeycode(dpy, SNAPRIGHT_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPBOTTOM_KEY
|
||||||
int jcode = XKeysymToKeycode(dpy, SNAPBOTTOM_KEY);
|
int jcode = XKeysymToKeycode(dpy, SNAPBOTTOM_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPTOP_KEY
|
||||||
int kcode = XKeysymToKeycode(dpy, SNAPTOP_KEY);
|
int kcode = XKeysymToKeycode(dpy, SNAPTOP_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPTOPLEFT_KEY
|
||||||
int qcode = XKeysymToKeycode(dpy, SNAPTOPLEFT_KEY);
|
int qcode = XKeysymToKeycode(dpy, SNAPTOPLEFT_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPBOTTOMLEFT_KEY
|
||||||
int wcode = XKeysymToKeycode(dpy, SNAPBOTTOMLEFT_KEY);
|
int wcode = XKeysymToKeycode(dpy, SNAPBOTTOMLEFT_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPBOTTOMRIGHT_KEY
|
||||||
int ocode = XKeysymToKeycode(dpy, SNAPBOTTOMRIGHT_KEY);
|
int ocode = XKeysymToKeycode(dpy, SNAPBOTTOMRIGHT_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPTOPRIGHT_KEY
|
||||||
int pcode = XKeysymToKeycode(dpy, SNAPTOPRIGHT_KEY);
|
int pcode = XKeysymToKeycode(dpy, SNAPTOPRIGHT_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPCENTER_KEY
|
||||||
int ccode = XKeysymToKeycode(dpy, SNAPCENTER_KEY);
|
int ccode = XKeysymToKeycode(dpy, SNAPCENTER_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef LAUNCH_KEY
|
||||||
int slcode = XKeysymToKeycode(dpy, LAUNCH_KEY);
|
int slcode = XKeysymToKeycode(dpy, LAUNCH_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef ZOOM_KEY
|
||||||
int zcode = XKeysymToKeycode(dpy, ZOOM_KEY);
|
int zcode = XKeysymToKeycode(dpy, ZOOM_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef NEXTVIRT_KEY
|
||||||
int rightcode = XKeysymToKeycode(dpy, NEXTVIRT_KEY);
|
int rightcode = XKeysymToKeycode(dpy, NEXTVIRT_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef PREVVIRT_KEY
|
||||||
int leftcode = XKeysymToKeycode(dpy, PREVVIRT_KEY);
|
int leftcode = XKeysymToKeycode(dpy, PREVVIRT_KEY);
|
||||||
|
#endif
|
||||||
#ifdef DEVEL
|
#ifdef DEVEL
|
||||||
int tcode = XKeysymToKeycode(dpy, STICKYTOFRONT_KEY);
|
int tcode = XKeysymToKeycode(dpy, STICKYTOFRONT_KEY);
|
||||||
int bcode = XKeysymToKeycode(dpy, STICKYTOBACK_KEY);
|
int bcode = XKeysymToKeycode(dpy, STICKYTOBACK_KEY);
|
||||||
|
@ -64,6 +104,7 @@ void keysetup(void) {
|
||||||
0,
|
0,
|
||||||
GrabModeSync,
|
GrabModeSync,
|
||||||
GrabModeAsync);
|
GrabModeAsync);
|
||||||
|
#ifdef DESTROY_KEY
|
||||||
XGrabKey(
|
XGrabKey(
|
||||||
dpy,
|
dpy,
|
||||||
dcode,
|
dcode,
|
||||||
|
@ -72,6 +113,8 @@ void keysetup(void) {
|
||||||
0,
|
0,
|
||||||
GrabModeSync,
|
GrabModeSync,
|
||||||
GrabModeAsync);
|
GrabModeAsync);
|
||||||
|
#endif
|
||||||
|
#ifdef ICON_KEY
|
||||||
XGrabKey(
|
XGrabKey(
|
||||||
dpy,
|
dpy,
|
||||||
icode,
|
icode,
|
||||||
|
@ -80,6 +123,8 @@ void keysetup(void) {
|
||||||
0,
|
0,
|
||||||
GrabModeSync,
|
GrabModeSync,
|
||||||
GrabModeAsync);
|
GrabModeAsync);
|
||||||
|
#endif
|
||||||
|
#ifdef UNHIDE_KEY
|
||||||
XGrabKey(
|
XGrabKey(
|
||||||
dpy,
|
dpy,
|
||||||
ucode,
|
ucode,
|
||||||
|
@ -88,6 +133,8 @@ void keysetup(void) {
|
||||||
0,
|
0,
|
||||||
GrabModeSync,
|
GrabModeSync,
|
||||||
GrabModeAsync);
|
GrabModeAsync);
|
||||||
|
#endif
|
||||||
|
#ifdef RESIZE_KEY
|
||||||
XGrabKey(
|
XGrabKey(
|
||||||
dpy,
|
dpy,
|
||||||
rcode,
|
rcode,
|
||||||
|
@ -96,6 +143,8 @@ void keysetup(void) {
|
||||||
0,
|
0,
|
||||||
GrabModeSync,
|
GrabModeSync,
|
||||||
GrabModeAsync);
|
GrabModeAsync);
|
||||||
|
#endif
|
||||||
|
#ifdef MOVE_KEY
|
||||||
XGrabKey(
|
XGrabKey(
|
||||||
dpy,
|
dpy,
|
||||||
vcode,
|
vcode,
|
||||||
|
@ -104,6 +153,8 @@ void keysetup(void) {
|
||||||
0,
|
0,
|
||||||
GrabModeSync,
|
GrabModeSync,
|
||||||
GrabModeAsync);
|
GrabModeAsync);
|
||||||
|
#endif
|
||||||
|
#ifdef MAX_KEY
|
||||||
XGrabKey(
|
XGrabKey(
|
||||||
dpy,
|
dpy,
|
||||||
mcode,
|
mcode,
|
||||||
|
@ -112,6 +163,8 @@ void keysetup(void) {
|
||||||
0,
|
0,
|
||||||
GrabModeSync,
|
GrabModeSync,
|
||||||
GrabModeAsync);
|
GrabModeAsync);
|
||||||
|
#endif
|
||||||
|
#ifdef STICK_KEY
|
||||||
XGrabKey(
|
XGrabKey(
|
||||||
dpy,
|
dpy,
|
||||||
scode,
|
scode,
|
||||||
|
@ -120,6 +173,8 @@ void keysetup(void) {
|
||||||
0,
|
0,
|
||||||
GrabModeSync,
|
GrabModeSync,
|
||||||
GrabModeAsync);
|
GrabModeAsync);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPLEFT_KEY
|
||||||
XGrabKey(
|
XGrabKey(
|
||||||
dpy,
|
dpy,
|
||||||
hcode,
|
hcode,
|
||||||
|
@ -128,6 +183,8 @@ void keysetup(void) {
|
||||||
0,
|
0,
|
||||||
GrabModeSync,
|
GrabModeSync,
|
||||||
GrabModeAsync);
|
GrabModeAsync);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPRIGHT_KEY
|
||||||
XGrabKey(
|
XGrabKey(
|
||||||
dpy,
|
dpy,
|
||||||
lcode,
|
lcode,
|
||||||
|
@ -136,6 +193,8 @@ void keysetup(void) {
|
||||||
0,
|
0,
|
||||||
GrabModeSync,
|
GrabModeSync,
|
||||||
GrabModeAsync);
|
GrabModeAsync);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPBOTTOM_KEY
|
||||||
XGrabKey(
|
XGrabKey(
|
||||||
dpy,
|
dpy,
|
||||||
jcode,
|
jcode,
|
||||||
|
@ -144,6 +203,8 @@ void keysetup(void) {
|
||||||
0,
|
0,
|
||||||
GrabModeSync,
|
GrabModeSync,
|
||||||
GrabModeAsync);
|
GrabModeAsync);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPTOP_KEY
|
||||||
XGrabKey(
|
XGrabKey(
|
||||||
dpy,
|
dpy,
|
||||||
kcode,
|
kcode,
|
||||||
|
@ -152,6 +213,8 @@ void keysetup(void) {
|
||||||
0,
|
0,
|
||||||
GrabModeSync,
|
GrabModeSync,
|
||||||
GrabModeAsync);
|
GrabModeAsync);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPTOPLEFT_KEY
|
||||||
XGrabKey(
|
XGrabKey(
|
||||||
dpy,
|
dpy,
|
||||||
qcode,
|
qcode,
|
||||||
|
@ -160,6 +223,8 @@ void keysetup(void) {
|
||||||
0,
|
0,
|
||||||
GrabModeSync,
|
GrabModeSync,
|
||||||
GrabModeAsync);
|
GrabModeAsync);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPBOTTOMLEFT_KEY
|
||||||
XGrabKey(
|
XGrabKey(
|
||||||
dpy,
|
dpy,
|
||||||
wcode,
|
wcode,
|
||||||
|
@ -168,6 +233,8 @@ void keysetup(void) {
|
||||||
0,
|
0,
|
||||||
GrabModeSync,
|
GrabModeSync,
|
||||||
GrabModeAsync);
|
GrabModeAsync);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPBOTTOMRIGHT_KEY
|
||||||
XGrabKey(
|
XGrabKey(
|
||||||
dpy,
|
dpy,
|
||||||
ocode,
|
ocode,
|
||||||
|
@ -176,6 +243,8 @@ void keysetup(void) {
|
||||||
0,
|
0,
|
||||||
GrabModeSync,
|
GrabModeSync,
|
||||||
GrabModeAsync);
|
GrabModeAsync);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPTOPRIGHT_KEY
|
||||||
XGrabKey(
|
XGrabKey(
|
||||||
dpy,
|
dpy,
|
||||||
pcode,
|
pcode,
|
||||||
|
@ -184,6 +253,8 @@ void keysetup(void) {
|
||||||
0,
|
0,
|
||||||
GrabModeSync,
|
GrabModeSync,
|
||||||
GrabModeAsync);
|
GrabModeAsync);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPCENTER_KEY
|
||||||
XGrabKey(
|
XGrabKey(
|
||||||
dpy,
|
dpy,
|
||||||
ccode,
|
ccode,
|
||||||
|
@ -200,6 +271,8 @@ void keysetup(void) {
|
||||||
0,
|
0,
|
||||||
GrabModeSync,
|
GrabModeSync,
|
||||||
GrabModeAsync);
|
GrabModeAsync);
|
||||||
|
#endif
|
||||||
|
#ifdef PREVVIRT_KEY
|
||||||
XGrabKey(
|
XGrabKey(
|
||||||
dpy,
|
dpy,
|
||||||
leftcode,
|
leftcode,
|
||||||
|
@ -208,6 +281,8 @@ void keysetup(void) {
|
||||||
0,
|
0,
|
||||||
GrabModeSync,
|
GrabModeSync,
|
||||||
GrabModeAsync);
|
GrabModeAsync);
|
||||||
|
#endif
|
||||||
|
#ifdef NEXTVIRT_KEY
|
||||||
XGrabKey(
|
XGrabKey(
|
||||||
dpy,
|
dpy,
|
||||||
rightcode,
|
rightcode,
|
||||||
|
@ -216,6 +291,8 @@ void keysetup(void) {
|
||||||
0,
|
0,
|
||||||
GrabModeSync,
|
GrabModeSync,
|
||||||
GrabModeAsync);
|
GrabModeAsync);
|
||||||
|
#endif
|
||||||
|
#ifdef LAUNCH_KEY
|
||||||
XGrabKey(
|
XGrabKey(
|
||||||
dpy,
|
dpy,
|
||||||
slcode,
|
slcode,
|
||||||
|
@ -224,6 +301,8 @@ void keysetup(void) {
|
||||||
0,
|
0,
|
||||||
GrabModeSync,
|
GrabModeSync,
|
||||||
GrabModeAsync);
|
GrabModeAsync);
|
||||||
|
#endif
|
||||||
|
#ifdef ZOOM_KEY
|
||||||
XGrabKey(
|
XGrabKey(
|
||||||
dpy,
|
dpy,
|
||||||
zcode,
|
zcode,
|
||||||
|
@ -232,6 +311,7 @@ void keysetup(void) {
|
||||||
0,
|
0,
|
||||||
GrabModeSync,
|
GrabModeSync,
|
||||||
GrabModeAsync);
|
GrabModeAsync);
|
||||||
|
#endif
|
||||||
XGrabKey(
|
XGrabKey(
|
||||||
dpy,
|
dpy,
|
||||||
tabcode,
|
tabcode,
|
||||||
|
@ -272,26 +352,66 @@ void keypress(XKeyEvent* e) {
|
||||||
* process key press here
|
* process key press here
|
||||||
*/
|
*/
|
||||||
int tabcode = XKeysymToKeycode(dpy, XK_Tab);
|
int tabcode = XKeysymToKeycode(dpy, XK_Tab);
|
||||||
|
#ifdef DESTROY_KEY
|
||||||
int dcode = XKeysymToKeycode(dpy, DESTROY_KEY);
|
int dcode = XKeysymToKeycode(dpy, DESTROY_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef ICON_KEY
|
||||||
int icode = XKeysymToKeycode(dpy, ICON_KEY);
|
int icode = XKeysymToKeycode(dpy, ICON_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef UNHIDE_KEY
|
||||||
int ucode = XKeysymToKeycode(dpy, UNHIDE_KEY);
|
int ucode = XKeysymToKeycode(dpy, UNHIDE_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef MAX_KEY
|
||||||
int mcode = XKeysymToKeycode(dpy, MAX_KEY);
|
int mcode = XKeysymToKeycode(dpy, MAX_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef MOVE_KEY
|
||||||
int vcode = XKeysymToKeycode(dpy, MOVE_KEY);
|
int vcode = XKeysymToKeycode(dpy, MOVE_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef STICK_KEY
|
||||||
int scode = XKeysymToKeycode(dpy, STICK_KEY);
|
int scode = XKeysymToKeycode(dpy, STICK_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef RESIZE_KEY
|
||||||
int rcode = XKeysymToKeycode(dpy, RESIZE_KEY);
|
int rcode = XKeysymToKeycode(dpy, RESIZE_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef LAUNCH_KEY
|
||||||
int slcode = XKeysymToKeycode(dpy, LAUNCH_KEY);
|
int slcode = XKeysymToKeycode(dpy, LAUNCH_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef ZOOM_KEY
|
||||||
int zcode = XKeysymToKeycode(dpy, ZOOM_KEY);
|
int zcode = XKeysymToKeycode(dpy, ZOOM_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPLEFT_KEY
|
||||||
int hcode = XKeysymToKeycode(dpy, SNAPLEFT_KEY);
|
int hcode = XKeysymToKeycode(dpy, SNAPLEFT_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPRIGHT_KEY
|
||||||
int lcode = XKeysymToKeycode(dpy, SNAPRIGHT_KEY);
|
int lcode = XKeysymToKeycode(dpy, SNAPRIGHT_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPBOTTOM_KEY
|
||||||
int jcode = XKeysymToKeycode(dpy, SNAPBOTTOM_KEY);
|
int jcode = XKeysymToKeycode(dpy, SNAPBOTTOM_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPTOP_KEY
|
||||||
int kcode = XKeysymToKeycode(dpy, SNAPTOP_KEY);
|
int kcode = XKeysymToKeycode(dpy, SNAPTOP_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPTOPLEFT_KEY
|
||||||
int qcode = XKeysymToKeycode(dpy, SNAPTOPLEFT_KEY);
|
int qcode = XKeysymToKeycode(dpy, SNAPTOPLEFT_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPBOTTOMLEFT_KEY
|
||||||
int wcode = XKeysymToKeycode(dpy, SNAPBOTTOMLEFT_KEY);
|
int wcode = XKeysymToKeycode(dpy, SNAPBOTTOMLEFT_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPBOTTOMRIGHT_KEY
|
||||||
int ocode = XKeysymToKeycode(dpy, SNAPBOTTOMRIGHT_KEY);
|
int ocode = XKeysymToKeycode(dpy, SNAPBOTTOMRIGHT_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPTOPRIGHT_KEY
|
||||||
int pcode = XKeysymToKeycode(dpy, SNAPTOPRIGHT_KEY);
|
int pcode = XKeysymToKeycode(dpy, SNAPTOPRIGHT_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPCENTER_KEY
|
||||||
int ccode = XKeysymToKeycode(dpy, SNAPCENTER_KEY);
|
int ccode = XKeysymToKeycode(dpy, SNAPCENTER_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef NEXTVIRT_KEY
|
||||||
int rightcode = XKeysymToKeycode(dpy, NEXTVIRT_KEY);
|
int rightcode = XKeysymToKeycode(dpy, NEXTVIRT_KEY);
|
||||||
|
#endif
|
||||||
|
#ifdef PREVVIRT_KEY
|
||||||
int leftcode = XKeysymToKeycode(dpy, PREVVIRT_KEY);
|
int leftcode = XKeysymToKeycode(dpy, PREVVIRT_KEY);
|
||||||
|
#endif
|
||||||
#ifdef DEVEL
|
#ifdef DEVEL
|
||||||
int tcode = XKeysymToKeycode(dpy, STICKYTOFRONT_KEY);
|
int tcode = XKeysymToKeycode(dpy, STICKYTOFRONT_KEY);
|
||||||
int bcode = XKeysymToKeycode(dpy, STICKYTOBACK_KEY);
|
int bcode = XKeysymToKeycode(dpy, STICKYTOBACK_KEY);
|
||||||
|
@ -303,16 +423,27 @@ void keypress(XKeyEvent* e) {
|
||||||
/* basic wm functionality */
|
/* basic wm functionality */
|
||||||
if (e->keycode == tabcode && (e->state & Mod1Mask) == (1 << 3))
|
if (e->keycode == tabcode && (e->state & Mod1Mask) == (1 << 3))
|
||||||
alttab(e->state & ShiftMask);
|
alttab(e->state & ShiftMask);
|
||||||
|
#ifdef DESTROY_KEY
|
||||||
else if (e->keycode == dcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
else if (e->keycode == dcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
||||||
delete (current, 0);
|
delete (current, 0);
|
||||||
|
#endif
|
||||||
|
#ifdef ICON_KEY
|
||||||
else if (e->keycode == icode && (e->state & SHORTCUTMOD) == (MODBITS))
|
else if (e->keycode == icode && (e->state & SHORTCUTMOD) == (MODBITS))
|
||||||
hide(current);
|
hide(current);
|
||||||
|
#endif
|
||||||
|
#ifdef UNHIDE_KEY
|
||||||
else if (e->keycode == ucode && (e->state & SHORTCUTMOD) == (MODBITS))
|
else if (e->keycode == ucode && (e->state & SHORTCUTMOD) == (MODBITS))
|
||||||
unhide(0, 1);
|
unhide(0, 1);
|
||||||
|
#endif
|
||||||
|
#ifdef MOVE_KEY
|
||||||
else if (e->keycode == vcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
else if (e->keycode == vcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
||||||
move(current, Button3);
|
move(current, Button3);
|
||||||
|
#endif
|
||||||
|
#ifdef RESIZE_KEY
|
||||||
else if (e->keycode == rcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
else if (e->keycode == rcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
||||||
reshape(current, Button3, sweep, 0);
|
reshape(current, Button3, sweep, 0);
|
||||||
|
#endif
|
||||||
|
#ifdef MAX_KEY
|
||||||
else if (e->keycode == mcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
else if (e->keycode == mcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
||||||
quickreshape(
|
quickreshape(
|
||||||
current,
|
current,
|
||||||
|
@ -320,12 +451,18 @@ void keypress(XKeyEvent* e) {
|
||||||
-BORDER,
|
-BORDER,
|
||||||
ra.width + 2 * BORDER,
|
ra.width + 2 * BORDER,
|
||||||
ra.height + 2 * BORDER);
|
ra.height + 2 * BORDER);
|
||||||
|
#endif
|
||||||
|
#ifdef STICK_KEY
|
||||||
else if (e->keycode == scode && (e->state & SHORTCUTMOD) == (MODBITS))
|
else if (e->keycode == scode && (e->state & SHORTCUTMOD) == (MODBITS))
|
||||||
stick(current);
|
stick(current);
|
||||||
|
#endif
|
||||||
|
#ifdef ZOOM_KEY
|
||||||
else if (e->keycode == zcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
else if (e->keycode == zcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
||||||
zoom = !zoom;
|
zoom = !zoom;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* half snap */
|
/* half snap */
|
||||||
|
#ifdef SNAPLEFT_KEY
|
||||||
else if (e->keycode == hcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
else if (e->keycode == hcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
||||||
quickreshape(
|
quickreshape(
|
||||||
current,
|
current,
|
||||||
|
@ -333,6 +470,8 @@ void keypress(XKeyEvent* e) {
|
||||||
GAPSZ,
|
GAPSZ,
|
||||||
ra.width / 2 - 1.5 * GAPSZ,
|
ra.width / 2 - 1.5 * GAPSZ,
|
||||||
ra.height - 2 * GAPSZ);
|
ra.height - 2 * GAPSZ);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPRIGHT_KEY
|
||||||
else if (e->keycode == lcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
else if (e->keycode == lcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
||||||
quickreshape(
|
quickreshape(
|
||||||
current,
|
current,
|
||||||
|
@ -340,6 +479,8 @@ void keypress(XKeyEvent* e) {
|
||||||
GAPSZ,
|
GAPSZ,
|
||||||
ra.width / 2 - 1.5 * GAPSZ,
|
ra.width / 2 - 1.5 * GAPSZ,
|
||||||
ra.height - 2 * GAPSZ);
|
ra.height - 2 * GAPSZ);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPBOTTOM_KEY
|
||||||
else if (e->keycode == jcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
else if (e->keycode == jcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
||||||
quickreshape(
|
quickreshape(
|
||||||
current,
|
current,
|
||||||
|
@ -347,6 +488,8 @@ void keypress(XKeyEvent* e) {
|
||||||
ra.height / 2 + 0.5 * GAPSZ,
|
ra.height / 2 + 0.5 * GAPSZ,
|
||||||
ra.width - 2 * GAPSZ,
|
ra.width - 2 * GAPSZ,
|
||||||
ra.height / 2 - 1.5 * GAPSZ);
|
ra.height / 2 - 1.5 * GAPSZ);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPTOP_KEY
|
||||||
else if (e->keycode == kcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
else if (e->keycode == kcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
||||||
quickreshape(
|
quickreshape(
|
||||||
current,
|
current,
|
||||||
|
@ -354,8 +497,10 @@ void keypress(XKeyEvent* e) {
|
||||||
GAPSZ,
|
GAPSZ,
|
||||||
ra.width - 2 * GAPSZ,
|
ra.width - 2 * GAPSZ,
|
||||||
ra.height / 2 - 1.5 * GAPSZ);
|
ra.height / 2 - 1.5 * GAPSZ);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* quarter snap */
|
/* quarter snap */
|
||||||
|
#ifdef SNAPTOPLEFT_KEY
|
||||||
else if (e->keycode == qcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
else if (e->keycode == qcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
||||||
quickreshape(
|
quickreshape(
|
||||||
current,
|
current,
|
||||||
|
@ -363,6 +508,8 @@ void keypress(XKeyEvent* e) {
|
||||||
GAPSZ,
|
GAPSZ,
|
||||||
ra.width / 2 - 1.5 * GAPSZ,
|
ra.width / 2 - 1.5 * GAPSZ,
|
||||||
ra.height / 2 - 1.5 * GAPSZ);
|
ra.height / 2 - 1.5 * GAPSZ);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPBOTTOMLEFT_KEY
|
||||||
else if (e->keycode == wcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
else if (e->keycode == wcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
||||||
quickreshape(
|
quickreshape(
|
||||||
current,
|
current,
|
||||||
|
@ -370,6 +517,8 @@ void keypress(XKeyEvent* e) {
|
||||||
ra.height / 2 + 0.5 * GAPSZ,
|
ra.height / 2 + 0.5 * GAPSZ,
|
||||||
ra.width / 2 - 1.5 * GAPSZ,
|
ra.width / 2 - 1.5 * GAPSZ,
|
||||||
ra.height / 2 - 1.5 * GAPSZ);
|
ra.height / 2 - 1.5 * GAPSZ);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPBOTTOMRIGHT_KEY
|
||||||
else if (e->keycode == ocode && (e->state & SHORTCUTMOD) == (MODBITS))
|
else if (e->keycode == ocode && (e->state & SHORTCUTMOD) == (MODBITS))
|
||||||
quickreshape(
|
quickreshape(
|
||||||
current,
|
current,
|
||||||
|
@ -377,6 +526,8 @@ void keypress(XKeyEvent* e) {
|
||||||
ra.height / 2 + 0.5 * GAPSZ,
|
ra.height / 2 + 0.5 * GAPSZ,
|
||||||
ra.width / 2 - 1.5 * GAPSZ,
|
ra.width / 2 - 1.5 * GAPSZ,
|
||||||
ra.height / 2 - 1.5 * GAPSZ);
|
ra.height / 2 - 1.5 * GAPSZ);
|
||||||
|
#endif
|
||||||
|
#ifdef SNAPTOPRIGHT_KEY
|
||||||
else if (e->keycode == pcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
else if (e->keycode == pcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
||||||
quickreshape(
|
quickreshape(
|
||||||
current,
|
current,
|
||||||
|
@ -384,8 +535,10 @@ void keypress(XKeyEvent* e) {
|
||||||
GAPSZ,
|
GAPSZ,
|
||||||
ra.width / 2 - 1.5 * GAPSZ,
|
ra.width / 2 - 1.5 * GAPSZ,
|
||||||
ra.height / 2 - 1.5 * GAPSZ);
|
ra.height / 2 - 1.5 * GAPSZ);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* center snap */
|
/* center snap */
|
||||||
|
#ifdef CENTERSNAP_KEY
|
||||||
else if (e->keycode == ccode && (e->state & SHORTCUTMOD) == (MODBITS)) {
|
else if (e->keycode == ccode && (e->state & SHORTCUTMOD) == (MODBITS)) {
|
||||||
if ((e->state & ShiftMask) == (1 << 0)) {
|
if ((e->state & ShiftMask) == (1 << 0)) {
|
||||||
#ifdef CENTERVMAX
|
#ifdef CENTERVMAX
|
||||||
|
@ -401,6 +554,7 @@ void keypress(XKeyEvent* e) {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef DEVEL
|
#ifdef DEVEL
|
||||||
/* manage autostuck windows */
|
/* manage autostuck windows */
|
||||||
|
@ -411,7 +565,8 @@ void keypress(XKeyEvent* e) {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* launch */
|
/* launch */
|
||||||
if (e->keycode == slcode && (e->state & SHORTCUTMOD) == (MODBITS)) {
|
#ifdef LAUNCH_KEY
|
||||||
|
else if (e->keycode == slcode && (e->state & SHORTCUTMOD) == (MODBITS)) {
|
||||||
kbLaunch = 1;
|
kbLaunch = 1;
|
||||||
if (fork() == 0) {
|
if (fork() == 0) {
|
||||||
close(ConnectionNumber(dpy));
|
close(ConnectionNumber(dpy));
|
||||||
|
@ -431,21 +586,26 @@ void keypress(XKeyEvent* e) {
|
||||||
perror("ryudo: exec urxvt/9term/xterm failed");
|
perror("ryudo: exec urxvt/9term/xterm failed");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* switch virts */
|
/* switch virts */
|
||||||
if (e->keycode == rightcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
#ifdef NEXTVIRT_KEY
|
||||||
|
else if (e->keycode == rightcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
||||||
if (numvirtuals > 1)
|
if (numvirtuals > 1)
|
||||||
if (virt < numvirtuals - 1)
|
if (virt < numvirtuals - 1)
|
||||||
switch_to(virt + 1);
|
switch_to(virt + 1);
|
||||||
else
|
else
|
||||||
switch_to(0);
|
switch_to(0);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (e->keycode == leftcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
#ifdef PREVVIRT_KEY
|
||||||
|
else if (e->keycode == leftcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
||||||
if (numvirtuals > 1)
|
if (numvirtuals > 1)
|
||||||
if (virt > 0)
|
if (virt > 0)
|
||||||
switch_to(virt - 1);
|
switch_to(virt - 1);
|
||||||
else
|
else
|
||||||
switch_to(numvirtuals - 1);
|
switch_to(numvirtuals - 1);
|
||||||
|
#endif
|
||||||
|
|
||||||
XAllowEvents(dpy, SyncKeyboard, e->time);
|
XAllowEvents(dpy, SyncKeyboard, e->time);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue