summaryrefslogtreecommitdiff
path: root/.config/herbstluftwm/autostart
blob: 7bc7a0201bc234b3b58a69eb669b7e21903aa00d (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
#!/usr/bin/env bash

# this is a simple config for herbstluftwm

hc() {
    herbstclient "$@"
}

hc emit_hook reload

# set background color / wallpaper
xsetroot -solid '#000000'
feh --bg-scale /mnt/files/Pictures/background.png

# remove all existing keybindings
hc keyunbind --all

# keybindings
Mod=Mod1    # Alt as Mod key
Super=Mod4   # Super as Super key

# reload window manager
hc keybind $Mod-Shift-r reload
# close focused client
hc keybind $Mod-F4 close
# open terminal (alacritty)
hc keybind $Mod-Control-t spawn alacritty

# moving clients in tiling and floating mode
hc keybind $Mod-Shift-Left  shift left
hc keybind $Mod-Shift-Down  shift down
hc keybind $Mod-Shift-Up    shift up
hc keybind $Mod-Shift-Right shift 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

# 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
        # switch to tag i
        hc keybind "$Super-$key" use_index "$i"
        # move focused client to tag i
        hc keybind "$Super-Shift-$key" move_index "$i"
    fi
done

# cycle through tags
hc keybind $Super-Tab use_index +1 --skip-visible
hc keybind $Super-Shift-Tab  use_index -1 --skip-visible

# fullscreen
hc keybind $Mod-f fullscreen toggle

# layout
set default_frame_layout grid

# cycle through layouts
hc keybind $Super-l                                                           \
    or , and . compare tags.focus.curframe_wcount = 2                   \
    . cycle_layout +1 vertical horizontal max vertical grid    \
    , cycle_layout +1

# mouse
hc mouseunbind --all

# cycle through clients
hc keybind $Mod-Tab cycle
hc keybind $Mod-Shift-Tab cycle -1

# theme
hc attr theme.tiling.reset 1
hc attr theme.floating.reset 1
hc attr theme.title_height 0
hc attr theme.active.color '#929be5'
hc attr theme.normal.color '#222432'
hc attr theme.urgent.color '#490404'
hc attr theme.inner_width 0
hc attr theme.border_width 1
hc attr theme.background_color '#141414'

hc set window_gap 10
hc set frame_padding 0
hc set smart_window_surroundings off
hc set smart_frame_surroundings on
hc set mouse_recenter_gap 0
hc set frame_bg_transparent true

# rules
hc unrule -F
hc rule focus=on # normally focus new clients
hc rule windowtype~'_NET_WM_WINDOW_TYPE_(DIALOG|UTILITY|SPLASH)' floating=on
hc rule windowtype='_NET_WM_WINDOW_TYPE_DIALOG' focus=on
hc rule windowtype~'_NET_WM_WINDOW_TYPE_(NOTIFICATION|DOCK|DESKTOP)' manage=off
hc rule title="Origin" tag=9 focus=off
hc rule title="Wine System Tray" tag=9 focus=off

# unlock, just to be sure
hc unlock

# launch polybar
~/.config/polybar/launch.sh

xcompmgr -cfnS
fcitx5 -d &