#!/usr/bin/env zsh source ~/.config/init/vars # always start frames max (pt. 1) hc set default_frame_layout 2 hc set_layout max hc set tree_style '╾│ ├└╼─┐' hc emit_hook reload ########### # THEME # ########### hc set frame_border_normal_color $bg_normal hc set frame_border_active_color $bg_focus hc set frame_bg_normal_color $bg_normal hc set frame_bg_active_color $bg_focus hc set window_border_normal_color $bg_normal hc set window_border_active_color $bg_focus hc set frame_border_width 2 hc set frame_border_inner_width 0 hc set window_border_width 2 hc set window_border_inner_width 0 hc set always_show_frame 0 hc set frame_bg_transparent 1 hc set frame_normal_opacity 100 hc set frame_active_opacity 100 hc set frame_transparent_width 0 hc set frame_gap 0 hc set frame_padding 0 hc set smart_frame_surroundings 1 hc set smart_window_surroundings 1 ################# # KEYBINDINGS # ################# # remove all existing keybindings hc keyunbind --all # keybindings hc keybind Mod4-Shift-r reload hc keybind Mod4-e close_or_remove # basic movement # focusing clients hc keybind Mod4-h focus left hc keybind Mod4-j focus down hc keybind Mod4-k focus up hc keybind Mod4-l focus right # moving clients hc keybind Mod4-Shift-h shift left hc keybind Mod4-Shift-j shift down hc keybind Mod4-Shift-k shift up hc keybind Mod4-Shift-l shift right # cycle through clients hc keybind Mod4-d cycle 1 hc keybind Mod4-a cycle -1 # splitting frames # create an empty frame at the specified direction hc keybind Mod4-s chain .-. lock .-. split bottom 0.5 .-. focus -e d .-. unlock hc keybind Mod4-v chain .-. lock .-. split right 0.5 .-. focus -e r .-. unlock # create an empty frame and shift the currently focused client into it hc keybind Mod4-Control-s chain .-. lock .-. split bottom 0.5 .-. shift down .-. unlock hc keybind Mod4-Control-v chain .-. lock .-. split right 0.5 .-. shift right .-. unlock # let the current frame explode into subframes hc keybind Mod4-Shift-space split explode # resizing frames resizestep=0.04 hc keybind Mod4-Control-h resize left +$resizestep hc keybind Mod4-Control-j resize down +$resizestep hc keybind Mod4-Control-k resize up +$resizestep hc keybind Mod4-Control-l resize right +$resizestep # tags tag_names=( {1..5} ) hc rename default $tag_names[1] || true for ((i=1; i <= $#tag_names; i++)) do hc add $tag_names[$i] hc keybind "Mod4-$i" use_index $(($i-1)) hc keybind "Mod4-Control-$i" move_index $(($i-1)) done # cycle through tags hc keybind Mod4-n use_index +1 --skip-visible hc keybind Mod4-p use_index -1 --skip-visible # jump to last used tag hc keybind Mod4-Escape use_previous # layouting hc keybind Mod4-t pseudotile toggle hc keybind Mod4-f fullscreen toggle # mouse hc mouseunbind --all hc mousebind Mod4-Button1 move hc mousebind Mod4-Button2 zoom hc mousebind Mod4-Button3 resize # focus hc keybind Mod4-BackSpace cycle_monitor hc keybind Mod4-i jumpto urgent ## launchers #pass hc keybind Mod4-x spawn ~/.config/herbstluftwm/pass.sh hc keybind Mod4-Shift-x spawn ~/.config/herbstluftwm/pass.sh -f #scrot-ing hc keybind Print spawn ~/.config/herbstluftwm/maim.sh hc keybind Shift-Print spawn ~/.config/herbstluftwm/maim.sh -s hc keybind Control-Print spawn ~/.config/herbstluftwm/maim.sh -m clipboard hc keybind Shift-Control-Print spawn ~/.config/herbstluftwm/maim.sh -s -m clipboard hc keybind Mod4-Print spawn ~/.config/herbstluftwm/maim.sh -m send hc keybind Mod4-Shift-Print spawn ~/.config/herbstluftwm/maim.sh -s -m send # ranger hc keybind Mod4-Shift-Control-Return spawn urxvt -name "ranger" -e ranger ~ hc keybind Mod4-Shift-Control-b spawn urxvt -name "ranger" -e ranger ~/documents/books hc keybind Mod4-Shift-Control-c spawn urxvt -name "ranger" -e ranger ~/documents/comics hc keybind Mod4-Shift-Control-d spawn urxvt -name "ranger" -e ranger ~/downloads hc keybind Mod4-Shift-Control-g spawn urxvt -name "ranger" -e ranger ~/games hc keybind Mod4-Shift-Control-i spawn urxvt -name "ranger" -e ranger ~/images hc keybind Mod4-Shift-Control-m spawn urxvt -name "ranger" -e ranger ~/music hc keybind Mod4-Shift-Control-n spawn urxvt -name "ranger" -e ranger ~/documents/manga hc keybind Mod4-Shift-Control-p spawn urxvt -name "ranger" -e ranger ~/projects hc keybind Mod4-Shift-Control-s spawn urxvt -name "ranger" -e ranger ~/desktop hc keybind Mod4-Shift-Control-r spawn urxvt -name "ranger" -e ranger ~/romz hc keybind Mod4-Shift-Control-t spawn urxvt -name "ranger" -e ranger ~/thcool hc keybind Mod4-Shift-Control-v spawn urxvt -name "ranger" -e ranger ~/videos hc keybind Mod4-Shift-Control-w spawn urxvt -name "ranger" -e ranger ~/documents/writing # grab colour to clipboard hc keybind Mod4-c spawn ~/.config/herbstluftwm/colourgrab.sh # click hc keybind Mod4-w spawn xdotool click 1 # spawn hc keybind Mod4-Return spawn urxvt hc keybind Mod4-Shift-f spawn firejail --netfilter=/etc/firejail/nolocal.net firefox hc keybind Mod4-Shift-g spawn gwaei hc keybind Mod4-Shift-i spawn gimp hc keybind Mod4-Shift-m spawn /usr/lib/mozc/mozc_tool --mode=hand_writing hc keybind Mod4-Shift-n spawn urxvt -name "notes" -e $EDITOR ~/notes hc keybind Mod4-Shift-o spawn ~/yolo/tor/start-tor-browser hc keybind Mod4-Shift-t spawn transmission-gtk hc keybind Mod4-Shift-v spawn urxvt -name $EDITOR -e $EDITOR hc keybind Mod4-Shift-w spawn urxvt -name "weechat" -e weechat hc keybind Mod4-Shift-z spawn zhudi # dmenu hc keybind Mod4-r spawn dmenu_run -fn "${bfont}:size=${bfont_size}" \ -p "Run:" -h $bheight \ -nb $bar_bg -nf $bar_fg \ -sb $bg_focus -sf $fg_focus hc keybind Mod4-g spawn ~/.config/herbstluftwm/switcher.sh # hc keybind Mod4-8 spawn ~/.config/herbstluftwm/calc.sh hc keybind XF86AudioLowerVolume spawn ~/.config/herbstluftwm/pvol.sh down hc keybind XF86AudioRaiseVolume spawn ~/.config/herbstluftwm/pvol.sh up hc keybind XF86AudioMute spawn ~/.config/herbstluftwm/pvol.sh mute hc keybind XF86AudioMicMute spawn ~/.config/herbstluftwm/pvol.sh # tunes hc keybind Mod4-Up spawn ~/.config/herbstluftwm/mpc-status.sh hc keybind Mod4-Down spawn mpc toggle hc keybind Mod4-Right spawn ~/.config/herbstluftwm/mpc-status.sh next hc keybind Mod4-Left spawn ~/.config/herbstluftwm/mpc-status.sh prev ## end launchers ########### # RULES # ########### hc unrule -F hc rule focus=on # unmanage docks, dropdowns, etc hc rule windowtype~'_NET_WM_WINDOW_TYPE_(NOTIFICATION|DOCK|DROPDOWN_MENU|POPUP_MENU)' manage=off # set apppropriate things to pseudotile hc rule windowtype~'_NET_WM_WINDOW_TYPE_(DIALOG|UTILITY|SPLASH)' pseudotile=on focus=on floating=off hc rule class~'(VBoxSDL|SleepIsDeathApp|freeciv-sdl|FTL|pinentry)' pseudotile=on focus=on floating=off hc rule class~'(mozc_tool|PlayOnLinux|PCSX2|Tilem2|Wine|explorer.exe)' pseudotile=on focus=on floating=off hc rule class~'(mednafen)' pseudotile=on focus=on floating=off ################# # TABLET MODE # ################# if [[ $tablet_mode != "" ]]; then hc rule class~'(onboard|Onboard)' manage=off hc keybind XF86AudioLowerVolume spawn onboard -m hc keybind Mod4-equal spawn xbacklight +10 hc keybind Mod4-minus spawn xbacklight -10 hc keybind XF86AudioRaiseVolume spawn ~/.config/herbstluftwm/backlight.sh hc keybind Mod4-bracketright spawn ~/.config/herbstluftwm/pvol.sh up hc keybind Mod4-bracketleft spawn ~/.config/herbstluftwm/pvol.sh down fi # unlock, just to be sure hc unlock ############## # CHILDREN # ############## # run the panel panel=~/.config/herbstluftwm/panel.sh [ -x "$panel" ] || panel=/etc/xdg/herbstluftwm/panel.sh for monitor in $(hc list_monitors | cut -d: -f1); do # start it on each monitor "$panel" $monitor & done # run dunst with theme colours pkill dunst dunst -lb $bar_bg -nb $bar_bg -cb $bg_focus \ -lf $bar_fg -nf $bar_fg -cf $fg_focus \ -frame_color $bg_focus -geom "0x3-4+$(($bheight + 4))" \ -fn "$mfont $mfont_size" \ -max_icon_size 0