summaryrefslogtreecommitdiffstats
path: root/.config/herbstluftwm/autostart
blob: 6a4a3be87c63f4b2a6d4822f5e2e9490761d764a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#!/usr/bin/guile # -*- eval: (git-auto-commit-mode 1) -*-
!#

(define (hc command)
  "Calls the herbstclient program to execute a command"
  (system (string-append "herbstclient " command)))

(define (keybind modkey key command)
  "Binds a keyboard key to a command, also prints it for testing
purposes"
  (display (string-append "keybind " modkey "-" key " " command "\n"))
  (hc (string-append "keybind " modkey "-" key " " command)))

(define (mousebind modkey button command)
  "Binds a mouse button to a command"
  (hc (string-append "mousebind " modkey "-" button " " command)))

(define (add-tag name)
  "Create a new tag"
  (hc (string-append "add " name)))

(define (set variable value)
  "Set the value of a variable"
  (hc (string-append "set " variable " " value)))

(define (unrule)
  "Clear all rules from memory"
  (hc "unrule -F"))

(define (rule spec)
  "Add a new rule"
  (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)))

(define (dmenu-command fn nb nf)
  (string-append "dmenu_run -fn '" fn "' -nb '" nb "' -nf '" nf "'"))

(define (set-layout layout)
  (display (string-append "set_layout " layout "\n"))
  (hc (string-append "set_layout " layout)))

;; colors
(set "frame_bg_normal_color"       "\\#0c191c")
(set "frame_bg_active_color"       "\\#000000")
(set "frame_border_width"          "0")
(set "window_border_width"         "1")
(set "window_border_normal_color"  "\\#0c191c")
(set "window_border_active_color"  "\\#15abc3")

;; other settings
(set "default_frame_layout"        "2")
(set-layout "max")

;; keybindings
(keybind modkey "Mod1-q"  "quit")
(keybind modkey "Mod1-r" "reload")
(keybind modkey "Shift-Mod1-c" "close")
(keybind modkey "Return"  "spawn urxvt")
(keybind modkey "r"
         (string-append
          "spawn "
          (dmenu-command
           "-misc-tamsyn-medium-r-normal-*-14-*-*-*-*-*-iso8859-*"
           "#000000" "#15abc3")))
(keybind "Control" "Mod1-l" "spawn i3lock -c 000000")
(keybind modkey "t" "spawn ~/bin/hlwm/capture-todo")
(keybind modkey "Shift-t" "spawn ~/bin/hlwm/show-todo")

;; tags
(hc "rename default q")
(for-each create-tag '("q" "w" "e" "a" "s" "d" "z" "x" "c"))

;; layout
(hc "remove_monitor 1")
(hc "move_monitor 0 1680x1050+0+0")
(hc "add_monitor 1280x1024+1680+0 w")

;; layouting
(keybind modkey "Shift-r" "remove")
(keybind modkey "space"   "cycle_layout 1")
(keybind modkey "u"       "split vertical 0.5")
(keybind modkey "o"       "split horizontal 0.5")
(keybind modkey "Mod1-f"  "floating toggle")
(keybind modkey "Mod1-Shift-f" "fullscreen toggle")
(keybind modkey "Mod1-p" "pseudotile toggle")

;; resizing
(define resizestep "0.05")
(keybind modkey "Control-b" (string-append "resize left +"  resizestep))
(keybind modkey "Control-n" (string-append "resize down +"  resizestep))
(keybind modkey "Control-p" (string-append "resize up +"    resizestep))
(keybind modkey "Control-f" (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 "Mod1-c"     "cycle")
(keybind modkey "b"          "focus left")
(keybind modkey "n"          "focus down")
(keybind modkey "p"          "focus up")
(keybind modkey "f"          "focus right")
(keybind modkey "Shift-b"    "shift left")
(keybind modkey "Shift-n"    "shift down")
(keybind modkey "Shift-p"    "shift up")
(keybind modkey "Shift-f"    "shift right")

;; rules
(unrule)
(rule "focus=on")                 ; normally do not focus new clients
(rule "windowtype=_NET_WM_WINDOW_TYPE_DIALOG focus=on pseudotile=on")
(rule "class=Xephyr pseudotile=on")

;; Show panel

(system "~/.config/herbstluftwm/panel.sh &")