aboutsummaryrefslogtreecommitdiffstats
path: root/.config/herbstluftwm/autostart
blob: 1f18392e16b8d3201fdcc6de9138909656c9a5e5 (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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
#!/bin/bash

# define colours
bg_normal='#2d2d2d'
fg_normal='#dcdcdc'
bg_focus='#d64937'
fg_focus='#fcfcfc'

hc() {
    herbstclient "$@"
}

# always start frames max (pt. 1)
hc set default_frame_layout 2

hc emit_hook reload

xsetroot -solid '#5A8E3A'

# remove all existing keybindings
hc keyunbind --all

# keybindings
# if you have a super key you will be much happier with Mod set to Mod4
#Mod=Mod1    # Use alt as the main modifier
Mod=Mod4   # Use the super key as the main modifier

hc keybind $Mod-Shift-r reload
hc keybind $Mod-e close_or_remove

# basic movement
# focusing clients
hc keybind $Mod-h     focus left
hc keybind $Mod-j     focus down
hc keybind $Mod-k     focus up
hc keybind $Mod-l     focus right

# moving clients
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

# cycle through clients
hc keybind $Mod-d cycle  1
hc keybind $Mod-a cycle -1

# splitting frames
# create an empty frame at the specified direction
hc keybind $Mod-s chain .-. lock .-. split bottom 0.5 .-. focus -e d .-. unlock
hc keybind $Mod-v chain .-. lock .-. split right  0.5 .-. focus -e r .-. unlock
# let the current frame explode into subframes
hc keybind $Mod-Shift-space split explode

# resizing frames
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

# tags
tag_names=( {1..5} )
tag_keys=( {1..5} 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_index "$i"
        hc keybind "$Mod-Control-$key" move_index "$i"
    fi
done

# always start frames max (pt. 2)
hc set_layout max

# cycle through tags
hc keybind $Mod-period use_index +1 --skip-visible
hc keybind $Mod-comma  use_index -1 --skip-visible

# layouting
hc keybind $Mod-r remove
hc keybind $Mod-f fullscreen toggle
hc keybind $Mod-p pseudotile toggle

# mouse
hc mouseunbind --all
hc mousebind $Mod-Button1 move
hc mousebind $Mod-Button2 zoom
hc mousebind $Mod-Button3 resize

# focus
hc keybind $Mod-BackSpace   cycle_monitor
hc keybind $Mod-i jumpto urgent

################ launchers ################
hc keybind XF86PowerOff spawn mate-session-save --shutdown-dialog

# ranger
hc keybind $Mod-Shift-Control-Return spawn urxvt -e ranger /home/shmibs
hc keybind $Mod-Shift-Control-b      spawn urxvt -e ranger /home/shmibs/backdrops
hc keybind $Mod-Shift-Control-c      spawn urxvt -e ranger /home/shmibs/comics
hc keybind $Mod-Shift-Control-d      spawn urxvt -e ranger /home/shmibs/downloads
hc keybind $Mod-Shift-Control-s      spawn urxvt -e ranger /home/shmibs/desktop
hc keybind $Mod-Shift-Control-m      spawn urxvt -e ranger /home/shmibs/music
hc keybind $Mod-Shift-Control-g      spawn urxvt -e ranger /home/shmibs/games
hc keybind $Mod-Shift-Control-p      spawn urxvt -e ranger /home/shmibs/projects
hc keybind $Mod-Shift-Control-i      spawn urxvt -e ranger /home/shmibs/images
hc keybind $Mod-Shift-Control-t      spawn urxvt -e ranger /home/shmibs/thcool
hc keybind $Mod-Shift-Control-v      spawn urxvt -e ranger /home/shmibs/videos

# spawn
hc keybind $Mod-Return  spawn urxvt
hc keybind $Mod-Shift-c spawn mate-calc
hc keybind $Mod-Shift-d spawn ~/games/desura/desura
hc keybind $Mod-Shift-f spawn firefox
hc keybind $Mod-Shift-i spawn gimp
hc keybind $Mod-Shift-m spawn mathematica
hc keybind $Mod-Shift-o spawn ~/stuffs/tor/start-tor-browser
hc keybind $Mod-Shift-t spawn transmission-gtk
hc keybind $Mod-Shift-v spawn urxvt -e vim
hc keybind $Mod-Shift-w spawn urxvt -e weechat

# banshee
hc keybind $Mod-Shift-Up   spawn banshee --show
hc keybind $Mod-Shift-Down spawn banshee --hide
hc keybind $Mod-Left       spawn banshee --restart-or-previous
hc keybind $Mod-Right      spawn banshee --next
hc keybind $Mod-Down       spawn banshee --toggle-playing

# dmenu
hc keybind $Mod-0 spawn dmenu_run -h 18 -nb $bg_normal -nf $fg_normal  -sb $bg_focus  -sf $fg_focus

############## end launchers ##############


# borders
hc set frame_border_normal_color $bg_normal
hc set frame_border_active_color $bg_focus
hc set frame_bg_normal_color $bg_normal
hc set frame_bg_active_color $bg_focus
hc set window_border_normal_color $bg_normal
hc set window_border_active_color $bg_focus
hc set frame_border_width 2
hc set frame_border_inner_width 0
hc set window_border_width 2
hc set window_border_inner_width 0
hc set always_show_frame 0
hc set frame_bg_transparent 1
hc set frame_normal_opacity 100
hc set frame_active_opacity 100
hc set frame_transparent_width 0
hc set frame_gap 0
hc set frame_padding 0
hc set smart_frame_surroundings 1
hc set smart_window_surroundings 1

# rules
hc unrule -F
hc rule focus=on 
# unmanage docs, dropdowns, etc
hc rule windowtype~'_NET_WM_WINDOW_TYPE_(NOTIFICATION|DOCK)' manage=off
# set apppropriate things to pseudotile
hc rule windowtype~'_NET_WM_WINDOW_TYPE_(DIALOG|UTILITY|SPLASH)' pseudotile=on
hc rule class~'(Mate-calc|Pcsx2)' pseudotile=on

# unlock, just to be sure
hc unlock

herbstclient set tree_style '╾│ ├└╼─┐'

# do multi monitor setup here, e.g.:
# hc set_monitors 1280x1024+0+0 1280x1024+1280+0
# or simply:
# hc detect_monitors

# find the panel
panel=~/.config/herbstluftwm/panel.sh
[ -x "$panel" ] || panel=/etc/xdg/herbstluftwm/panel.sh
for monitor in $(herbstclient list_monitors | cut -d: -f1) ; do
    # start it on each monitor
    "$panel" $monitor &
done

# add a tray
tray=~/.config/herbstluftwm/tray.sh
if [ -x "$tray" ]; then
	"$tray"
fi