summaryrefslogtreecommitdiffstats
path: root/.config/herbstluftwm
diff options
context:
space:
mode:
authorGravatar Tom Willemsen2011-11-09 19:50:09 +0100
committerGravatar Tom Willemsen2011-11-09 19:50:09 +0100
commit23b71afda0e63f30ae82b400c0275b3c44ff09d0 (patch)
tree6e277d2c8356fe0f20ddb4c24f66f39971743797 /.config/herbstluftwm
parent139c1e3ef37ed06bdb5c70bff139fb6db1bd0293 (diff)
downloaddotfiles-23b71afda0e63f30ae82b400c0275b3c44ff09d0.tar.gz
dotfiles-23b71afda0e63f30ae82b400c0275b3c44ff09d0.zip
Rewrote autosart in guile
Diffstat (limited to '.config/herbstluftwm')
-rwxr-xr-x.config/herbstluftwm/autostart203
1 files changed, 113 insertions, 90 deletions
diff --git a/.config/herbstluftwm/autostart b/.config/herbstluftwm/autostart
index b206e41..69ee36d 100755
--- a/.config/herbstluftwm/autostart
+++ b/.config/herbstluftwm/autostart
@@ -1,90 +1,113 @@
-#!/bin/bash
-
-# this is a simple config for herbstluftwm
-
-function hc() {
- herbstclient "$@"
-}
-
-xsetroot -solid '#000000'
-
-# keybindings
-Mod=Mod4
-hc keybind $Mod-Mod1-q quit
-hc keybind $Mod-Shift-r reload
-hc keybind $Mod-Shift-c close
-hc keybind $Mod-Return spawn urxvt
-hc keybind $Mod-d spawn dmenu_run
-
-# tags
-TAG_NAMES=( {1..9} )
-TAG_KEYS=( {1..9} 0 )
-
-hc rename default "${TAG_NAMES[0]}" || true
-for i in ${!TAG_NAMES[@]} ; do
- hc add "${TAG_NAMES[$i]}"
- key="${TAG_KEYS[$i]}"
- if ! [ -z "$key" ] ; then
- hc keybind "$Mod-$key" use "${TAG_NAMES[$i]}"
- hc keybind "$Mod-Shift-$key" move "${TAG_NAMES[$i]}"
- fi
-done
-
-# layout
-hc add_monitor 1280x1024+1680+0 2
-hc move_monitor 0 1680x1050+0+0
-
-# layouting
-hc keybind $Mod-r remove
-hc keybind $Mod-space cycle_layout 1
-hc keybind $Mod-u split vertical 0.5
-hc keybind $Mod-o split horizontal 0.5
-hc keybind $Mod-s floating toggle
-hc keybind $Mod-f fullscreen toggle
-hc keybind $Mod-p pseudotile toggle
-
-# resizing
-RESIZESTEP=0.05
-hc keybind $Mod-Control-h resize left +$RESIZESTEP
-hc keybind $Mod-Control-j resize down +$RESIZESTEP
-hc keybind $Mod-Control-k resize up +$RESIZESTEP
-hc keybind $Mod-Control-l resize right +$RESIZESTEP
-
-# mouse
-hc mousebind $Mod-Button1 move
-hc mousebind $Mod-Button2 resize
-hc mousebind $Mod-Button3 zoom
-
-# focus
-hc keybind $Mod-BackSpace cycle_monitor
-hc keybind $Mod-Tab cycle_all +1
-hc keybind $Mod-Shift-Tab cycle_all -1
-hc keybind $Mod-c cycle
-hc keybind $Mod-h focus left
-hc keybind $Mod-j focus down
-hc keybind $Mod-k focus up
-hc keybind $Mod-l focus right
-hc keybind $Mod-Shift-h shift left
-hc keybind $Mod-Shift-j shift down
-hc keybind $Mod-Shift-k shift up
-hc keybind $Mod-Shift-l shift right
-
-# colors
-hc set frame_border_active_color '#49351D'
-hc set frame_border_normal_color '#73532D'
-hc set frame_bg_normal_color '#BD9768'
-hc set frame_bg_active_color '#BD8541'
-hc set frame_border_width 2
-hc set window_border_width 2
-hc set window_border_normal_color '#AE8451'
-hc set window_border_active_color '#F6FF00'
-
-# rules
-hc unrule -F
-#hc rule class=XTerm tag=3 # move all xterms to tag 3
-hc rule focus=off # normally do not focus new clients
-# give focus to most common terminals
-hc rule class~'(.*[Rr]xvt.*|.*[Tt]erm|Konsole)' focus=on
-
-# panel
-/etc/xdg/herbstluftwm/panel.sh
+#!/usr/bin/guile
+!#
+
+(define (hc command)
+ (system (string-append "herbstclient " command)))
+
+(define (keybind modkey key command)
+ (display (string-append "keybind " modkey "-" key " " command "\n"))
+ (hc (string-append "keybind " modkey "-" key " " command)))
+
+(define (mousebind modkey button command)
+ (hc (string-append "mousebind " modkey "-" button " " command)))
+
+(define (add-tag name)
+ (hc (string-append "add " name)))
+
+(define (set variable value)
+ (hc (string-append "set " variable " " value)))
+
+(define (unrule)
+ (hc "unrule -F"))
+
+(define (rule spec)
+ (hc (string-append "rule " spec)))
+
+(define modkey "Mod4")
+
+(define (create-tag name)
+ (add-tag name)
+ (keybind modkey name (string-append "use " name))
+ (keybind modkey
+ (string-append "Shift-" name)
+ (string-append "move " name)))
+
+;; keybindings
+(keybind modkey "Mod1-q" "quit")
+(keybind modkey "Shift-r" "reload")
+(keybind modkey "Shift-c" "close")
+(keybind modkey "Return" "spawn urxvt")
+(keybind modkey "d" "spawn dmenu_run")
+
+;; tags
+(hc "rename default 1")
+(for-each create-tag '("1" "2" "3" "4" "5" "6" "7" "8" "9"))
+
+;; layout
+(hc "move_monitor 0 1680x1050+0+0")
+(hc "add_monitor 1280x1024+1680+0 2")
+
+;; layouting
+(keybind modkey "r" "remove")
+(keybind modkey "space" "cycle_layout 1")
+(keybind modkey "u" "split vertical 0.5")
+(keybind modkey "o" "split horizontal 0.5")
+(keybind modkey "s" "floating toggle")
+(keybind modkey "f" "fullscreen toggle")
+(keybind modkey "p" "pseudotile toggle")
+
+;; resizing
+(define resizestep "0.05")
+(keybind modkey "Control-h" (string-append "resize left +" resizestep))
+(keybind modkey "Control-j" (string-append "resize down +" resizestep))
+(keybind modkey "Control-k" (string-append "resize up +" resizestep))
+(keybind modkey "Control-l" (string-append "resize right +" resizestep))
+
+;; mouse
+(mousebind modkey "Button1" "move")
+(mousebind modkey "Button2" "resize")
+(mousebind modkey "Button3" "zoom")
+
+;; focus
+(keybind modkey "BackSpace" "cycle_monitor")
+(keybind modkey "Tab" "cycle_all +1")
+(keybind modkey "Shift-Tab" "cycle_all -1")
+(keybind modkey "c" "cycle")
+(keybind modkey "h" "focus left")
+(keybind modkey "j" "focus down")
+(keybind modkey "k" "focus up")
+(keybind modkey "l" "focus right")
+(keybind modkey "Shift-h" "shift left")
+(keybind modkey "Shift-j" "shift down")
+(keybind modkey "Shift-k" "shift up")
+(keybind modkey "Shift-l" "shift right")
+
+;; colors
+(display "set frame_border_active_color \\#49351D\n")
+(set "frame_border_active_color" "\\#49351D")
+(display "set frame_border_normal_color\n")
+(set "frame_border_normal_color" "\\#73532D")
+(display "set frame_bg_normal_color\n")
+(set "frame_bg_normal_color" "\\#BD9768")
+(display "set frame_bg_active_color\n")
+(set "frame_bg_active_color" "\\#BD8541")
+(display "set frame_border_width\n")
+(set "frame_border_width" "2")
+(display "set window_border_width\n")
+(set "window_border_width" "2")
+(display "set window_border_normal_color\n")
+(set "window_border_normal_color" "\\#AE8451")
+(display "set window_border_active_color\n")
+(set "window_border_active_color" "\\#F6FF00")
+
+;; rules
+(display "unrule\n")
+(unrule)
+(display "rule focus=off\n")
+(rule "focus=off") ; normally do not focus new clients
+(display "rule focus terminal\n")
+(rule "class~'(.*[Rr]xvt.*|.*[Tt]erm|Konsole)' focus=on")
+
+;; Show panel
+
+(system "/etc/xdg/herbstluftwm/panel.sh &")