Sci (scrot) (+1 likes)
szorfein Mar 12, 2017 (wms/herbstluft)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | #!/usr/bin/env bash
# this is a simple config for herbstluftwm
source $(dirname $0)/config
hc() {
herbstclient "$@"
}
hc emit_hook reload
#xsetroot -solid '#5A8E3A'
# remove all existing keybindings
hc keyunbind --all
# keybindings
Mod=Mod4 # Use alt as the main modifier
# sxhkd
sxhkd_conf=~/.config/herbstluftwm/sxhkdrc
sxhkd -c ${sxhkd_conf} &
# tags (fr...)
tag_names=( {1..6} )
tag_keys=( ampersand eacute quotedbl apostrophe parenleft minus )
# tags (en)
#tag_names=( {1..6} )
#tag_keys=( {1..6} 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
# mouse
hc mouseunbind --all
hc mousebind $Mod-Button1 move
hc mousebind $Mod-Button2 zoom
hc mousebind $Mod-Button3 resize
herbstclient set focus_follows_mouse 1
# theme
hc attr theme.tiling.reset 1
hc attr theme.floating.reset 1
hc set frame_border_active_color '#353535'
hc set frame_border_normal_color '#101010'
hc set frame_bg_normal_color '#202020'
hc set frame_bg_active_color '#6c3b41'
# border
hc set always_show_frame 1
hc set frame_bg_transparent 1
hc set frame_border_width 0
hc set gapless_grid 1
hc set frame_gap -3
hc set window_gap -3
hc set frame_padding 16
hc set smart_window_surroundings 0
hc set smart_frame_surroundings 0
hc set frame_transparent_width 0
hc set frame_active_opacity 1
hc set frame_normal_opacity 0
hc attr theme.active.color '#353535'
hc attr theme.normal.color '#252525'
hc attr theme.urgent.color '#555555'
hc attr theme.inner_width 0
hc attr theme.inner_color '#202020'
hc attr theme.outer_width 0
hc attr theme.border_width 0
hc attr theme.floating.border_width 0
hc attr theme.floating.outer_width 0
hc attr theme.floating.outer_color black
hc attr theme.active.inner_color black
hc attr theme.active.outer_color black
hc attr theme.background_color '#ffffff'
hc set mouse_recenter_gap 0
# rules
hc unrule -F
hc rule focus=on # normally focus new clients
# Gimp
hc load 5 '
(split horizontal:0.850000:0
(split horizontal:0.200000:1
(clients vertical:0)
(clients grid:0))
(clients vertical:0))
'
# center all other gimp windows on gimp tag
hc rule class=Gimp tag=5 index=01 pseudotile=on
hc rule class=Gimp windowrole~'gimp-(image-window|toolbox|dock)' pseudotile=off
hc rule class=Gimp windowrole=gimp-toolbox focus=off index=00
hc rule class=Gimp windowrole=gimp-dock focus=off index=1
hc rule class=mpv focus=on
hc rule class=sxiv focus=on
hc rule title="Open Image" pseudotile=on
hc rule title="Save As" pseudotile=on
hc rule title="Save file" pseudotile=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 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
for monitor in $(herbstclient list_monitors | cut -d: -f1) ; do
$(dirname $0)/panel.sh &
$(dirname $0)/panel-bottom.sh &
done
|
x
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | #! /bin/sh
HEIGHT=23
FONT="-*-dina-medium-r-*-*-10-*-*-*-*-*-*-*"
FONT_ICON="-wuncon-siji-medium-r-normal--10-100-75-75-c-80-iso10646-1"
# icons
GENTOO="\ue1ec"
ARCH="\ue00e"
CSTART="\ue00d"
CSOUND="\ue04d"
CVOLUME="\ue204"
CMAIL="\ue070"
CRAM="\ue19a"
CCPU="\ue021"
CNET="\ue04b"
CWIFI="\ue222"
WIFI_STR="\ue02d"
CIP=" ++ "
# Time
CTIME="\ue018"
CPACK="\ue1b7"
CCLOCK="\ue016"
# panel center
CNONE="\ue190"
CFULL="\ue0e6"
# icons panel music
CPREV="\ue055"
CNEXT="\ue05b"
CPLAY="\ue058"
CPAUS="\ue059"
# icon volume
VPLUS="\ue06c"
VMINUS="\ue06d"
# battery or AC
BAT100="\ue254"
BAT70="\ue252"
BAT50="\ue250"
BAT30="\ue24f"
BAT15="\ue24e"
BAT7="\ue24c"
CAC="\ue215"
# $(pAction ${fg} ${bg} ${${command} ${whatprint})
pAction() {
echo "%{F$1}%{B$2}%{A:$3:}$(printf '%b' $4)%{A}%{B-}%{F-}"
}
# $(pActionUnderline ${fg} ${bg} ${underline} ${${command} ${whatprint})
pActionUnderline() {
echo "%{F$1}%{B$2}%{U$3}%{+u}%{A:$4:}$(printf '%b' $5)%{A}%{-u}%{B-}%{F-}"
}
# $(pIcon ${color} ${icon})
pIcon() {
echo "%{F$1}$(printf '%b' $2)%{F-}"
}
# $(pIconUnderline ${color} ${color_underline} ${icon})
pIconUnderline() {
echo "%{F$1}%{U$2}%{+u}$(printf '%b' $3)%{-u}%{F-}"
}
# $(pText ${color} ${text})
pText() {
echo "%{F$1}$2%{F-}"
}
# $(pTextUnderline ${color} ${color_underline} ${text})
pTextUnderline() {
echo "%{F$1}%{U$2}%{+u}$3%{-u}%{F-}"
}
getXresColor() {
echo "$( xrdb -query | grep $1: | grep -oE '#[a-zA-Z0-9]{6}' | cut -c 1- )"
}
# colors
BG="#88121215"
FG="$(getXresColor foreground)"
BLACK="$(getXresColor color0)"
BLACK2="$(getXresColor color8)"
RED="$(getXresColor color1)"
RED2="$(getXresColor color9)"
GREEN="$(getXresColor color2)"
GREEN2="$(getXresColor color10)"
YELLOW="$(getXresColor color3)"
YELLOW2="$(getXresColor color11)"
BLUE="$(getXresColor color4)"
BLUE2="$(getXresColor color12)"
MAGENTA="$(getXresColor color5)"
MAGENTA2="$(getXresColor color13)"
CYAN="$(getXresColor color6)"
CYAN2="$(getXresColor color14)"
WHITE="$(getXresColor color7)"
WHITE2="$(getXresColor color15)"
|
x
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | #! /bin/sh
source $(dirname $0)/config
monitor=${1:-0}
herbstclient pad $monitor ${HEIGHT} 11 ${HEIGHT} 11
set -f
getName() {
local icon=$(pIconUnderline ${WHITE} ${RED2} ${GENTOO})
local cmd="$(uname -n)"
local cmdEnd=$(pTextUnderline ${WHITE} ${RED} " ${cmd}")
echo " ${icon}${cmdEnd}"
}
getMyIp() {
local icon=$(pIcon ${YELLOW} ${CIP})
local cmd="$(curl -s https://ifcfg.me/)"
local cmdEnd=$(pText ${WHITE} "${cmd}")
echo " ${icon} ${cmdEnd} ${icon}"
}
getDay() {
local icon=$(pIconUnderline ${BLACK2} ${BLACK2} ${CTIME})
local cmd=" $(date '+%A %d %b')"
local cmdEnd=$(pTextUnderline ${WHITE} ${BLACK} "${cmd}")
echo "${icon}${cmdEnd}"
}
clock() {
local icon=$(pIcon ${BLACK2} ${CCLOCK})
local cmd=$(date +%H:%M)
local cmdEnd=$(pText ${FG} "${cmd}")
echo "${icon} ${cmdEnd}"
}
mail() {
local gmaildir=/home/izsha/.mails/Gmail/\[Gmail\].All\ Mail/new
local cmd=$(pAction ${BLACK2} ${BG} "herbstclient spawn termite -e mutt" ${CMAIL})
local count=0
if [[ ! -n $(ls "${gmaildir}") ]]; then
count=0
else
count=$(ls -1 "${gmaildir}" | wc -l)
fi
echo "${cmd} ${count}"
}
energy() {
local ac=/sys/class/power_supply/AC/online
local bat=/sys/class/power_supply/BAT0/present
local icon=""
local batCap=""
if [[ -e $bat ]] && [[ $(cat $ac) -lt 1 ]]; then
batCap="$(cat ${bat%/*}/capacity)"
[ $batCap -gt 90 ] && icon=$BAT100
[ $batCap -gt 70 ] && [ $batCap -lt 90 ] && icon=$BAT70
[ $batCap -gt 50 ] && [ $batCap -lt 70 ] && icon=$BAT50
[ $batCap -gt 30 ] && [ $batCap -lt 50 ] && icon=$BAT30
[ $batCap -gt 15 ] && [ $batCap -lt 30 ] && icon=$BAT15
[ $batCap -lt 7 ] && icon=$BAT7
elif [[ -n $(cat $ac) ]]; then
batCap="AC"
icon=$CAC
else
batCap="wttf"
fi
echo "$(pIcon ${BLACK2} $icon) $(pText "#685667" ${batCap})"
}
{
while :; do
wm=""
TAGS=( $(herbstclient tag_status $monitor) )
unset TAGS[${#TAGS[@]}]
for i in "${TAGS[@]}" ; do
case ${i:0:1} in
'#') # current tag
FAG=${FG}
IC=${CFULL}
;;
'+') # active on other monitor
FAG=${WHITE}
IC=${CNONE}
;;
':') # occupied
FAG=${FG}
IC=${CNONE}
;;
'!') # urgent tag
FAG=${YELLOW}
IC=${CFULL}
;;
*) # empty
FAG=${BLACK2}
IC=${CNONE}
;;
esac
wm="$wm%{F$FAG} $(printf '%b' ${IC}) %{F-}"
done
echo "A${wm}"
sleep 0.1 || break
done &
while :; do
echo "W$(getName) $(getMyIp)"
echo "R$(energy) $(mail) $(getDay) $(clock)"
sleep 1 || break
done &
}|{
while read -r line ; do
cmd=( $line )
case "${cmd[0]}" in
W*)
sysL="${line#?}"
;;
A*)
wm="${line#?}"
;;
R*)
sysR="${line#?}"
;;
reload)
exit
;;
quit_panel)
exit
;;
esac
printf "%s\n" "%{l}${sysL}%{c}${wm}%{r}${sysR}"
done
}| lemonbar \
-g x${HEIGHT} -u 2 -B ${BG} -F ${FG} -f "${FONT}" -f "${FONT_ICON}" &
wait
|
x
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | #! /bin/sh
source $(dirname $0)/config
monitor=${1:-0}
set -f
music() {
local icon=$(pIcon ${BLACK2} ${CSOUND})
local stat="$(mpc status | grep \# | awk '{print $1}')"
local artist=$(mpc -f %artist% current)
local musicname=$(mpc -f %title% current)
local cmd=""
if [ "${stat}" ] && [ "${stat}" = "[playing]" ] ; then
cmd=" Playing >> ${artist:0:10} - ${musicname:0:15}"
elif [ "${stat}" ] && [ "${stat}" = "[paused]" ] ; then
cmd=" Paused >> ${artist:0:10} - ${musicname:0:15}"
else
cmd=" No Sound"
fi
echo "${icon}$(pText ${FG} "${cmd}")"
}
volume() {
local icon=$(pIcon ${BLACK2} ${CVOLUME})
local cmd="$(mpc volume | awk '{print $2}')"
[[ -z ${volume%?} ]] && volume='100%'
local clr=$(pText ${FG} "${cmd}")
echo "${icon} ${clr}"
}
net() {
local _GETIWL=$(/sbin/iwgetid -r)
local _GETETH=$(ip a | grep "state UP" | awk '{ORS=""}{print $2}' | cut -d ':' -f 1)
local _status=${_GETIWL:-$_GETETH}
local _status2="${_status:-Down}"
local icon="$(pIcon ${BLACK2} ${CNET})"
local cmd=$(pText ${FG} " ${_status2}")
echo "${icon}${cmd}"
}
wifi_str() {
local _icon=$(pIcon ${BLACK2} ${WIFI_STR})
local _cmd=$(/sbin/iwconfig 2>/dev/null | grep "Link Quality" | cut -d "=" -f 2 | awk '{print $1}')
echo "${_icon} ${_cmd}"
}
cpu() {
local icon=$(pIcon ${BLACK2} ${CCPU})
local cmd=" $(cat /proc/loadavg | awk '{print $1}')"
local cmd+=" $(cat /proc/loadavg | awk '{print $4}')"
local cmd+=" $(cat /proc/cpuinfo| grep MHz | awk '{ORS=" "}{print $4}' | sed -e 's/.000//g' | cut -f 1)"
local clr=$(pText ${FG} "${cmd}")
echo "${icon}${clr}"
}
ram() {
local icon=$(pIcon ${BLACK2} ${CRAM})
local cmd=$(free -m | grep Mem | awk '{print $3}')
cmd+=" Mb"
local clr=$(pText ${FG} "${cmd}")
echo "${icon} ${clr}"
}
{
while :; do
echo "W$(music) $(volume)"
echo "A$(cpu) $(ram)"
echo "R$(wifi_str) $(net)"
sleep 1
done
}|{
while read -r line ; do
cmd=( $line )
case "${cmd[0]}" in
W*)
sysL="${line#?}"
;;
A*)
wm="${line#?}"
;;
R*)
sysR="${line#?}"
;;
reload)
exit
;;
quit_panel)
exit
;;
esac
printf "%s\n" "%{l}${sysL}%{c}${wm}%{r}${sysR}"
done
}| lemonbar \
-g x${HEIGHT} -u 2 -B ${BG} -F ${FG} -f "${FONT}" -f "${FONT_ICON}" -b &
wait
|
x
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | #
# herbstluftwm hotkeys
#
# reload sxhkd config
alt + shift + s
pkill -USR1 -x sxhkd
# quit herbstluftwm
super + control + q
herbstclient quit
# handle panels and reloading
super + shift + r
pkill -USR1 -x sxhkd; pkill panel; herbstclient reload
# close windows
super + w
herbstclient close_and_remove
# kill panel properly and quit
super + shift + q
herbstclient close; pkill lemonbar; pkill panel
#
# focus
#
#super + u
# herbstclient cycle_monitor
super + {Left,Down,Up,Right,h,j,k,l}
herbstclient focus {left,down,up,right,left,down,up,right}
# moving clients
super + shift + {Left,Down,Up,Right,h,j,k,l}
herbstclient shift {left,down,up,right,left,down,up,right
# window splitting
super + {z,q,e}
herbstclient split {bottom 0.5,right 0.5, explode}
# resizing frames
super + ctrl + {h,j,k,l}
herbstclient resize {left +0.01,down +0.01,up +0.01,right +0.01}
# cycle through tags
super + {Tab,Tab}
herbstclient spawn tagswitch.sh {next, prev}
super + p
herbstclient spawn swap auto
# layouting
super + {r,s,shift+f,shift+m,shift+p}
herbstclient {remove,floating toggle, fullscreen toggle, pseudotile toggle}
# shift client to specified monitor
#alt + {apostrophe,section}
# herbstclient shift_to_monitor {1,0}
#
# wm independent hotkeys
#
# toggle redshift
mod5 + F7
pkill -USR1 redshift
# Terminal Emulator
super + Return
termite
# Program Launcher
super + space
rofi -show run
# Custom action
alt + shift + d
mpc del 0
mod5 + F9
xbacklight -inc 1
mod5 + F8
xbacklight -dec 2
alt + ctrl + {Up,Down}
mpc volume {+,-}3
alt + ctrl + {Left,Right}
mpc {prev,next}
mod5 + w
vivaldi
mod5 + {f,m,n}
termite -e {ranger,mutt,ncmpcpp}
mod5 + twosuperior
mpc {pause,play}
|
x
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | !-------------------------------------------
! XFT Settings gre
Xft.antialias: true
Xft.autohint: false
Xft.dpi: 96
Xft.hinting: true
Xft.hintstyle: hintfull
Xft.lcdfilter: lcddefault
Xft.rgba: rgb
!-------------------------------------------
! URXVT - Settings
URxvt*depth: 32
URxvt*internalBorder: 3
URxvt*dynamicColors: on
URxvt*urgentOnBell: true
URxvt*borderLess: false
URxvt*scrollBar: false
URxvt*cursorBlink: true
URxvt*cursorUnderline: true
URxvt*cursorColor: #737077
URxvt*scrollColor: #151515
URxvt*underlineURLs: true
! with tamsyn
!URxvt*letterSpace: 0.3
! Disable perl
!URxvt.perl-ext:
!URxvt.perl-ext-common:
!URxvt*font: xft:Tamsyn:style=Regular:pixelsize=16
URxvt*font: -*-dina-medium-r-*-*-*-90-*-*-*-*-*-*
URxvt*italic: -*-dina-medium-*-*-*-*-90-*-*-*-*-*-*
URxvt*boldFont: -*-dina-bold-r-*-*-*-90-*-*-*-*-*-*
!URxvt*font: -*-marathonmod-*-*-*-*-14-*-*-*-*-*-*-*
!Urxvt*font: -*-tewii-*-*-*-*-*-*-*-*-*-*-*-*
!URxvt*font: -*-marathon-medium-*-*-*-*-*-*-*-*-*-*-*
!URxvt*boldFont: -*-marathon-bold-*-*-*-*-*-*-*-*-*-*-*
!URxvt*boldFont: -*-marathon-*-*-*-*-*-*-*-*-*-*-*-*
!URxvt*boldFont: xft:Tamsyn:style=Bold:pixelsize=16
!--------------------------------------------
! URxvt Colors
URxvt.colorIT: #b291af
URxvt.colorBD: #6f6776
URxvt.colorUL: #e9cfd3
!--------------------------------------------
! General Colors
*background: #000405
*foreground: #9aa8a9
*.cursorColor: #2a2a20
!black
*color0: #071b1e
*color8: #405155
!red
*color1: #62394c
*color9: #875157
!green
*color2: #34776d
*color10: #619d8e
!yellow
*color3: #d1aa54
*color11: #f6d586
!blue
*color4: #2f4653
*color12: #5b7681
!magenta
*color5: #403248
*color13: #644d5e
!cyan
*color6: #276f7b
*color14: #67a0a5
!white
*color7: #bccecd
*color15: #f9fffd
!-------------------------------------------
! Man pages colors
*VT100.colorBDMode: true
*VT100.colorBD: red
*VT100.colorULMode: true
*VT100.colorUL: cyan
*VT100.veryBoldColors: 6
!-------------------------------------------
! xclock
xclock*majorColor: #9a875f
xclock*minorColor: #9a875f
xclock*minuteColor: #9a875f
xclock*hourColor: #9a875f
xclock*secondColor: #9a875f
!-------------------------------------------
! rofi
rofi.lines: 6
rofi.color-enabled: true
rofi.separator-style: none
rofi.width: 40
! rofi state: 'bg' 'fg' 'bgalt' 'hlbg' 'hlfg'
! Color scheme for normal row
rofi.color-normal: argb:00000000, #6a8582, argb:00000000, #000405,#e1ede3
! Color scheme for urgent row
rofi.color-urgent: argb:00000000, #6a8582, argb:00000000, #000405,#e1ede3
! Color scheme for active row
rofi.color-active: argb:00000000, #6a8582, argb:00000000, #000405,#e1ede3
! Color scheme window
rofi.color-window: argb:99000405, #000,#6a8582
|
x