tMerge branch 'master' of z3bra.org:scripts - scripts - various script and utils
(HTM) git clone git://z3bra.org/scripts
(DIR) Log
(DIR) Files
(DIR) Refs
---
(DIR) commit 97fe62e7733bd37d296a724f2af10b12a82cd5a0
(DIR) parent 70d26e048e165bc4954ea89a4c7d2338a7750ac9
(HTM) Author: z3bra <willy@mailoo.org>
Date: Thu, 6 Nov 2014 14:53:38 +0100
Merge branch 'master' of z3bra.org:scripts
Diffstat:
D bar/config.sh | 72 -------------------------------
D bar/status.sh | 227 -------------------------------
M cdump | 4 ++--
A cpu | 28 ++++++++++++++++++++++++++++
D cpuload | 22 ----------------------
D human | 67 -------------------------------
A sloc | 5 +++++
M square | 4 ++--
A syscat | 39 +++++++++++++++++++++++++++++++
A xgif | 45 +++++++++++++++++++++++++++++++
10 files changed, 121 insertions(+), 392 deletions(-)
---
(DIR) diff --git a/bar/config.sh b/bar/config.sh
t@@ -1,72 +0,0 @@
-#!/bin/bash
-
-# Color used in the bar (extracted from .Xresources)
-# * 0 : black
-# * 1 : red
-# * 2 : green
-# * 3 : yellow
-# * 4 : blue
-# * 5 : magenta
-# * 6 : cyan
-# * 7 : white
-
-# unified colors
-bg="8"
-fg="9"
-hl="8"
-
-# separator
-sp=" "
-
-# path to executable
-bar="/usr/bin/bar -f"
-
-#info icons (from stlarch_font package. use gbdfed to view/modify font)
-i_arch='\ue0a1' # arch logo
-i_pkgs='\ue14d' # pacman
-i_pkgs='\ue0aa' # pacman ghost
-i_mail='\ue072' # mail icon
-i_wifi='\ue0f0' # signal
-i_netw='\ue149' # wired
-i_time='\ue017' # clock
-i_batt='\ue040' # thunder
-i_sect='\ue10c' # power (on A/C)
-i_load='\ue021' # micro chip
-i_memy='\ue145' # floppy
-i_musk='\ue04d' # headphones
-i_alsa='\ue05d' # speaker
-
-# workspace icons / names (α β γ δ ε ζ η θ ι κ λ)
-i_trm=$(echo -e '0')
-i_web=$(echo -e '1')
-i_dev=$(echo -e '2')
-i_com=$(echo -e '3')
-i_fun=$(echo -e '4')
-i_sys=$(echo -e '5')
-i_wrk=$(echo -e '6')
-i_meh=$(echo -e '7')
-i_far=$(echo -e '8')
-
-
-# specific parameters
-# desktop names
-dskp_tag=('' $i_trm $i_web $i_dev $i_com $i_fun $i_sys $i_wrk $i_meh $i_far)
-
-# colors
-colors=(black red green yellow blue cyan magenta white black white)
-
-# now playing format
-mpc_format='[%title% ]|[%file%]'
-
-# volume channel
-alsa_channel='Master'
-
-# define you own interfaces
-net_wire='eth0'
-net_wifi='wlan0'
-
-# Only the time ? with seconds ? Maybe the current year...?
-date_format="%H.%M"
-
-# The default program to use, is -O <program> is not passed
-default_output='bar'
(DIR) diff --git a/bar/status.sh b/bar/status.sh
t@@ -1,227 +0,0 @@
-#!/bin/sh
-
-source $(dirname $0)/config.sh
-
-OUT=$default_output
-
-function fg() {
- case $1 in
- bar) echo "\f$2" ;;
- tmux) echo "#[fg=${colors[$2]}]" ;;
- none) echo "" ;;
- ?) echo "\f$2" ;;
- esac
-}
-
-function bg() {
- case $1 in
- bar) echo "\b$2" ;;
- tmux) echo "#[bg=$2]" ;;
- none) echo "" ;;
- ?) echo "\b$2" ;;
- esac
-}
-
-# print formatted output. need 2 params: display <value> <icon>
-function display () {
- if [ -n "$1" ]; then
- echo -n "$(fg $OUT ${hl})"
- echo -en "$2 "
- echo "$(fg $OUT ${fg})$1"
- fi
-}
-
-function workspaces () {
- dskp_num=$(xprop -root _NET_NUMBER_OF_DESKTOPS | cut -d ' ' -f3)
- dskp_cur=$(xprop -root _NET_CURRENT_DESKTOP | cut -d ' ' -f3)
-
- buffer=""
-
- for w in $(seq 1 $(($dskp_num-1))); do
- if [ "$w" -eq "$dskp_cur" ]; then
- buffer="$buffer$(echo -e '\ue190')"
- #buffer="$buffer\u${fg} ${dskp_tag[$w]} \u${bg}"
- else
- buffer="$buffer$(fg $OUT ${hl})$(echo -e '\ue190')$(fg $OUT ${fg})"
- #buffer="$buffer ${dskp_tag[$w]} "
- fi
- done
-
- echo -n "${buffer}"
-}
-
-function ratgrp() {
- dskp_tag=('' 'MEH' 'WEB' 'DEV')
- dskp_cur=$(ratpoison -c 'groups' | cut -sd'*' -f1)
- dskp_num=$(ratpoison -c 'groups'| wc -l)
-
- val=""
-
- for w in $(seq 1 $dskp_num); do
- if [ "$w" -eq "$dskp_cur" ]; then
- val="$val\u${fg} ${dskp_tag[$w]} \u${bg}"
- else
- val="$val ${dskp_tag[$w]} "
- fi
- done
-
- echo -n "${val}"
-}
-
-function groups() {
- if [ "$(xprop -root _NET_WM_NAME|cut -d\" -f2)" = "ratpoison" ]; then
- echo "$(ratgrp)"
- else
- echo "$(workspaces)"
- fi
-}
-
-function mails () {
- new=$(~/bin/mcount ~/var/mail/INBOX/new/)
- #cur=$(~/bin/mcount ~/var/mail/INBOX/cur/)
- #val="$new/$cur"
- val="$new"
- ico=${i_mail}
-
- display "$val" "$ico"
-}
-
-function mpd_now_playing () {
- val=$(mpc current --format "$mpc_format" 2>/dev/null)
- ico=${i_musk}
-
- if [[ -z $val ]]; then
- val=''
- ico=''
- fi
-
- display "$val" "$ico"
-}
-
-function volume () {
- val=$(amixer sget $alsa_channel | sed -n 's/.*\[\([0-9/]*%\)\].*/\1/p' | uniq)
- ico=${i_alsa}
-
- display "$val" "$ico"
-}
-
-function battery () {
- val=$(acpi -b | sed 's/^.* \([0-9]*%\).*$/\1/')
- ico=${i_batt}
-
- display "$val" "$ico"
-}
-
-function packages () {
-
- val=$"$(pacman -Q| wc -l) pkg"
- ico=${i_pkgs}
-
- display "$val" "$ico"
-}
-
-function memory () {
-
- mem_tot=$(free -m| sed -n 2p| awk '{print $2}')
- mem_use=$(free -m| sed -n 3p| awk '{print $3}')
- val="$(echo "$mem_use*100/$mem_tot" | bc)%"
- ico=${i_memy}
-
- display "$val" "$ico"
-}
-
-function gputemp () {
-
- val="$(nvidia-smi -q -d TEMPERATURE | grep Gpu | sed 's/.*: //')"
- ico=${i_grap}
-
- display "$val" "$ico"
-}
-
-function gpufanspeed () {
-
- val="$(nvidia-smi -q | grep "Fan" | sed 's/.*: \([0-9]*\).*$/\1/')%"
- ico=${i_fans}
-
- display "$val" "$ico"
-}
-
-function processes () {
-
- val="$(iostat -c | sed -n "4p" | awk -F " " '{print $1}')%"
- ico=${i_load}
-
- display "$val" "$ico"
-}
-
-function network () {
-
- interface_up=$(ip link | grep 'state UP' | wc -l)
-
- if [ ${interface_up} -gt 1 ]; then
- val="multi connection"
- ico=${i_netw}
- else
-
- net_interface=$(ip link| grep 'state UP'|
- sed 's/[0-9]: \([^:]*\):.*$/\1/')
- if [ "$net_interface" = "$net_wire" ]; then
- val=$(ip addr show $net_interface| grep 'inet '|
- sed 's#.* \(.*\)/.*$#\1#')
- ico=${i_netw}
- elif [ "$net_interface" = "$net_wifi" ]; then
- val=$(ip addr show $net_interface| grep 'inet '|
- sed 's#.* \(.*\)/.*$#\1#')
- ico=${i_wifi}
- else
- val=""
- ico=${i_netw}
- fi
- fi
-
- [[ -z "$val" ]] && val="disconnected"
-
- display "$val" "$ico"
-}
-
-function clock () {
- val=$(date +${date_format})
- ico=${i_time}
-
- display "$val" "$ico"
-}
-
-function fillbar () {
- while getopts "B:F:H:LCRO:s:bcflmnprtvw" opt; do
- case $opt in
- # Specific options for bar-aint-recursive
- B) bg=$OPTARG ;; # background color
- F) fg=$OPTARG ;; # foreground color
- H) hl=$OPTARG ;; # highlights color
- L) buffer="${buffer}\l " ;; # left justify
- C) buffer="${buffer}\c " ;; # center text
- R) buffer="${buffer}\r " ;; # right justify
-
- # Which program is the output intended for ? (bar|tmux|none)
- O) OUT=$OPTARG ;;
-
- # Content of the output
- b) [[ -n "$(battery)" ]] && buffer="${buffer}$(battery) ${sp}" ;;
- c) [[ -n "$(clock)" ]] && buffer="${buffer}$(clock) ${sp}" ;;
- f) [[ -n "$(gpufanspeed)" ]] && buffer="${buffer}$(gpufanspeed) ${sp}" ;;
- l) [[ -n "$(mpd_now_playing)" ]] && buffer="${buffer}$(mpd_now_playing) ${sp}" ;;
- m) [[ -n "$(mails)" ]] && buffer="${buffer}$(mails) ${sp}" ;;
- n) [[ -n "$(network)" ]] && buffer="${buffer}$(network) ${sp}" ;;
- p) [[ -n "$(processes)" ]] && buffer="${buffer}$(processes) ${sp}" ;;
- r) [[ -n "$(memory)" ]] && buffer="${buffer}$(memory) ${sp}" ;;
- t) [[ -n "$(gputemp)" ]] && buffer="${buffer}$(gputemp) ${sp}" ;;
- v) [[ -n "$(volume)" ]] && buffer="${buffer}$(volume) ${sp}" ;;
- w) [[ -n "$(groups)" ]] && buffer="${buffer}$(groups) ${sp}" ;;
- esac
- done
-
- # Set the default fg/bg and remove trailing separator (if any)
- echo "$(bg $OUT ${bg})$(fg $OUT ${fg}) $buffer " | sed "s/${sp}$//"
-}
-
-fillbar $@
(DIR) diff --git a/cdump b/cdump
t@@ -9,11 +9,11 @@ for NUM in $(seq 0 7); do
done
echo
for NUM in $(seq 0 7); do
- printf "\e[0;3${NUM}m||||||| "
+ printf "\e[0;3${NUM}m▒▒▒▒▒▒▒ "
done
echo
for NUM in $(seq 0 7); do
- printf "\e[1;3${NUM}m||||||| "
+ printf "\e[1;3${NUM}m▒▒▒▒▒▒▒ "
done
echo
for NUM in $(seq 0 7); do
(DIR) diff --git a/cpu b/cpu
t@@ -0,0 +1,28 @@
+#!/bin/sh
+#
+# z3bra - (c) wtfpl 2014
+
+usage () {
+ cat <<EOF
+usage: $(basename $0) [-hp]
+ -h : print help
+ -p : percentage of cpu used (default)
+ -n : number of running processes
+EOF
+}
+
+cpuperc () {
+ LINE=`ps -eo pcpu |grep -vE '^\s*(0.0|%CPU)' |sed -n '1h;$!H;$g;s/\n/ +/gp'`
+
+ echo "`echo $LINE | bc`%"
+}
+
+cpunumb() {
+ ls /proc | grep -oE '^[0-9]*$' | wc -w
+}
+
+case $1 in
+ -h) usage;;
+ -n) cpunumb;;
+ *) cpuperc;;
+esac
(DIR) diff --git a/cpuload b/cpuload
t@@ -1,22 +0,0 @@
-#!/bin/sh
-#
-# z3bra - (c) wtfpl 2014
-
-usage () {
- cat <<EOF
-usage: $(basename $0) [-hp]
- -h : print help
- -p : percentage of cpu used (default)
-EOF
-}
-
-cpuperc () {
- LINE=`ps -eo pcpu |grep -vE '^\s*(0.0|%CPU)' |sed -n '1h;$!H;$g;s/\n/ +/gp'`
-
- echo "`echo $LINE | bc`%"
-}
-
-case $1 in
- -h) usage;;
- *) cpuperc;;
-esac
(DIR) diff --git a/human b/human
t@@ -1,67 +0,0 @@
-#!/bin/sh
-#
-# z3bra - (c) wtfpl 2014
-
-usage () {
- cat <<EOF
-usage: `basename $0` [-hfbmgt] <number>
- -h : print help
- -f : detect best factorisation to use (default)
- -b : force output in Bytes
- -m : force output in Mio
- -g : force output in Gio
- -t : force output in Tio
-
-environment:
- SCALE : set the number of decimals
-EOF
-}
-
-# choose the best factore depending on the number
-factorize () {
- if [ $1 -gt 1073741824 ]; then
- echo T
- elif [ $1 -gt 1048576 ]; then
- echo G
- elif [ $1 -gt 1024 ]; then
- echo M
- else
- echo B
- fi
-}
-
-# perform calculation depending on expected format
-humanize () {
-
- unit=$1
- num=$2
-
- case $unit in
- M) pow=1 ;;
- G) pow=2 ;;
- T) pow=3 ;;
- *) pow=0; unit= ;;
- esac
-
- num=`echo "scale=${SCALE}; ${num} / (1024 ^ ${pow})" | bc`
-
- echo "${num}${unit}"
-}
-
-# Set the default number of decimals
-SCALE=${SCALE:-0}
-
-case $1 in
- -h) usage;;
- -b) humanize B $2 ;;
- -m) humanize M $2 ;;
- -g) humanize G $2 ;;
- -t) humanize T $2 ;;
- *)
- # this script require at least one argument
- test $# -lt 1 && usage && exit 1
-
-
- humanize `factorize $1` $1
- ;;
- esac
(DIR) diff --git a/sloc b/sloc
t@@ -0,0 +1,5 @@
+#!/bin/sed -f
+
+/^$/d
+/^\s*[{}]/d
+/^\s*[/*]/d
(DIR) diff --git a/square b/square
t@@ -1,5 +1,5 @@
#!/bin/sh
echo
-for i in {0..7}; do echo -en " \e[0;3${i}m▉▉▉▉\e[0m"; done; echo
-for i in {0..7}; do echo -en " \e[1;3${i}m▉▉▉▉\e[0m"; done; echo
+for i in {0..7}; do echo -en " \e[0;3${i}m▒▒\e[0m"; done; echo
+for i in {0..7}; do echo -en " \e[1;3${i}m▒▒\e[0m"; done; echo
(DIR) diff --git a/syscat b/syscat
t@@ -0,0 +1,39 @@
+#!/bin/sh
+
+COLOR=${COLOR:-15}
+
+c() { tput setaf $COLOR; }
+d() { tput sgr0; }
+
+gitdir=http://git.z3bra.org
+myblog=http://blog.z3bra.org
+
+system() {
+ sed "/^$/d;s/\s*[\(\\]\+.*$//" /etc/issue
+}
+
+cpuinfo() {
+ sed -n "/model\ name/s/^.*:\ //p" /proc/cpuinfo | sed 1q
+}
+
+wmname() {
+ xprop -root WM_NAME | cut -d\" -f2
+}
+
+fontname() {
+ xrdb -query|sed "/URxvt\*font/s/^[^-]*-\*-\([^-]*\)-.*$/\1/p;d"
+}
+
+cat <<EOF
+
+$(c)SYSTEM $(d)$(system)
+$(c)KERNEL $(d)$(uname -r)
+$(c)HOSTNAME $(d)$HOSTNAME
+$(c)WMNAME $(d)$(wmname)
+$(c)TERMINAL $(d)$TERM
+$(c)SHELL $(d)$SHELL
+$(c)FONT $(d)$(fontname)
+$(c)PROC $(d)$(~/bin/cpu -p)
+$(c)MEMORY $(d)$(~/bin/memory -u)
+
+EOF
(DIR) diff --git a/xgif b/xgif
t@@ -0,0 +1,45 @@
+#!/bin/sh
+#
+# z3bra - (c) wtfpl 2014
+# record a gif from a specific window until ^D
+
+usage () {
+ cat <<EOF
+usage: `basename $0` [-h] <file>
+ -h : print this help
+
+environment:
+ BORDERS : set the window border size (default: 5)
+EOF
+}
+
+case $1 in
+ -h) usage && exit 0;;
+ *) test $# -lt 1 && usage && exit 1
+esac
+
+# the size of your window manager borders, to include them in the gif
+BORDERS=${BORDER:-5}
+
+# let the user grab a window
+geom=$(xwininfo|grep -E "Wid|Hei|Abs"|sed 's/.*:\s*//g'|tr '\n' :|sed 's/:$//')
+
+# extract window size/position
+x=$(echo $geom|cut -d: -f1)
+y=$(echo $geom|cut -d: -f2)
+w=$(echo $geom|cut -d: -f3)
+h=$(echo $geom|cut -d: -f4)
+
+# add the borders to the width/heigh
+w=$(( $w + 2 * $BORDERS))
+h=$(( $h + 2 * $BORDERS))
+
+# this hackery serves the purpose of recording until the user press ^D
+fifo="/tmp/xgif-$$.fifo"
+test -p $fifo || mkfifo $fifo
+
+byzanz-record -x $x -y $y -w $w -h $h -e "cat $fifo" $1 &
+
+# will hold the fifo openned until ^D is pressed
+cat > $fifo
+rm $fifo