Created
June 13, 2014 17:36
-
-
Save xero/4d7e8408f094a595848e to your computer and use it in GitHub Desktop.
herbstluftwm - autostart *wip
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# ██ ██ ██ ██ ████ ██ | |
# ░██ ░██ ░██ ░██ ░██░ ░██ | |
# ░██ █████ ██████░██ ██████ ██████ ░██ ██ ██ ██████ ██████ | |
# ░██████ ██░░░██░░██░░█░██████ ██░░░░ ░░░██░ ░██░██ ░██░░░██░ ░░░██░ | |
# ░██░░░██░███████ ░██ ░ ░██░░░██░░█████ ░██ ░██░██ ░██ ░██ ░██ | |
# ░██ ░██░██░░░░ ░██ ░██ ░██ ░░░░░██ ░██ ░██░██ ░██ ░██ ░██ | |
# ░██ ░██░░██████░███ ░██████ ██████ ░░██ ███░░██████ ░██ ░░██ | |
# ░░ ░░ ░░░░░░ ░░░ ░░░░░ ░░░░░░ ░░ ░░░ ░░░░░░ ░░ ░░ | |
hc() { | |
herbstclient "$@" | |
} | |
hc emit_hook reload | |
#xsetroot -solid '#5A8E3A' | |
# remove all existing keybindings | |
hc keyunbind --all | |
#if reloading | |
killall stalonetray | |
# keybindings | |
Mod=Mod4 | |
Alt=Mod1 | |
hc keybind $Mod-Shift-q quit | |
hc keybind $Mod-Shift-r reload | |
hc keybind $Mod-Shift-c close | |
hc keybind $Mod-Return spawn urxvtc | |
# basic movement | |
# focusing clients | |
hc keybind $Mod-Left focus left | |
hc keybind $Mod-Down focus down | |
hc keybind $Mod-Up focus up | |
hc keybind $Mod-Right focus right | |
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-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 | |
# splitting frames | |
# create an empty frame at the specified direction | |
hc keybind $Mod-u split bottom 0.5 #row | |
hc keybind $Mod-o split right 0.5 #column | |
# let the current frame explode into subframes | |
hc keybind $Mod-Control-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 | |
hc keybind $Mod-Control-Left resize left +$resizestep | |
hc keybind $Mod-Control-Down resize down +$resizestep | |
hc keybind $Mod-Control-Up resize up +$resizestep | |
hc keybind $Mod-Control-Right resize right +$resizestep | |
# custom | |
#hc keybind $Mod-w spawn gmrun | |
hc keybind $Mod-w spawn dmenu_run | |
# tags | |
tag_names=( 0001 0010 0011 0100 0101 0110 0111 1000 1001 ) | |
tag_keys=( {1..9} 0 ) | |
# set up normal tags | |
hc rename default "${tag_names[0]}" || true | |
for i in ${!tag_names[@]} ; do | |
hc add "${tag_names[$i]}" | |
done | |
# cycle through tags | |
hc keybind $Mod-$Alt-Left use_index -1 --skip-visible | |
hc keybind $Mod-$Alt-Right use_index +1 --skip-visible | |
# layouting | |
hc keybind $Mod-r remove | |
hc keybind $Mod-space cycle_layout 1 | |
hc keybind $Mod-s floating toggle | |
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-Tab cycle_all +1 | |
hc keybind $Mod-Shift-Tab cycle_all -1 | |
hc keybind $Mod-c cycle | |
hc keybind $Mod-i jumpto urgent | |
# theme | |
hc attr theme.tiling.reset 1 | |
hc attr theme.floating.reset 1 | |
hc set frame_border_active_color '#222222' | |
hc set frame_border_normal_color '#101010' | |
hc set frame_bg_normal_color '#000000' | |
hc set frame_bg_active_color '#454545' | |
hc set frame_border_width 0 | |
hc set always_show_frame 0 | |
hc set frame_bg_transparent 1 | |
hc set frame_transparent_width 5 | |
hc set frame_gap 8 | |
hc attr theme.active.color '#6A8C8C' | |
hc attr theme.normal.color '#000000' | |
hc attr theme.urgent.color '#660000' | |
hc attr theme.inner_width 1 | |
hc attr theme.inner_color black | |
hc attr theme.border_width 3 | |
hc attr theme.floating.border_width 4 | |
hc attr theme.floating.outer_width 1 | |
hc attr theme.floating.outer_color black | |
hc attr theme.active.inner_color '#3E4A00' | |
hc attr theme.active.outer_color '#3E4A00' | |
hc attr theme.background_color '#141414' | |
hc set window_gap 0 | |
hc set frame_padding 0 | |
hc set smart_window_surroundings 0 | |
hc set smart_frame_surroundings 1 | |
hc set mouse_recenter_gap 0 | |
# rules | |
hc unrule -F | |
#hc rule class=XTerm tag=3 # move all xterms to tag 3 | |
hc rule focus=on # normally focus new clients | |
#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 | |
hc rule windowtype~'_NET_WM_WINDOW_TYPE_(DIALOG|UTILITY|SPLASH)' pseudotile=on | |
hc rule windowtype='_NET_WM_WINDOW_TYPE_DIALOG' focus=on | |
hc rule windowtype~'_NET_WM_WINDOW_TYPE_(NOTIFICATION|DOCK|DESKTOP)' manage=off | |
# 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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment