You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							119 lines
						
					
					
						
							2.8 KiB
						
					
					
				
			
		
		
	
	
							119 lines
						
					
					
						
							2.8 KiB
						
					
					
				#!/bin/sh | 
						|
 | 
						|
depend() { | 
						|
	pactree -u -d 1 "$1" | tail -n +2 | sort | 
						|
} | 
						|
 | 
						|
emacs() { | 
						|
	# Create new frame (if there isnt one or no file is specified) | 
						|
	if [ -z "$(pgrep -f emacsclient.*-c)" ] || [ "$1" = "" ]; then | 
						|
		setsid -f emacsclient -a '' -c "$@" > /dev/null 2>&1 | 
						|
	else | 
						|
		setsid -f emacsclient -a '' "$@" > /dev/null 2>&1 | 
						|
	fi | 
						|
} | 
						|
 | 
						|
# $1 = find, $2 = list, $3 = list separator | 
						|
in_list() { | 
						|
	[ -z "$1" ] || [ -z "$2" ] && return 1 | 
						|
	if ! echo "$2" | awk -v m="^$1$" -v RS="${3:-' '}" '$0 ~ m { exit 1 }'; then | 
						|
		return 0 | 
						|
	else | 
						|
		return 1 | 
						|
	fi | 
						|
} | 
						|
 | 
						|
java_doc() { | 
						|
	mkdir -p './doc'; | 
						|
	javadoc -d './doc' -- *.java | 
						|
} | 
						|
 | 
						|
java_run () { | 
						|
	mkdir -p './out'; | 
						|
	javac -d './out' "$1.java"; | 
						|
	java -cp './out' "$1" | 
						|
} | 
						|
 | 
						|
# Search for packages, by name only | 
						|
pacman_search() { | 
						|
	pacman -Ss "$1" --color=always | \ | 
						|
		awk -v m="$1" '{ if ($0 !~ /^\s/) { if ($1 ~ m) { print; }} else { print; }}' | 
						|
} | 
						|
 | 
						|
pastebin() { | 
						|
	echo "$1" | curl -F 'f:1=<-' ix.io | 
						|
} | 
						|
 | 
						|
print_project() { | 
						|
	tree -f --noreport | egrep -ve "vendor(\/.*){2}" -ve "build(\/.*)" | sed -E 's%\./.*/%%g; s%\./%%g;' | 
						|
} | 
						|
 | 
						|
raspbian() { | 
						|
	sudo systemctl start avahi-daemon.service | 
						|
	if ! ip a show usb0 | grep -q 'inet6'; then | 
						|
		sudo dhcpcd usb0 | 
						|
	fi | 
						|
	ssh -6 pi@"$(avahi-resolve-host-name raspberrypi.local | awk '{ print $2 }')"%usb0 | 
						|
	sudo systemctl stop avahi-daemon.service | 
						|
} | 
						|
 | 
						|
screencast() { | 
						|
	IS_RUNNING="$(pgrep ffmpeg)" | 
						|
	if [ "$IS_RUNNING" != "" ]; then | 
						|
		notify-send "Stopped recording.." | 
						|
		# Kill with SIGTERM, allowing finishing touches | 
						|
		pkill -15 ffmpeg | 
						|
		sleep 3 | 
						|
		# Kill with SIGKILL, just in case it is still running | 
						|
		pkill -9 ffmpeg | 
						|
	else | 
						|
		width=1280 | 
						|
		height=720 | 
						|
		NAME=${1:-"$CAPTURE/$(date '+%Y-%m-%d-%H%M%S')_${width}x${height}_ffmpeg"} | 
						|
 | 
						|
		[ -n "$2" ] && AUDIO_CODEC="-c:a aac" | 
						|
		[ -n "$2" ] && AUDIO_SOURCE="-f pulse -ac 2 -i $2" # 1 = system, 2 = mic | 
						|
 | 
						|
		notify-send "Started recording.." | 
						|
		ffmpeg -y \ | 
						|
			-threads 8 \ | 
						|
			-f x11grab \ | 
						|
			-framerate 30 \ | 
						|
			-s "${width}x${height}" \ | 
						|
			-i "$DISPLAY.0+640,180" \ | 
						|
			$AUDIO_SOURCE \ | 
						|
			-r 30 \ | 
						|
			$AUDIO_CODEC \ | 
						|
			-c:v libx264 -crf 0 -preset ultrafast \ | 
						|
			"$NAME.mkv" & | 
						|
	fi | 
						|
} | 
						|
 | 
						|
sha384sum() { | 
						|
	tmpfile=$(mktemp) | 
						|
	curl -o "$tmpfile" "$1" && openssl dgst -sha384 -binary "$tmpfile" | openssl base64 -A | 
						|
	rm -f "$tmpfile" | 
						|
} | 
						|
 | 
						|
shuffle() { | 
						|
	echo "$1" | fold -w 1 | shuf | tr -d '\n' | 
						|
} | 
						|
 | 
						|
update_mirrorlist() { | 
						|
	sudo rm /etc/pacman.d/mirrorlist.pacnew | 
						|
	sudo reflector --latest 100 --protocol https --sort rate --save /etc/pacman.d/mirrorlist | 
						|
} | 
						|
 | 
						|
webmconvert() { | 
						|
	[ "$2" = "1" ] && AUDIO="-c:a libvorbis" || AUDIO="-an" | 
						|
 | 
						|
	# https://trac.ffmpeg.org/wiki/Encode/H.264 | 
						|
	# https://trac.ffmpeg.org/wiki/Encode/VP8 | 
						|
	# -qmin 0   (0-63, default 4, lower = better quality) | 
						|
	# -qmax 40  (qmin-63, default 63) | 
						|
	# -crf 16   (0-51, default 23, 0 = lossless) | 
						|
	# -b:v 4M | 
						|
	ffmpeg -threads 4 -i "$1" -c:v libvpx -qmin 0 -qmax 40 -crf 16 -b:v 4M "$AUDIO" "${1%.*}_convert.webm" | 
						|
} | 
						|
 | 
						|
"$@"
 | 
						|
 |