#!/bin/bash # this is a simple config for herbstluftwm # Update the $PATH so that ~/.config/herbstluftwm and /etc/xdg/hebrstluftwm are # searched (in that order) too. Useful for splitting the config file into # multiple scripts, and to include small utility scripts. PATH="$XDG_CONFIG_HOME/herbstluftwm:$XDG_CONFIG_PATH/herbstluftwm:$PATH" function hc() { herbstclient "$@" } hc emit_hook reload export HC_BACKGROUND='#02080F' xsetroot -solid "$HC_BACKGROUND" #feh --bg-fill $HOME/annat/diverse/wallpapers/internet-nodes.jpg #feh --bg-fill "$HOME/pics/copland-os/copland-os_768.png" Mod=Mod4 Term=pangoterm # 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]}" done ##-- Keybindings ---------------------------------------------------- # remove all existing keybindings hc keyunbind --all # General window management hc keybind $Mod-Shift-q quit hc keybind $Mod-Shift-r reload hc keybind $Mod-Shift-c close hc keybind $Mod-Return spawn "$Term" hc keybind $Mod-r emit_hook toggle_runner # Setup tag bindings #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 # cycling #hc keybind $Mod-Right use_index +1 --skip-visible #hc keybind $Mod-Left use_index -1 --skip-visible hc keybind $Mod-c cycle # layouting hc keybind $Mod-d remove hc keybind $Mod-space cycle_layout +1 hc keybind $Mod-Shift-space cycle_layout -1 hc keybind $Mod-minus split vertical 0.5 hc keybind $Mod-v split horizontal 0.5 hc keybind $Mod-m fullscreen toggle hc keybind $Mod-f floating toggle hc keybind $Mod-p pseudotile toggle # resizing RESIZESTEP=0.05 hc keybind $Mod-Control-h resize left +$RESIZESTEP hc keybind $Mod-Control-t resize down +$RESIZESTEP hc keybind $Mod-Control-n resize up +$RESIZESTEP hc keybind $Mod-Control-s 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 use_previous #hc keybind $Mod-Tab cycle_all +1 #hc keybind $Mod-Shift-Tab cycle_all -1 hc keybind $Mod-c cycle hc keybind $Mod-h focus left hc keybind $Mod-t focus down hc keybind $Mod-n focus up hc keybind $Mod-s focus right #hc keybind $Mod-i jumpto urgent hc keybind $Mod-a jumpto urgent hc keybind $Mod-Shift-h shift left hc keybind $Mod-Shift-t shift down hc keybind $Mod-Shift-n shift up hc keybind $Mod-Shift-s shift right ### External/Etc hc keybind XF86MonBrightnessDown spawn backlight.sh - 1 hc keybind XF86MonBrightnessUp spawn backlight.sh + 1 hc keybind $Mod-F10 spawn scrotnow.sh hc keybind XF86Display detect_monitors # Volume hc keybind XF86AudioMute spawn mute_toggle hc keybind XF86AudioLowerVolume spawn vol_down hc keybind XF86AudioRaiseVolume spawn vol_up # XF86Display # XF86Launch3 # Samsung #hc keybind XF86Launch1 spawn \ # samsung-tools --show-notify --quiet --backlight hotkey #hc keybind XF86Launch2 spawn \ # samsung-tools --show-notify --quiet --bluetooth hotkey # MPC hc keybind $Mod-Alt-h spawn mpc toggle hc keybind $Mod-Alt-t spawn mpc prev hc keybind $Mod-Alt-n spawn mpc next ##-- Options -------------------------------------------------------- # colors #hc set frame_border_active_color '#994422' #hc set frame_border_normal_color '#101010' #hc set frame_bg_active_color '#345F0C' #hc set window_border_normal_color '#454545' #hc set window_border_active_color '#9fbc00' #hc set window_border_active_color '#00ff00' hc set frame_border_active_color '#CC6600' hc set window_border_active_color '#CC6600' hc set frame_bg_active_color '#080808' hc set frame_border_normal_color '#222222' hc set window_border_normal_color '#222222' hc set frame_bg_normal_color '#111111' #hc set frame_border_active_color '#3366AA' #hc set window_border_active_color '#3366AA' #hc set frame_bg_active_color '#000000' #hc set frame_border_normal_color '#021433' #hc set window_border_normal_color '#222222' #hc set frame_bg_normal_color '#111111' hc set focus_follows_shift 1 hc set frame_bg_transparent 1 hc set frame_border_width 1 hc set window_border_width 1 hc set window_border_inner_width 1 hc set always_show_frame 0 hc set frame_gap 8 # add overlapping window borders hc set window_gap -1 hc set frame_padding 0 hc set smart_window_surroundings 1 hc set smart_frame_surroundings 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)' tag=float 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 '╾│ ├└╼─┐' herbstclient set tree_style '⊙│ ├╰»─╮' # do multi monitor setup here, e.g.: # hc remove_monitor 1 # hc move_monitor 0 1280x1024+0+0 # hc add_monitor 1280x1024+1280+0 # auto-detect connected monitors 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 # Prepare a (virtual) monitor + tag for floating windows (we do this after the # panel etc. have been added, because we don't want these for the # floating-windows monitor). hc lock hc tag float hc floating float on #hc remove_monitor 1 hc add_monitor 1366x768+0+0 float 16 hc unlock