#!/bin/bash # this is a simple config for herbstluftwm function hc() { herbstclient "$@" } hc emit_hook reload # remove all existing keybindings hc keyunbind --all # keybindings Mod=Mod4 hc keybind $Mod-Shift-q quit hc keybind $Mod-Shift-r reload hc keybind $Mod-Shift-c close hc keybind $Mod-c spawn urxvt hc keybind $Mod-e spawn emacsclient -ca emacs hc keybind $Mod-w spawn conkeror # 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_index "$i" hc keybind "$Mod-Shift-$key" move_index "$i" fi done # cycle through tags hc keybind $Mod-period use_index +1 --skip-visible hc keybind $Mod-comma use_index -1 --skip-visible hc keybind $Mod-Right use_index +1 --skip-visible hc keybind $Mod-Left use_index -1 --skip-visible # 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 mouseunbind --all 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-b focus left hc keybind $Mod-n focus down hc keybind $Mod-p focus up hc keybind $Mod-f focus right hc keybind $Mod-i jumpto urgent 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 '#222222' hc set frame_border_normal_color '#101010' hc set frame_bg_normal_color '#565656' hc set frame_bg_active_color '#345F0C' hc set frame_border_width 1 hc set window_border_width 3 hc set window_border_inner_width 1 hc set window_border_normal_color '#454545' hc set window_border_active_color '#9fbc00' hc set always_show_frame 1 hc set frame_gap 4 # add overlapping window borders hc set window_gap -2 hc set frame_padding 2 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=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)' 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 hc pad 0 21