summaryrefslogtreecommitdiffstats
path: root/.xbindkeysrc.scm
diff options
context:
space:
mode:
authorGravatar Tom Willemsen2012-04-05 23:38:41 +0200
committerGravatar Tom Willemsen2012-04-05 23:38:41 +0200
commit1e1f79b57309a7c810027dae822adf03d6ecbda7 (patch)
tree7f8d8006046e479cd9b0b1949e8d554c891cffdb /.xbindkeysrc.scm
parent04d9496f04a61327ac1eca5d5664924240fc87ad (diff)
downloaddotfiles-1e1f79b57309a7c810027dae822adf03d6ecbda7.tar.gz
dotfiles-1e1f79b57309a7c810027dae822adf03d6ecbda7.zip
.xbindkeysrc.scm
Diffstat (limited to '.xbindkeysrc.scm')
-rw-r--r--.xbindkeysrc.scm440
1 files changed, 271 insertions, 169 deletions
diff --git a/.xbindkeysrc.scm b/.xbindkeysrc.scm
index 205bf0d..d58e4db 100644
--- a/.xbindkeysrc.scm
+++ b/.xbindkeysrc.scm
@@ -1,122 +1,135 @@
;;;_ Import
-(use-modules (ice-9 popen)
- (ice-9 rdelim))
-
+;; (use-modules (ice-9 popen)
+;; (ice-9 rdelim))
+(use-modules (srfi srfi-19))
;;;_ Variables
+(define browser (getenv "BROWSER"))
+(define dmenu-cmd "dmenu")
+(define dzen-cmd "dzen2")
+(define dzen-pipe '())
+(define editor (getenv "EDITOR"))
(define modkey 'mod4)
+(define prefix `(,modkey w))
+(define terminal "urxvt")
+(define date-format "~a ~d ~b ~Y ~H:~M")
+
(define dmenu-font
"-misc-tamsyn-medium-r-normal-*-14-*-*-*-*-*-iso8859-*")
-(define dmenu-cmd "dmenu")
+
(define dmenu-args
(string-append
"-b -nb '#000000' -nf '#15abc3' -sb '#e0c625' -sf '#000000' -fn '"
dmenu-font "'"))
+
(define dzen-font
"-misc-tamsyn-medium-r-normal-*-17-*-*-*-*-*-iso8859-*")
-(define dzen-cmd "dzen2")
+
(define dzen-args
(string-append " -fn '" dzen-font
"' -x 5 -y 5 -bg '#000000' -fg '#15abc3'"))
-(define dzen-pipe '())
-(define previous-tag '())
-(define current-tag "default")
-(define terminal "st")
+;; (define previous-tag '())
+;; (define current-tag "default")
;;;_ Macros
-(define-macro (cmd command)
- `(lambda ()
- (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)))
+;; (define-macro (cmd command)
+;; `(lambda ()
+;; (run-command ,command)
+;; (reset-main-binding)))
+
+;; (define-macro (run application)
+;; `(lambda ()
+;; (run-command (string-append ,application " &"))
+;; (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"
- (close-gui-window)
- (ungrab-all-keys)
- (remove-all-keys)
- (main-binding)
- (grab-all-keys))
+;; (define (reset-main-binding)
+;; "reset first binding"
+;; (close-gui-window)
+;; (ungrab-all-keys)
+;; (remove-all-keys)
+;; (prefix-binding)
+;; (grab-all-keys))
+
+;; (define (get-tags)
+;; "Get a list of tags"
+;; (let* ((file (open-input-pipe
+;; "TAGS=( $(herbstclient tag_status 0 | tr \":\\!.+#\" \" \") ); echo ${TAGS[@]}"))
+;; (tags (string-split (read-line file) #\ )))
+;; (close-port file)
+;; (set! tags (delete current-tag tags))
+;; (set! tags (delete previous-tag tags))
+;; (if (not (null? previous-tag))
+;; (append `(,previous-tag) (append tags `(,current-tag)))
+;; (append tags `(,current-tag)))))
-(define (get-tags)
- "Get a list of tags"
- (let* ((file (open-input-pipe
- "TAGS=( $(herbstclient tag_status 0 | tr \":\\!.+#\" \" \") ); echo ${TAGS[@]}"))
- (tags (string-split (read-line file) #\ )))
- (close-port file)
- (set! tags (delete current-tag tags))
- (set! tags (delete previous-tag tags))
- (if (not (null? previous-tag))
- (append `(,previous-tag) (append tags `(,current-tag)))
- (append tags `(,current-tag)))))
-
-(define (choose-tag prompt tags)
- "Ask to choose a tag"
- (let* ((file (open-input-pipe
- (string-append "echo '" (string-join tags "\n")
- "' | " dmenu-cmd " " dmenu-args " -p '" prompt ":'")))
- (tag (read-line file)))
- (close-port file)
- tag))
-
-(define (switch-to-tag tag)
- (let ((tags (get-tags)))
- (if (string? tag)
- (begin
- (if (not (member tag tags))
- (system (string-append "herbstclient add " tag)))
- (set! previous-tag current-tag)
- (set! current-tag tag)
- (run-command (string-append "herbstclient use " tag))))))
-
-(define (switch-tags)
- "Switch to another tag"
- (let* ((tags (get-tags))
- (tag (choose-tag "Switch to tag" tags)))
- (switch-to-tag tag)
- (reset-main-binding)))
-
-(define (switch-and-run)
- "Ask for a command to run, switch to a tag with that name and run
-the command."
- (let* ((file (open-input-pipe
- (string-append "dmenu_pick -p 'Run:' " dmenu-args)))
- (prog (read-line file)))
- (close-port file)
- (if (string? prog)
- (begin
- (switch-to-tag prog)
- (run-command prog)))
- (reset-main-binding)))
-
-(define (kill-tag)
- "Kill a selected tag"
- (let* ((tags (get-tags))
- (tag (choose-tag "Kill tag" tags)))
- (if (string? tag)
- (begin
- (if (member tag tags)
- (run-command (string-append "herbstclient merge_tag " tag)))))
- (reset-main-binding)))
-
-(define (move-to-tag)
- "Move selected window to another tag"
- (let* ((tags (get-tags))
- (tag (choose-tag "Move to tag" tags)))
- (if (string? tag)
- (begin
- (if (not (member tag tags))
- (system (string-append "herbstclient add " tag)))
- (run-command (string-append "herbstclient move " tag))))
- (reset-main-binding)))
+;; (define (choose-tag prompt tags)
+;; "Ask to choose a tag"
+;; (let* ((file (open-input-pipe
+;; (string-append "echo '" (string-join tags "\n")
+;; "' | " dmenu-cmd " " dmenu-args " -p '" prompt ":'")))
+;; (tag (read-line file)))
+;; (close-port file)
+;; tag))
+
+;; (define (switch-to-tag tag)
+;; (let ((tags (get-tags)))
+;; (if (string? tag)
+;; (begin
+;; (if (not (member tag tags))
+;; (system (string-append "herbstclient add " tag)))
+;; (set! previous-tag current-tag)
+;; (set! current-tag tag)
+;; (run-command (string-append "herbstclient use " tag))))))
+
+;; (define (switch-tags)
+;; "Switch to another tag"
+;; (let* ((tags (get-tags))
+;; (tag (choose-tag "Switch to tag" tags)))
+;; (switch-to-tag tag)
+;; (reset-main-binding)))
+
+;; (define (switch-and-run)
+;; "Ask for a command to run, switch to a tag with that name and run
+;; the command."
+;; (let* ((file (open-input-pipe
+;; (string-append "dmenu_pick -p 'Run:' " dmenu-args)))
+;; (prog (read-line file)))
+;; (close-port file)
+;; (if (string? prog)
+;; (begin
+;; (switch-to-tag prog)
+;; (run-command prog)))
+;; (reset-main-binding)))
+
+;; (define (kill-tag)
+;; "Kill a selected tag"
+;; (let* ((tags (get-tags))
+;; (tag (choose-tag "Kill tag" tags)))
+;; (if (string? tag)
+;; (begin
+;; (if (member tag tags)
+;; (run-command (string-append "herbstclient merge_tag " tag)))))
+;; (reset-main-binding)))
+
+;; (define (move-to-tag)
+;; "Move selected window to another tag"
+;; (let* ((tags (get-tags))
+;; (tag (choose-tag "Move to tag" tags)))
+;; (if (string? tag)
+;; (begin
+;; (if (not (member tag tags))
+;; (system (string-append "herbstclient add " tag)))
+;; (run-command (string-append "herbstclient move " tag))))
+;; (reset-main-binding)))
(define (text-width font text)
(let* ((pipe (open-input-pipe (string-append "textwidth '" font "' '" text "'")))
@@ -141,81 +154,170 @@ the command."
(close-pipe dzen-pipe)
(set! dzen-pipe '())))
+(define (notify msg)
+ (run-command (string-append "notify-send \"" msg "\"")))
+
;;;_ Maps
-(define (main-binding)
+;; (define (prefix-binding)
+;; "Binding of a prefix key for all commands"
+;; (xbindkey-function prefix main-map))
+
+;; (create-map main-map
+;; (gui-print "S-w")
+;; (xbindkey-function '(control c) (run terminal))
+;; (xbindkey-function '(Return) (lambda ()
+;; (system "urxvt &")
+;; (reset-main-binding)))
+;; (xbindkey-function '(e) (cmd editor))
+;; (xbindkey-function '(control e) (cmd editor)))
+
+;; ;; (xbindkey `(,modkey shift "1") (string-append "dmenu_run -p 'Run:' " dmenu-args))
+;; ;; (xbindkey `(,modkey "0") "herbstclient remove")
+;; ;; (xbindkey `(,modkey "2") "herbstclient split vertical 0.5")
+;; ;; (xbindkey `(,modkey "3") "herbstclient split horizontal 0.5")
+;; ;; (xbindkey-function `(,modkey x) X-function-map)
+;; ;; (xbindkey-function `(,modkey w) W-function-map)
+;; ;; (xbindkey-function `(,modkey s) S-function-map)
+;; ;; (xbindkey `(,modkey Return) terminal)
+;; ;; (xbindkey '(control alt l) "i3lock -c 000000")
+;; ;; (xbindkey '(XF86HomePage) "conkeror")
+;; ;; (xbindkey '(XF86Mail) "mutt")
+;; ;; (xbindkey '(XF86AudioPlay) "mpc toggle")
+;; ;; (xbindkey '(XF86AudioStop) "mpc stop")
+;; ;; (xbindkey '(XF86AudioMute) "amixer sset Master toggle")
+;; ;; (xbindkey '(XF86AudioLowerVolume) "mcp volume -5")
+;; ;; (xbindkey '(XF86AudioRaiseVolume) "mcp volume +5")
+;; ;; (xbindkey '(XF86AudioPrev) "mpc prev")
+;; ;; (xbindkey '(XF86AudioNext) "mpc next")
+;; ;; (xbindkey '(XF86Tools) "ncmpcpp")
+;; ;; (xbindkey `(,modkey b) "herbstclient focus left")
+;; ;; (xbindkey `(,modkey n) "herbstclient focus down")
+;; ;; (xbindkey `(,modkey p) "herbstclient focus up")
+;; ;; (xbindkey `(,modkey f) "herbstclient focus right"))
+
+;; (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)
+;; (xbindkey-function `(,modkey f) switch-and-run))
+
+;; (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
+;; (prefix-binding)
+
+;; ;;;_ Local Variables
+;; ;; Local Variables:
+;; ;; eval: (git-auto-commit-mode 1)
+;; ;; End:
+
+(define (first-binding)
"First binding"
- (xbindkey `(,modkey shift "1") (string-append "dmenu_run -p 'Run:' " dmenu-args))
- (xbindkey `(,modkey "0") "herbstclient remove")
- (xbindkey `(,modkey "2") "herbstclient split vertical 0.5")
- (xbindkey `(,modkey "3") "herbstclient split horizontal 0.5")
- (xbindkey-function `(,modkey x) X-function-map)
- (xbindkey-function `(,modkey w) W-function-map)
- (xbindkey-function `(,modkey s) S-function-map)
- (xbindkey `(,modkey Return) terminal)
- (xbindkey '(control alt l) "i3lock -c 000000")
- (xbindkey '(XF86HomePage) "conkeror")
- (xbindkey '(XF86Mail) "mutt")
- (xbindkey '(XF86AudioPlay) "mpc toggle")
- (xbindkey '(XF86AudioStop) "mpc stop")
- (xbindkey '(XF86AudioMute) "amixer sset Master toggle")
- (xbindkey '(XF86AudioLowerVolume) "mcp volume -5")
- (xbindkey '(XF86AudioRaiseVolume) "mcp volume +5")
- (xbindkey '(XF86AudioPrev) "mpc prev")
- (xbindkey '(XF86AudioNext) "mpc next")
- (xbindkey '(XF86Tools) "ncmpcpp")
+ (xbindkey-function prefix second-binding)
+ (xbindkey '(control mod1 l) "i3lock -c 000000")
+ (xbindkey `(,modkey period) "herbstclient cycle_monitor 1")
+ (xbindkey `(,modkey comma) "herbstclient cycle_monitor -1")
+ (xbindkey `(,modkey s) "herbstclient split vertical 0.5")
+ (xbindkey `(,modkey shift s) "herbstclient split horizontal 0.5")
+ (xbindkey `(,modkey q) "herbstclient remove")
+ (xbindkey `(,modkey o) "herbstclient cycle_all")
+ (xbindkey `(,modkey control b) "herbstclient resize left +0.05")
+ (xbindkey `(,modkey control n) "herbstclient resize down +0.05")
+ (xbindkey `(,modkey control p) "herbstclient resize up +0.05")
+ (xbindkey `(,modkey control f) "herbstclient resize right +0.05")
(xbindkey `(,modkey b) "herbstclient focus left")
(xbindkey `(,modkey n) "herbstclient focus down")
(xbindkey `(,modkey p) "herbstclient focus up")
(xbindkey `(,modkey f) "herbstclient focus right")
- (xbindkey-function `(,modkey g) reset-main-binding))
-
-(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)
- (xbindkey-function `(,modkey f) switch-and-run))
-
-(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))
+ (xbindkey `(,modkey shift b) "herbstclient shift left")
+ (xbindkey `(,modkey shift n) "herbstclient shift down")
+ (xbindkey `(,modkey shift p) "herbstclient shift up")
+ (xbindkey `(,modkey shift f) "herbstclient shift right")
+ (xbindkey `(,modkey space) "herbstclient cycle_layout 1"))
-;;;_ Main
-(main-binding)
+(define (reset-first-binding)
+ "reset first binding"
+ (ungrab-all-keys)
+ (remove-all-keys)
+ (first-binding)
+ (grab-all-keys))
+
+(define (run-terminal)
+ "Run the specified terminal program."
+ (run-command terminal)
+ (reset-first-binding))
+
+(define (run-browser)
+ "Run the specified browser."
+ (run-command browser)
+ (reset-first-binding))
+
+(define (run-editor)
+ "Run the specified terminal editor."
+ (run-command editor)
+ (reset-first-binding))
+
+(define (banish)
+ "Banish the mouse cursor to the bottom-right corner of the screen."
+ (run-command "xte 'mousemove 4000 1100'")
+ (reset-first-binding))
+
+(define (showtime)
+ "Show the time."
+ (notify (date->string (current-date) date-format))
+ (reset-first-binding))
+
+(define (exec)
+ "Run a program."
+ (run-command (string-append "dmenu_run -p 'Run:' " dmenu-args))
+ (reset-first-binding))
+
+(define (second-binding)
+ "Second binding"
+ (ungrab-all-keys)
+ (remove-all-keys)
+ (xbindkey-function 'c run-terminal)
+ (xbindkey-function 'e run-editor)
+ (xbindkey-function 'w run-browser)
+ (xbindkey-function 'z banish)
+ (xbindkey-function 'a showtime)
+ (xbindkey-function '(shift "1") exec)
+ (xbindkey-function '(control g) reset-first-binding)
+ (grab-all-keys))
-;;;_ Local Variables
-;; Local Variables:
-;; eval: (git-auto-commit-mode 1)
-;; End:
+(first-binding)