diff options
Diffstat (limited to 'herbstluftwm')
-rwxr-xr-x | herbstluftwm/.config/herbstluftwm/autostart | 187 | ||||
-rwxr-xr-x | herbstluftwm/.config/herbstluftwm/panel.sh | 204 |
2 files changed, 0 insertions, 391 deletions
diff --git a/herbstluftwm/.config/herbstluftwm/autostart b/herbstluftwm/.config/herbstluftwm/autostart deleted file mode 100755 index ecf00b2..0000000 --- a/herbstluftwm/.config/herbstluftwm/autostart +++ /dev/null @@ -1,187 +0,0 @@ -#!/bin/bash - -DMENU='dmenu_run -l 8 -fn "inconsolata-8"' - -hc() { - herbstclient "$@" -} - -hc emit_hook reload - -xsetroot -solid '#5A8E3A' -xset -b -setxkbmap -option grp:alt_space_toggle "de(nodeadkeys),ru" - -# remove all existing keybindings -hc keyunbind --all - - -#feh --no-fehbg --bg-center ~/Pictures/Death_note_l_1366x768.jpg -#feh --no-fehbg --bg-fill ~/Pictures/Music\ Wallpapers/defeater.jpg -#feh --no-fehbg --bg-fill ~/Pictures/house-m.d.-wallpaper-17.jpg -#feh --no-fehbg --bg-fill ~/Pictures/NmigJ3H.jpg -~/.fehbg - -# 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-Escape spawn setxkbmap de nodeadkeys -hc keybind $Mod-Shift-q quit -hc keybind $Mod-Shift-r reload -hc keybind $Mod-Shift-c close -hc keybind $Mod-Return spawn urxvt -hc keybind $Mod-d spawn $DMENU -hc keybind $Mod-Shift-d spawn ~/Code/pappymenu/pappymenu.py -hc keybind $Mod-q close_or_remove - -# volume management -hc keybind XF86AudioLowerVolume spawn amixer set Master,0 1%- -hc keybind XF86AudioRaiseVolume spawn amixer set Master,0 1%+ -hc keybind $Mod-XF86AudioLowerVolume spawn amixer set Master,0 5%- -hc keybind $Mod-XF86AudioRaiseVolume spawn amixer set Master,0 5%+ - -# 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 -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 - -# 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-y spawn rofi -show window -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 '#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 4 - -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 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 - -[[ -z "$(pidof nm-applet)" ]] && nm-applet & -[[ -z "$(pidof pasystray)" ]] && pasystray >/dev/null 2>&1 & -pgrep -f /usr/bin/udiskie >/dev/null || udiskie -ans & - diff --git a/herbstluftwm/.config/herbstluftwm/panel.sh b/herbstluftwm/.config/herbstluftwm/panel.sh deleted file mode 100755 index 57a95b1..0000000 --- a/herbstluftwm/.config/herbstluftwm/panel.sh +++ /dev/null @@ -1,204 +0,0 @@ -#!/bin/bash - -hc() { "${herbstclient_command[@]:-herbstclient}" "$@" ;} -monitor=${1:-0} -geometry=( $(herbstclient monitor_rect "$monitor") ) -if [ -z "$geometry" ] ;then - echo "Invalid monitor $monitor" - exit 1 -fi -# geometry has the format W H X Y -x=${geometry[0]} -y=${geometry[1]} -tray_width=200 -panel_width=$(( ${geometry[2]} - $tray_width )) -panel_height=16 -font="-*-fixed-medium-*-*-*-12-*-*-*-*-*-*-*" -bgcolor=$(hc get frame_border_normal_color) -selbg=$(hc get window_border_active_color) -selfg='#101010' - -#### -# Try to find textwidth binary. -# In e.g. Ubuntu, this is named dzen2-textwidth. -if which textwidth &> /dev/null ; then - textwidth="textwidth"; -elif which dzen2-textwidth &> /dev/null ; then - textwidth="dzen2-textwidth"; -else - echo "This script requires the textwidth tool of the dzen2 project." - exit 1 -fi -#### -# true if we are using the svn version of dzen2 -# depending on version/distribution, this seems to have version strings like -# "dzen-" or "dzen-x.x.x-svn" -if dzen2 -v 2>&1 | head -n 1 | grep -q '^dzen-\([^,]*-svn\|\),'; then - dzen2_svn="true" -else - dzen2_svn="" -fi - -if awk -Wv 2>/dev/null | head -1 | grep -q '^mawk'; then - # mawk needs "-W interactive" to line-buffer stdout correctly - # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=593504 - uniq_linebuffered() { - awk -W interactive '$0 != l { print ; l=$0 ; fflush(); }' "$@" - } -else - # other awk versions (e.g. gawk) issue a warning with "-W interactive", so - # we don't want to use it there. - uniq_linebuffered() { - awk '$0 != l { print ; l=$0 ; fflush(); }' "$@" - } -fi - -hc pad $monitor $panel_height - -{ - ### Event generator ### - # based on different input data (mpc, date, hlwm hooks, ...) this generates events, formed like this: - # <eventname>\t<data> [...] - # e.g. - # date ^fg(#efefef)18:33^fg(#909090), 2013-10-^fg(#efefef)29 - - #mpc idleloop player & - while true ; do - # "date" output is checked once a second, but an event is only - # generated if the output changed compared to the previous run. - echo -e "addinfo\t^fg(#ff2200)$USER^fg()@^fg(#22ff00)$(hostname)^fg() -"\ - "Vol: ^fg(#66FF30)$(volume.sh)^fg() - Bat: ^fg(#66FF30)$(battery.sh)" - # date +$'date\t^fg(#efefef)%H:%M^fg(#909090), %Y-%m-^fg(#efefef)%d' - date +$'date\t^fg(#efefef)%H:%M:%S^fg(#909090), %Y-%m-^fg(#efefef)%d' - sleep 0.5 || break - done > >(uniq_linebuffered) & - childpid=$! - hc --idle - kill $childpid -} 2> /dev/null | { - IFS=$'\t' read -ra tags <<< "$(hc tag_status $monitor)" - visible=true - date="" - windowtitle="" - addinfo="" - while true ; do - - ### Output ### - # This part prints dzen data based on the _previous_ data handling run, - # and then waits for the next event to happen. - #echo -n "^bg(#505050)^ca(1,~/Code/pappymenu/pappymenu.py) Apps ^ca()^bg()" - #echo -n "$separator" - bordercolor="#26221C" - separator="^bg()^fg($selbg)|" - # draw tags - for i in "${tags[@]}" ; do - case ${i:0:1} in - '#') - echo -n "^bg($selbg)^fg($selfg)" - ;; - '+') - echo -n "^bg(#9CA668)^fg(#141414)" - ;; - ':') - echo -n "^bg()^fg(#ffffff)" - ;; - '!') - echo -n "^bg(#FF0675)^fg(#141414)" - ;; - *) - echo -n "^bg()^fg(#ababab)" - ;; - esac - if [ ! -z "$dzen2_svn" ] ; then - # clickable tags if using SVN dzen - echo -n "^ca(1,\"${herbstclient_command[@]:-herbstclient}\" " - echo -n "focus_monitor \"$monitor\" && " - echo -n "\"${herbstclient_command[@]:-herbstclient}\" " - echo -n "use \"${i:1}\") ${i:1} ^ca()" - else - # non-clickable tags if using older dzen - echo -n " ${i:1} " - fi - done - echo -n "$separator" - echo -n "^bg()^fg() ${windowtitle//^/^^}" - # small adjustments - right="$separator $addinfo $separator^bg() $date $separator" - right_text_only=$(echo -n "$right" | sed 's.\^[^(]*([^)]*)..g') - # get width of right aligned text.. and add some space.. - width=$($textwidth "$font" "$right_text_only ") - echo -n "^pa($(($panel_width - $width)))$right" - echo - - ### Data handling ### - # This part handles the events generated in the event loop, and sets - # internal variables based on them. The event and its arguments are - # read into the array cmd, then action is taken depending on the event - # name. - # "Special" events (quit_panel/togglehidepanel/reload) are also handled - # here. - - # wait for next event - IFS=$'\t' read -ra cmd || break - # find out event origin - case "${cmd[0]}" in - tag*) - #echo "resetting tags" >&2 - IFS=$'\t' read -ra tags <<< "$(hc tag_status $monitor)" - ;; - date) - #echo "resetting date" >&2 - date="${cmd[@]:1}" - ;; - addinfo) - #echo "resetting info" >&2 - addinfo="${cmd[@]:1}" - ;; - quit_panel) - exit - ;; - togglehidepanel) - currentmonidx=$(hc list_monitors | sed -n '/\[FOCUS\]$/s/:.*//p') - if [ "${cmd[1]}" -ne "$monitor" ] ; then - continue - fi - if [ "${cmd[1]}" = "current" ] && [ "$currentmonidx" -ne "$monitor" ] ; then - continue - fi - echo "^togglehide()" - if $visible ; then - visible=false - hc pad $monitor 0 - else - visible=true - hc pad $monitor $panel_height - fi - ;; - reload) - exit - ;; - focus_changed|window_title_changed) - windowtitle="${cmd[@]:2}" - ;; - #player) - # ;; - esac - done - - ### dzen2 ### - # After the data is gathered and processed, the output of the previous block - # gets piped to dzen2. - -} 2> /dev/null | dzen2 -w $panel_width -x $x -y $y -fn "$font" -h $panel_height \ - -e 'button3=;button4=exec:herbstclient use_index -1;button5=exec:herbstclient use_index +1' \ - -ta l -bg "$bgcolor" -fg '#efefef' & - -pids+=($!) - -trayer --edge top --align right --widthtype pixel --width $tray_width --heighttype pixel --height 16 \ - --tint "0xff${bgcolor:1}" --transparent true --alpha 0 & - -pids+=($!) - -herbstclient --wait '^(quit|reload).*' -kill -TERM "${pids[@]}" >/dev/null 2>&1 |