|
|
@@ -0,0 +1,189 @@ |
|
|
|
#!/usr/bin/env zsh |
|
|
|
|
|
|
|
# this is a simple config for herbstluftwm |
|
|
|
|
|
|
|
hc() { |
|
|
|
herbstclient $@ |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
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-q quit |
|
|
|
hc keybind $Mod-Shift-r reload |
|
|
|
hc keybind $Mod-Shift-c close |
|
|
|
hc keybind $Mod-Return spawn urxvt |
|
|
|
|
|
|
|
# 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 |
|
|
|
hc keybind $Mod-o split right 0.5 |
|
|
|
# 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 |
|
|
|
|
|
|
|
# tags |
|
|
|
|
|
|
|
tags=( 1 2 3 4 5 6 7 8 9 0 ) |
|
|
|
|
|
|
|
hc rename default $tags[0] || true |
|
|
|
|
|
|
|
for i in $tags; do |
|
|
|
hc add $i |
|
|
|
if ! [ -z $i ] ; then |
|
|
|
hc keybind $Mod-$i use $i |
|
|
|
hc keybind $Mod-Shift-$i move $i |
|
|
|
fi |
|
|
|
done |
|
|
|
|
|
|
|
# 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-s floating toggle |
|
|
|
hc keybind $Mod-f fullscreen toggle |
|
|
|
hc keybind $Mod-p pseudotile toggle |
|
|
|
# The following cycles through the available layouts within a frame, but skips |
|
|
|
# layouts, if the layout change wouldn't affect the actual window positions. |
|
|
|
# I.e. if there are two windows within a frame, the grid layout is skipped. |
|
|
|
hc keybind $Mod-space \ |
|
|
|
or , and . compare tags.focus.curframe_wcount = 2 \ |
|
|
|
. cycle_layout +1 vertical horizontal max vertical grid \ |
|
|
|
, cycle_layout +1 |
|
|
|
|
|
|
|
# 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 |
|
|
|
|
|
|
|
hc keybind $Mod-d spawn dmenu_run_hlwm |
|
|
|
|
|
|
|
# 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 '#565656' |
|
|
|
hc set frame_bg_active_color '#345F0C' |
|
|
|
hc set frame_border_width 1 |
|
|
|
hc set always_show_frame 1 |
|
|
|
hc set frame_bg_transparent 1 |
|
|
|
hc set frame_transparent_width 5 |
|
|
|
hc set frame_gap 20 |
|
|
|
|
|
|
|
hc attr theme.active.color '#9fbc00' |
|
|
|
hc attr theme.normal.color '#454545' |
|
|
|
hc attr theme.urgent.color orange |
|
|
|
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 0 |
|
|
|
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 |
|
|
|
|
|
|
|
hc set tree_style '╾│ ├└╼─┐' |
|
|
|
|
|
|
|
# unlock, just to be sure |
|
|
|
hc unlock |
|
|
|
|
|
|
|
# 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 |
|
|
|
|
|
|
|
echo 4285 > /sys/class/backlight/intel_backlight/brightness |
|
|
|
xsetbg -zoom 150 ~/Pictures/mandelbrot.png |
|
|
|
~/Scripts/float_xinput_device.sh "Ideapad extra buttons" |
|
|
|
~/Scripts/float_xinput_device.sh "AT Translated Set 2 keyboard" |
|
|
|
~/Scripts/float_xinput_device.sh "Touchpad" |
|
|
|
pidof dunst |
|
|
|
case "$?" in |
|
|
|
1) |
|
|
|
dunst & |
|
|
|
;; |
|
|
|
esac |
|
|
|
pidof battery |
|
|
|
case "$?" in |
|
|
|
1) |
|
|
|
~/Scripts/battery & |
|
|
|
;; |
|
|
|
esac |