summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom Willemsen2012-02-07 22:10:35 +0100
committerGravatar Tom Willemsen2012-02-07 22:10:35 +0100
commit01a0c630672d869a7df0f4aae835433c7e68e939 (patch)
tree9908d16d0817bf008c1db2a910a94cef6aaf991b
parent5aa3ec23c5037ac8ab0bd080123760c1b3df81b5 (diff)
downloaddotfiles-01a0c630672d869a7df0f4aae835433c7e68e939.tar.gz
dotfiles-01a0c630672d869a7df0f4aae835433c7e68e939.zip
XBINDKEYS: Macro-ify
-rw-r--r--.xbindkeysrc.scm120
1 files changed, 53 insertions, 67 deletions
diff --git a/.xbindkeysrc.scm b/.xbindkeysrc.scm
index 38d33a1..9d87a2e 100644
--- a/.xbindkeysrc.scm
+++ b/.xbindkeysrc.scm
@@ -18,6 +18,14 @@
(run-command ,command)
(reset-main-binding)))
+(define-macro (create-map name binding . more)
+ `(define (,name)
+ (ungrab-all-keys)
+ (remove-all-keys)
+ (begin ,binding . ,more)
+ (xbindkey-function `(,modkey g) reset-main-binding)
+ (grab-all-keys)))
+
;;; Functions
(define (reset-main-binding)
"reset first binding"
@@ -85,6 +93,7 @@
-1)))
(define (gui-print text)
+ (close-gui-window)
(let ((width (+ (text-width font text) 10)))
(set! dzen-pipe (open-output-pipe
(string-append dzen-cmd " -w " (number->string width)
@@ -102,9 +111,9 @@
(define (main-binding)
"First binding"
(xbindkey `(,modkey shift "1") (string-append "dmenu_run -p 'Run:' " dmenu-args))
- (xbindkey-function `(,modkey x) X-functions)
- (xbindkey-function `(,modkey w) W-functions)
- (xbindkey-function `(,modkey s) S-functions)
+ (xbindkey-function `(,modkey x) X-function-map)
+ (xbindkey-function `(,modkey w) W-function-map)
+ (xbindkey-function `(,modkey s) S-function-map)
(xbindkey `(,modkey Return) "urxvt")
(xbindkey '(control alt l) "i3lock -c 000000")
(xbindkey '(XF86HomePage) "conkeror")
@@ -119,70 +128,47 @@
(xbindkey '(XF86Tools) "ncmpcpp")
(xbindkey-function `(,modkey g) reset-main-binding))
-(define (X-functions)
- "Second binding"
- (gui-print "S-x")
- (ungrab-all-keys)
- (remove-all-keys)
- (xbindkey-function '(b) switch-tags)
- (xbindkey-function `(,modkey c) (cmd "herbstclient quit"))
- (xbindkey-function `(,modkey r) (cmd "herbstclient reload"))
- (xbindkey-function '(k) kill-tag)
- (xbindkey-function '("0") (cmd "herbstclient remove"))
- (xbindkey-function '("3") (cmd "herbstclient split horizontal 0.5"))
- (xbindkey-function '("2") (cmd "herbstclient split vertical 0.5"))
- (xbindkey-function '(space) (cmd "herbstclient cycle_layout 1"))
- (xbindkey-function '(f) (cmd "herbstclient floating toggle"))
- (xbindkey-function '(shift f) (cmd "herbstclient fullscreen toggle"))
- (xbindkey-function '(p) (cmd "herbstclient pseudotile toggle"))
- (xbindkey-function '(r) resize-map)
- (xbindkey-function '(m) move-to-tag)
- (xbindkey-function `(,modkey g) reset-main-binding)
- (grab-all-keys))
-
-(define (W-functions)
- (gui-print "S-w")
- (ungrab-all-keys)
- (remove-all-keys)
- (xbindkey-function '(k) (cmd "herbstclient close"))
- (xbindkey-function '(w) (cmd "herbstclient cycle"))
- (xbindkey-function '(o) (cmd "herbstclient cycle_all +1"))
- (xbindkey-function '(b) (cmd "herbstclient focus left"))
- (xbindkey-function '(n) (cmd "herbstclient focus down"))
- (xbindkey-function '(p) (cmd "herbstclient focus up"))
- (xbindkey-function '(f) (cmd "herbstclient focus right"))
- (xbindkey-function '(shift b) (cmd "herbstclient shift left"))
- (xbindkey-function '(shift n) (cmd "herbstclient shift down"))
- (xbindkey-function '(shift p) (cmd "herbstclient shift up"))
- (xbindkey-function '(shift f) (cmd "herbstclient shift right"))
- (xbindkey-function `(,modkey g) reset-main-binding)
- (grab-all-keys))
-
-(define (S-functions)
- (gui-print "S-s")
- (ungrab-all-keys)
- (remove-all-keys)
- (xbindkey-function '(o) (cmd "herbstclient cycle_monitor"))
- (xbindkey-function `(,modkey g) reset-main-binding)
- (grab-all-keys))
-
-(define (P-functions)
- (ungrab-all-keys)
- (remove-all-keys)
-
- (grab-all-keys))
-
-(define (resize-map)
- (gui-print "Resizing")
- (ungrab-all-keys)
- (remove-all-keys)
- (xbindkey `(,modkey b) "herbstclient resize left +0.05")
- (xbindkey `(,modkey n) "herbstclient rezise down +0.05")
- (xbindkey `(,modkey p) "herbstclient resize up +0.05")
- (xbindkey `(,modkey f) "herbstclient resize right +0.05")
- (xbindkey-function '(Return) reset-main-binding)
- (xbindkey-function `(,modkey g) reset-main-binding)
- (grab-all-keys))
+(create-map X-function-map
+ (gui-print "S-x")
+ (xbindkey-function '(b) switch-tags)
+ (xbindkey-function `(,modkey c) (cmd "herbstclient quit"))
+ (xbindkey-function `(,modkey r) (cmd "herbstclient reload"))
+ (xbindkey-function '(k) kill-tag)
+ (xbindkey-function '("0") (cmd "herbstclient remove"))
+ (xbindkey-function '("3") (cmd "herbstclient split horizontal 0.5"))
+ (xbindkey-function '("2") (cmd "herbstclient split vertical 0.5"))
+ (xbindkey-function '(space) (cmd "herbstclient cycle_layout 1"))
+ (xbindkey-function '(f) (cmd "herbstclient floating toggle"))
+ (xbindkey-function '(shift f) (cmd "herbstclient fullscreen toggle"))
+ (xbindkey-function '(p) (cmd "herbstclient pseudotile toggle"))
+ (xbindkey-function '(r) resize-map)
+ (xbindkey-function '(m) move-to-tag))
+
+(create-map W-function-map
+ (gui-print "S-w")
+ (xbindkey-function '(k) (cmd "herbstclient close"))
+ (xbindkey-function '(w) (cmd "herbstclient cycle"))
+ (xbindkey-function '(o) (cmd "herbstclient cycle_all +1"))
+ (xbindkey-function '(b) (cmd "herbstclient focus left"))
+ (xbindkey-function '(n) (cmd "herbstclient focus down"))
+ (xbindkey-function '(p) (cmd "herbstclient focus up"))
+ (xbindkey-function '(f) (cmd "herbstclient focus right"))
+ (xbindkey-function '(shift b) (cmd "herbstclient shift left"))
+ (xbindkey-function '(shift n) (cmd "herbstclient shift down"))
+ (xbindkey-function '(shift p) (cmd "herbstclient shift up"))
+ (xbindkey-function '(shift f) (cmd "herbstclient shift right")))
+
+(create-map S-function-map
+ (gui-print "S-s")
+ (xbindkey-function '(o) (cmd "herbstclient cycle_monitor")))
+
+(create-map resize-map
+ (gui-print "Resizing")
+ (xbindkey `(,modkey b) "herbstclient resize left +0.05")
+ (xbindkey `(,modkey n) "herbstclient resize down +0.05")
+ (xbindkey `(,modkey p) "herbstclient resize up +0.05")
+ (xbindkey `(,modkey f) "herbstclient resize right +0.05")
+ (xbindkey-function '(Return) reset-main-binding))
;;; Main
(main-binding)