Merge branch 'master' of github.com:Jab2870/dotfiles

Jonathan Hodgson 6 years ago
commit 0d179a9631
  1. 27
      bin/imageResizeFolder
  2. 22
      bin/lanPortImages
  3. 8
      chromeExtentions/dotjs/dotjs.js
  4. 23
      config/dotjs/bitbucket.org.js
  5. 107
      i3/blocks/bandwidth
  6. 4
      i3/blocks/brightness
  7. 60
      i3/blocks/cpu
  8. 4
      i3/blocks/freeSpace
  9. 4
      i3/blocks/homeServerUpdates
  10. 3
      i3/blocks/mediaplayer
  11. 9
      i3/blocks/pacmanUpdates
  12. 83
      i3/blocks/volume
  13. 23
      i3/i3blocks-secondary.conf
  14. 9
      i3/i3blocks.conf
  15. 85
      shells/functions
  16. 13
      shells/zsh/oh-my-zsh/shortcuts.zsh

@ -0,0 +1,27 @@
#!/usr/bin/env bash
# Purpose: batch image resizer
# absolute path to image folder
FOLDER="$PWD"
# max height
WIDTH=${1:-"999999"}
# max width
HEIGHT=${2:-"999999"}
echo "Width: $WIDTH";
echo "Height: $HEIGHT";
#resize png or jpg to either height or width, keeps proportions using imagemagick
#find ${PWD} -iname '*.jpg' -o -iname '*.png' -exec echo convert \{} -verbose -resize $WIDTHx$HEIGHT\> \{}.new.jpg \;
find ${PWD} \( -iname "*.jpg" -o -iname "*.png" \) -exec convert {} -verbose -resize "$WIDTH"x"$HEIGHT" \{}.new \;
#resize png to either height or width, keeps proportions using imagemagick
#find ${FOLDER} -iname '*.png' -exec convert \{} -verbose -resize $WIDTHx$HEIGHT\> \{} \;
#resize jpg only to either height or width, keeps proportions using imagemagick
#find ${FOLDER} -iname '*.jpg' -exec convert \{} -verbose -resize $WIDTHx$HEIGHT\> \{} \;
# alternative
#mogrify -path ${FOLDER} -resize ${WIDTH}x${HEIGHT}% *.png -verbose

@ -0,0 +1,22 @@
#!/usr/bin/env bash
mkdir "portraits"
mkdir "landscapes"
for f in ./*.jpg; do
WIDTH=$(identify -format "%w" "$f")> /dev/null
HEIGHT=$(identify -format "%h" "$f")> /dev/null
echo "Width: $WIDTH"
echo "Height: $HEIGHT"
echo ""
if [[ "$HEIGHT" > "$WIDTH" ]]; then
mv "$f" portraits/
else
mv "$f" landscapes/
fi
#if file "$f" 2>&1 | awk '/w =/{w=$5+0; h=$7+0; if (h>w) exit; else exit 1}'
#then
# mv "$f" portraits/
#else
# mv "$f" landscapes/
#fi
done

@ -1,6 +1,8 @@
if(window.location.host.indexOf(".local") != -1){ console.log( "yay" );
if(window.location.host.indexOf(".local.jh") == -1){
console.log( "I get here" );
var xhr = new XMLHttpRequest(); var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://dotjs.local/' + window.location.host.replace(/^www\./, '') + '.js'); xhr.open('GET', 'https://dotjs.local.jh/' + window.location.host.replace(/^www\./, '') + '.js');
xhr.onreadystatechange = function() { xhr.onreadystatechange = function() {
if(xhr.readyState == 4) { if(xhr.readyState == 4) {
@ -11,7 +13,7 @@ if(window.location.host.indexOf(".local") != -1){
return; return;
} else if(xhr.status == 404) { } else if(xhr.status == 404) {
var defaultXHR = new XMLHttpRequest(); var defaultXHR = new XMLHttpRequest();
defaultXHR.open('GET', 'https://dotjs.local/default.js'); defaultXHR.open('GET', 'https://dotjs.local.jh/default.js');
defaultXHR.onreadystatechange = function() { defaultXHR.onreadystatechange = function() {
if (defaultXHR.readyState == 4 && defaultXHR.status == 200){ if (defaultXHR.readyState == 4 && defaultXHR.status == 200){
var script = document.createElement('script'); var script = document.createElement('script');

@ -0,0 +1,23 @@
((() => {
const domLoaded = function domLoaded(){
document.removeEventListener("readystatechange",domLoaded);
document.querySelectorAll("li").forEach(li => {
console.log(li);
if( li.innerHTML.indexOf( '[' ) !== -1 ){
li.innerHTML = li.innerHTML.replace(/\[ \]/g, '☐');
li.innerHTML = li.innerHTML.replace(/\[x\]/g, '☒');
}
} );
}
console.log("I get here");
if(document.readyState == "loading"){
//If the dom hasn't loaded, wait until it is
document.addEventListener("readystatechange",domLoaded);
return;
} else {
//If it has, run the domLoaded function
domLoaded();
}
}))();

@ -0,0 +1,107 @@
#!/bin/bash
# Copyright (C) 2012 Stefan Breunig <stefan+measure-net-speed@mathphys.fsk.uni-heidelberg.de>
# Copyright (C) 2014 kaueraal
# Copyright (C) 2015 Thiago Perrotta <perrotta dot thiago at poli dot ufrj dot br>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Get custom IN and OUT labels if provided by command line arguments
while [[ $# -gt 1 ]]; do
key="$1"
case "$key" in
-i|--inlabel)
INLABEL="$2"
shift;;
-o|--outlabel)
OUTLABEL="$2"
shift;;
esac
shift
done
[[ -z $INLABEL ]] && INLABEL="IN "
[[ -z $OUTLABEL ]] && OUTLABEL="OUT "
# Use the provided interface, otherwise the device used for the default route.
if [[ -z $INTERFACE ]] && [[ -n $BLOCK_INSTANCE ]]; then
INTERFACE=$BLOCK_INSTANCE
elif [[ -z $INTERFACE ]]; then
INTERFACE=$(ip route | awk '/^default/ { print $5 ; exit }')
fi
# Issue #36 compliant.
if ! [ -e "/sys/class/net/${INTERFACE}/operstate" ] || ! [ "`cat /sys/class/net/${INTERFACE}/operstate`" = "up" ]
then
echo "$INTERFACE down"
echo "$INTERFACE down"
echo "#FF0000"
exit 0
fi
# path to store the old results in
path="/dev/shm/$(basename $0)-${INTERFACE}"
# grabbing data for each adapter.
read rx < "/sys/class/net/${INTERFACE}/statistics/rx_bytes"
read tx < "/sys/class/net/${INTERFACE}/statistics/tx_bytes"
# get time
time=$(date +%s)
# write current data if file does not exist. Do not exit, this will cause
# problems if this file is sourced instead of executed as another process.
if ! [[ -f "${path}" ]]; then
echo "${time} ${rx} ${tx}" > "${path}"
chmod 0666 "${path}"
fi
# read previous state and update data storage
read old < "${path}"
echo "${time} ${rx} ${tx}" > "${path}"
# parse old data and calc time passed
old=(${old//;/ })
time_diff=$(( $time - ${old[0]} ))
# sanity check: has a positive amount of time passed
[[ "${time_diff}" -gt 0 ]] || exit
# calc bytes transferred, and their rate in byte/s
rx_diff=$(( $rx - ${old[1]} ))
tx_diff=$(( $tx - ${old[2]} ))
rx_rate=$(( $rx_diff / $time_diff ))
tx_rate=$(( $tx_diff / $time_diff ))
# shift by 10 bytes to get KiB/s. If the value is larger than
# 1024^2 = 1048576, then display MiB/s instead
# incoming
echo -n "$INLABEL"
rx_kib=$(( $rx_rate >> 10 ))
if hash bc 2>/dev/null && [[ "$rx_rate" -gt 1048576 ]]; then
printf '%sM' "`echo "scale=1; $rx_kib / 1024" | bc`"
else
echo -n "${rx_kib}K"
fi
echo -n " "
# outgoing
echo -n "$OUTLABEL"
tx_kib=$(( $tx_rate >> 10 ))
if hash bc 2>/dev/null && [[ "$tx_rate" -gt 1048576 ]]; then
printf '%sM' "`echo "scale=1; $tx_kib / 1024" | bc`"
else
echo -n "${tx_kib}K"
fi

@ -48,8 +48,8 @@ if [[ "${percent}" -le 0 ]]; then
exit exit
fi fi
echo "🔆${percent}%" echo "${label} ${percent}%"
echo "${percent}%" echo "${label} ${percent}%"
echo "" echo ""
if [[ "${percent}" -le "${URGENT_VALUE}" ]]; then if [[ "${percent}" -le "${URGENT_VALUE}" ]]; then

@ -0,0 +1,60 @@
#!/usr/bin/perl
#
# Copyright 2014 Pierre Mavro <deimos@deimos.fr>
# Copyright 2014 Vivien Didelot <vivien@didelot.org>
# Copyright 2014 Andreas Guldstrand <andreas.guldstrand@gmail.com>
#
# Licensed under the terms of the GNU GPL v3, or any later version.
use strict;
use warnings;
use utf8;
use Getopt::Long;
# default values
my $t_warn = $ENV{T_WARN} || 50;
my $t_crit = $ENV{T_CRIT} || 80;
my $cpu_usage = -1;
my $decimals = $ENV{DECIMALS} || 2;
my $label = $ENV{label} || "";
sub help {
print "Usage: cpu_usage [-w <warning>] [-c <critical>] [-d <decimals>]\n";
print "-w <percent>: warning threshold to become yellow\n";
print "-c <percent>: critical threshold to become red\n";
print "-d <decimals>: Use <decimals> decimals for percentage (default is $decimals) \n";
exit 0;
}
GetOptions("help|h" => \&help,
"w=i" => \$t_warn,
"c=i" => \$t_crit,
"d=i" => \$decimals,
);
# Get CPU usage
$ENV{LC_ALL}="en_US"; # if mpstat is not run under en_US locale, things may break, so make sure it is
open (MPSTAT, 'mpstat 1 1 |') or die;
while (<MPSTAT>) {
if (/^.*\s+(\d+\.\d+)[\s\x00]?$/) {
$cpu_usage = 100 - $1; # 100% - %idle
last;
}
}
close(MPSTAT);
$cpu_usage eq -1 and die 'Can\'t find CPU information';
# Print short_text, full_text
printf "${label} %.${decimals}f%%\n", $cpu_usage;
printf "${label} %.${decimals}f%%\n", $cpu_usage;
# Print color, if needed
if ($cpu_usage >= $t_crit) {
print "#FF0000\n";
exit 33;
} elsif ($cpu_usage >= $t_warn) {
print "#FFFC00\n";
}
exit 0;

@ -18,8 +18,8 @@ if [ "$BLOCK_BUTTON" = "1" ]; then
echo "$used/$total" echo "$used/$total"
echo "$used/$total" echo "$used/$total"
else else
echo "$percent%" echo "$label $percent%"
echo "$percent%" echo "$label $percent%"
fi fi

@ -4,8 +4,8 @@ count=$(ssh homeServer -t checkupdates | wc -l)
if [ "$count" = "0" ]; then if [ "$count" = "0" ]; then
echo "" echo ""
else else
echo $count echo "$label $count"
echo $count echo "$label $count"
if [ "$count" -gt "5" ]; then if [ "$count" -gt "5" ]; then
echo "#FFOOOO" echo "#FFOOOO"
else else

@ -1,7 +1,8 @@
#!/usr/bin/sh #!/usr/bin/sh
COMMAND="playerctl --player=$BLOCK_INSTANCE" #COMMAND="playerctl --player=$BLOCK_INSTANCE"
COMMAND="playerctl"
case $BLOCK_BUTTON in case $BLOCK_BUTTON in
1) $COMMAND previous ;; 1) $COMMAND previous ;;

@ -7,10 +7,13 @@ if ! command -v checkupdates > /dev/null; then
else else
count=$(checkupdates | wc -l) count=$(checkupdates | wc -l)
if [ "$count" = "0" ]; then if [ "$count" = "0" ]; then
count="" echo ""
echo ""
echo ""
exit 0
fi fi
echo $count echo "$label $count"
echo $count echo "$label $count"
if [ "$count" -gt "5" ]; then if [ "$count" -gt "5" ]; then
echo "#FFOOOO" echo "#FFOOOO"
else else

@ -0,0 +1,83 @@
#!/bin/bash
# Copyright (C) 2014 Julien Bonjean <julien@bonjean.info>
# Copyright (C) 2014 Alexander Keller <github@nycroth.com>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#------------------------------------------------------------------------
# The second parameter overrides the mixer selection
# For PulseAudio users, eventually use "pulse"
# For Jack/Jack2 users, use "jackplug"
# For ALSA users, you may use "default" for your primary card
# or you may use hw:# where # is the number of the card desired
if [[ -z "$MIXER" ]] ; then
MIXER="default"
if command -v pulseaudio >/dev/null 2>&1 && pulseaudio --check ; then
# pulseaudio is running, but not all installations use "pulse"
if amixer -D pulse info >/dev/null 2>&1 ; then
MIXER="pulse"
fi
fi
[ -n "$(lsmod | grep jack)" ] && MIXER="jackplug"
MIXER="${2:-$MIXER}"
fi
# The instance option sets the control to report and configure
# This defaults to the first control of your selected mixer
# For a list of the available, use `amixer -D $Your_Mixer scontrols`
if [[ -z "$SCONTROL" ]] ; then
SCONTROL="${BLOCK_INSTANCE:-$(amixer -D $MIXER scontrols |
sed -n "s/Simple mixer control '\([^']*\)',0/\1/p" |
head -n1
)}"
fi
# The first parameter sets the step to change the volume by (and units to display)
# This may be in in % or dB (eg. 5% or 3dB)
if [[ -z "$STEP" ]] ; then
STEP="${1:-5%}"
fi
#------------------------------------------------------------------------
capability() { # Return "Capture" if the device is a capture device
amixer -D $MIXER get $SCONTROL |
sed -n "s/ Capabilities:.*cvolume.*/Capture/p"
}
volume() {
amixer -D $MIXER get $SCONTROL $(capability)
}
format() {
perl_filter='if (/.*\[(\d+%)\] (\[(-?\d+.\d+dB)\] )?\[(on|off)\]/)'
perl_filter+='{CORE::say $4 eq "off" ? "MUTE" : "'
# If dB was selected, print that instead
perl_filter+=$([[ $STEP = *dB ]] && echo "$label "'$3' || echo "$label "'$1')
perl_filter+='"; exit}'
perl -ne "$perl_filter"
#tmp=$(perl -ne "$perl_filter")
#echo "$label $tmp"
}
#------------------------------------------------------------------------
case $BLOCK_BUTTON in
3) amixer -q -D $MIXER sset $SCONTROL $(capability) toggle ;; # right click, mute/unmute
4) amixer -q -D $MIXER sset $SCONTROL $(capability) ${STEP}+ unmute ;; # scroll up, increase
5) amixer -q -D $MIXER sset $SCONTROL $(capability) ${STEP}- unmute ;; # scroll down, decrease
esac
volume | format

@ -42,12 +42,19 @@ command=xset -q | grep Caps 2> /dev/null | cut -c23 | sed "s/n/CAPS/" | sed "s/f
signal=11 signal=11
color=#00FF00 color=#00FF00
#[nameservers] #[nameservers]
#interval=5 #interval=5
#command=~/.dotfiles/i3/blocks/nameservers domain.com #command=~/.dotfiles/i3/blocks/dns storedev.checkit.net a 185.181.126.141
#label=Example Nameservers #label=storedev.checkit.net
#separator=false
# #
#[siteStatis] #[anameserver]
#interval=5
#command=drill a example.com @ns.mainnameserver.com | sed -ne '/ANSWER SECTION/,/AUTHORITY SECTION/ p' | head -n -2 | tail -n +2 | awk '{ print $5" " }' | xargs echo
#[siteStatus]
#interval=5 #interval=5
#command=~/.dotfiles/i3/blocks/siteStatus https://www.domain.com "Something that should be found on a working request" #command=~/.dotfiles/i3/blocks/siteStatus https://www.domain.com "Something that should be found on a working request"
@ -85,13 +92,17 @@ separator=false
[vapourtecstatus] [vapourtecstatus]
command=~/.dotfiles/i3/blocks/serverStatus Vapourtec command=~/.dotfiles/i3/blocks/serverStatus Vapourtec
interval=30 interval=30
separator=false
[checkitstatus]
command=~/.dotfiles/i3/blocks/serverStatus Checkit
interval=30
[wanip] [wanip]
label=🌍 label=🌍
command=echo "<span foreground='#00FF00'> $(curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//') </span>" command=echo "$label $(curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//')"
interval=30 interval=30
markup=pango color=#00FF00
#colorI#=
# Date Time # Date Time

@ -76,6 +76,7 @@ markup=pango
[volume] [volume]
#label=VOL #label=VOL
label=🔊 label=🔊
command=~/.dotfiles/i3/blocks/volume
instance=Master instance=Master
#instance=PCM #instance=PCM
interval=once interval=once
@ -125,8 +126,11 @@ interval=10
separator=false separator=false
[bandwidth] [bandwidth]
command=/usr/lib/i3blocks/$BLOCK_NAME | sed "s/IN/↓/g" | sed "s/OUT/↑/g" command=~/.dotfiles/i3/blocks/bandwidth
#instance=eth0 #command=/usr/lib/i3blocks/$BLOCK_NAME | sed "s/IN/↓/g" | sed "s/OUT/↑/g"
#instance=eno1
#INLABEL=↓
#OUTLABEL=↑
interval=2 interval=2
# CPU usage # CPU usage
@ -136,6 +140,7 @@ interval=2
[cpu_usage] [cpu_usage]
label=CPU label=CPU
interval=10 interval=10
command=~/.dotfiles/i3/blocks/cpu
#min_width=CPU: 100.00% #min_width=CPU: 100.00%
#separator=false #separator=false

@ -112,8 +112,7 @@ function ptheme() {
fi fi
} }
#Takes you to the child theme function get_theme() {
function theme() {
public_html=${PWD%/public_html*}/public_html public_html=${PWD%/public_html*}/public_html
if [ -d $public_html ]; then if [ -d $public_html ]; then
if [ -d $public_html/wp ]; then if [ -d $public_html/wp ]; then
@ -123,42 +122,41 @@ function theme() {
fi fi
theme=$(dirname $(wp --path="$wpPath" theme path $(wp --path="$wpPath" theme list | grep "active" | grep -v "inactive" | awk '{print $1}'))) theme=$(dirname $(wp --path="$wpPath" theme path $(wp --path="$wpPath" theme list | grep "active" | grep -v "inactive" | awk '{print $1}')))
if [ -d $theme ]; then if [ -d $theme ]; then
cd $theme echo $theme
else else
echo " Can't find theme folder " echo ""
fi fi
else else
echo " Can't find public_html folder." echo ""
fi
}
#Takes you to the child theme
function theme() {
ctheme=$(get_theme)
if [ ! -z "$ctheme" ]; then
cd $ctheme
fi fi
} }
#Takes you to the js folder child theme #Takes you to the js folder child theme
function js() { function js() {
public_html=${PWD%/public_html*}/public_html ctheme=$(get_theme)
if [ -d $public_html ]; then if [ ! -z "$ctheme" ]; then
if [ -d $public_html/wp ]; then cd $ctheme/js
wpPath=$public_html/wp;
else
wpPath=$public_html;
fi
theme=$(dirname $(wp --path="$wpPath" theme path $(wp --path="$wpPath" theme list | grep "active" | grep -v "inactive" | awk '{print $1}')))
if [ -d $theme ]; then
if [ -d "$theme/js" ]; then
cd "$theme/js"
else
echo "Can't find a JS folder. Here is the theme"
cd "$theme"
fi
else
echo " Can't find theme folder "
fi
else
echo " Can't find public_html folder."
fi fi
} }
#Takes you to the css folder child theme #Takes you to the css folder child theme
function css() { function css() {
ctheme=$(get_theme)
if [ ! -z "$ctheme" ]; then
cd $ctheme/css
fi
}
#Takes you to the plugin directory
function plugins() {
public_html=${PWD%/public_html*}/public_html public_html=${PWD%/public_html*}/public_html
if [ -d $public_html ]; then if [ -d $public_html ]; then
if [ -d $public_html/wp ]; then if [ -d $public_html/wp ]; then
@ -166,24 +164,14 @@ function css() {
else else
wpPath=$public_html; wpPath=$public_html;
fi fi
theme=$(dirname $(wp --path="$wpPath" theme path $(wp --path="$wpPath" theme list | grep "active" | grep -v "inactive" | awk '{print $1}'))) cd $(wp --path="$wpPath" plugin path)
if [ -d $theme ]; then
if [ -d "$theme/css" ]; then
cd "$theme/css"
else
echo "Can't find a CSS folder. Here is the theme"
cd "$theme"
fi
else
echo " Can't find theme folder "
fi
else else
echo " Can't find public_html folder." echo " Can't find public_html folder."
fi fi
} }
#Takes you to the plugin directory #Copies a woo tepmplate file to the theme
function plugins() { function woocp() {
public_html=${PWD%/public_html*}/public_html public_html=${PWD%/public_html*}/public_html
if [ -d $public_html ]; then if [ -d $public_html ]; then
if [ -d $public_html/wp ]; then if [ -d $public_html/wp ]; then
@ -191,7 +179,26 @@ function plugins() {
else else
wpPath=$public_html; wpPath=$public_html;
fi fi
cd $(wp --path="$wpPath" plugin path) woocommerce=$(dirname $(wp --path="$wpPath" plugin path woocommerce))
themes=$(dirname $(wp --path="$wpPath" theme path ))
if [ -d "$woocommerce" ]; then
#If we are here, we know what the woocommerce path is.
# If in WOO directory, we want to copy to the theme directory. If we are not in Woo directory, copy to the current directory
case $PWD/ in
$woocommerce/*)
theme=$(get_theme)
#if [[ $PWD = $woocommerce/templates
;;
$themes/*)
echo "in themes dir"
;;
*)
echo "soewhere else"
;;
esac
else
echo "Can't find woocommerce"
fi;
else else
echo " Can't find public_html folder." echo " Can't find public_html folder."
fi fi

@ -0,0 +1,13 @@
#!/usr/bin/env zsh
function append_date() {
# Prepend "info" to the command line and run it.
BUFFER="$BUFFER-$(date '+%Y-%m-%d')"
zle end-of-line
}
# Define a widget called "run_info", mapped to our function above.
zle -N append_date
# Bind it to ESC-i.
bindkey "" append_date
Loading…
Cancel
Save