Compare commits
17 Commits
49eba52599
...
48ef0718cc
Author | SHA1 | Date | |
---|---|---|---|
48ef0718cc | |||
a2b2ff9441 | |||
82b8648ff6 | |||
766f64c4a6 | |||
a361543acf | |||
2ee3e3c322 | |||
6e60755a15 | |||
7c71b8b614 | |||
3c883b3808 | |||
69642a9041 | |||
76f5fb5053 | |||
46d3cf2484 | |||
f5c30419a8 | |||
6c238989f8 | |||
![]() |
326b550b2f | ||
3028b35bcd | |||
31c11366c8 |
@ -1,43 +1,33 @@
|
||||
#!/bin/bash
|
||||
CACHE_DIR="$HOME/.cache/audio-control"
|
||||
|
||||
[ "$#" -eq 0 ] &&
|
||||
echo "Requires a command. Run with 'help' for a list of commands." &&
|
||||
if [ "$#" -eq 0 ]
|
||||
then
|
||||
echo "Requires a command. Run with 'help' for a list of commands."
|
||||
exit 1
|
||||
[ "$#" -gt 1 ] &&
|
||||
echo "Too many arguments. Run with 'help' for a list of commands." &&
|
||||
fi
|
||||
if [ "$#" -gt 1 ]
|
||||
then
|
||||
echo "Too many arguments. Run with 'help' for a list of commands."
|
||||
exit 1
|
||||
|
||||
[ -d $CACHE_DIR ] ||
|
||||
mkdir -p $CACHE_DIR
|
||||
|
||||
query_outport() {
|
||||
active_port="$(pactl list sinks | grep 'Active Port')"
|
||||
if [[ $active_port == *"speaker"* ]]
|
||||
then
|
||||
echo "SPK" > $CACHE_DIR/port
|
||||
else
|
||||
echo "HDF" > $CACHE_DIR/port
|
||||
fi
|
||||
pactl list sinks | awk '/Mute/ { if ($2 == "no") print "VOL"; else print "MUT"; }' > $CACHE_DIR/vol_status
|
||||
pactl list sinks | grep '^[[:space:]]Volume:' | head -n $(( $SINK + 1 )) | tail -n 1 | sed -e 's,.* \([0-9][0-9]*\)%.*,\1,' > $CACHE_DIR/vol_level
|
||||
}
|
||||
fi
|
||||
|
||||
case $1 in
|
||||
"mute")
|
||||
pactl set-sink-mute 0 toggle
|
||||
pactl list sinks | awk '/Mute/ { if ($2 == "no") print "VOL"; else print "MUT"; }' > $CACHE_DIR/vol_status;;
|
||||
pactl list sinks | awk '/Mute/ { if ($2 == "no") print "VOL"; else print "MUT"; }'
|
||||
;;
|
||||
"vol-up")
|
||||
pactl set-sink-volume 0 +5%
|
||||
pactl list sinks | grep '^[[:space:]]Volume:' | head -n $(( $SINK + 1 )) | tail -n 1 | sed -e 's,.* \([0-9][0-9]*\)%.*,\1,' > $CACHE_DIR/vol_level;;
|
||||
pactl list sinks | grep '^[[:space:]]Volume:' | head -n $(( SINK + 1 )) | tail -n 1 | sed -e 's,.* \([0-9][0-9]*\)%.*,\1,'
|
||||
;;
|
||||
"vol-down")
|
||||
pactl set-sink-volume 0 -5%
|
||||
pactl list sinks | grep '^[[:space:]]Volume:' | head -n $(( $SINK + 1 )) | tail -n 1 | sed -e 's,.* \([0-9][0-9]*\)%.*,\1,' > $CACHE_DIR/vol_level;;
|
||||
pactl list sinks | grep '^[[:space:]]Volume:' | head -n $(( SINK + 1 )) | tail -n 1 | sed -e 's,.* \([0-9][0-9]*\)%.*,\1,'
|
||||
;;
|
||||
"reset")
|
||||
pactl set-sink-volume 0 50%
|
||||
pactl list sinks | grep '^[[:space:]]Volume:' | head -n $(( $SINK + 1 )) | tail -n 1 | sed -e 's,.* \([0-9][0-9]*\)%.*,\1,' > $CACHE_DIR/vol_level;;
|
||||
"toggle-port")
|
||||
query_outport;;
|
||||
pactl list sinks | grep '^[[:space:]]Volume:' | head -n $(( SINK + 1 )) | tail -n 1 | sed -e 's,.* \([0-9][0-9]*\)%.*,\1,'
|
||||
;;
|
||||
"help")
|
||||
echo "USAGE: audio-control <command>
|
||||
|
||||
|
2
backup
2
backup
@ -1,2 +1,2 @@
|
||||
#!/bin/bash
|
||||
rsync -aAXv / --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/usr/local/share/music/*"} $1
|
||||
rsync -aAXv --delete "$1" --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/media/music/*"} "$2"
|
||||
|
118
d6
Executable file
118
d6
Executable file
@ -0,0 +1,118 @@
|
||||
#!/bin/bash
|
||||
# This is free and unencumbered software released into the public domain.
|
||||
#
|
||||
# Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||
# distribute this software, either in source code form or as a compiled
|
||||
# binary, for any purpose, commercial or non-commercial, and by any
|
||||
# means.
|
||||
#
|
||||
# In jurisdictions that recognize copyright laws, the author or authors
|
||||
# of this software dedicate any and all copyright interest in the
|
||||
# software to the public domain. We make this dedication for the benefit
|
||||
# of the public at large and to the detriment of our heirs and
|
||||
# successors. We intend this dedication to be an overt act of
|
||||
# relinquishment in perpetuity of all present and future rights to this
|
||||
# software under copyright law.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
# OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
# For more information, please refer to <http://unlicense.org/>
|
||||
|
||||
VERSION="1.0"
|
||||
|
||||
function print_usage() {
|
||||
echo "USAGE: d6 [OPTIONS]"
|
||||
}
|
||||
|
||||
function print_help() {
|
||||
print_usage
|
||||
echo "OPTIONS:
|
||||
-v print program version
|
||||
-h print this help information
|
||||
-n <num> number of words in generated password (default 3)
|
||||
-f <file> custom dictionary file (default
|
||||
~/.local/share/wordlist.txt)
|
||||
-d <delim> delimiter used between words (default \"\", i.e. NONE)
|
||||
-c <case> the case used for the generated words, can be: upper,
|
||||
lower, capital (default \"capital\")"
|
||||
}
|
||||
|
||||
function test_case() {
|
||||
if [ $1 != "lower" ] && [ $1 != "upper" ] && [ $1 != "capital" ]
|
||||
then
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
|
||||
NUM_WORDS=3
|
||||
WORDLIST="$HOME/.local/share/wordlist.txt"
|
||||
DELIMITER=""
|
||||
CASE="capital"
|
||||
|
||||
while getopts "vhn:f:d:c:" arg
|
||||
do
|
||||
case $arg in
|
||||
v)
|
||||
echo "d6 v$VERSION"
|
||||
exit 0;;
|
||||
h)
|
||||
print_help
|
||||
exit 0;;
|
||||
n)
|
||||
NUM_WORDS=$OPTARG;;
|
||||
f)
|
||||
WORDLIST="$OPTARG";;
|
||||
d)
|
||||
DELIMITER="$OPTARG";;
|
||||
c)
|
||||
if test_case $OPTARG
|
||||
then
|
||||
CASE="$OPTARG"
|
||||
else
|
||||
echo "'$OPTARG' is an invalid case. Use 'capital', 'lower', or 'upper'."
|
||||
exit 1
|
||||
fi;;
|
||||
?)
|
||||
print_usage
|
||||
exit 2
|
||||
esac
|
||||
done
|
||||
|
||||
WORDS=""
|
||||
|
||||
for i in $(seq 1 $NUM_WORDS)
|
||||
do
|
||||
ROLLS=""
|
||||
for j in {1..5}
|
||||
do
|
||||
ROLLS="$((1 + $RANDOM % 6))$ROLLS"
|
||||
done
|
||||
|
||||
if [ $CASE == "upper" ]
|
||||
then
|
||||
WORD="$(awk "/$ROLLS/{ print toupper(\$2) }" $WORDLIST)"
|
||||
elif [ $CASE == "lower" ]
|
||||
then
|
||||
WORD="$(awk "/$ROLLS/{ print tolower(\$2) }" $WORDLIST)"
|
||||
else
|
||||
WORD="$(awk "/$ROLLS/{ print \$2 }" $WORDLIST)"
|
||||
WORD="${WORD^}"
|
||||
fi
|
||||
|
||||
if [ $i -eq $NUM_WORDS ]
|
||||
then
|
||||
WORDS="${WORDS}${WORD}"
|
||||
else
|
||||
WORDS="${WORDS}${WORD}${DELIMITER}"
|
||||
fi
|
||||
done
|
||||
|
||||
echo "$WORDS"
|
10
setbg
10
setbg
@ -1,8 +1,12 @@
|
||||
#!/bin/sh
|
||||
|
||||
[ $# -ne 1 ] &&
|
||||
echo "Requires an image argument." &&
|
||||
if [ $# -gt 1 ]
|
||||
then
|
||||
echo "Too many arguments"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
[ $# -eq 1 ] &&
|
||||
cp $1 $HOME/.local/share/wallpaper.jpg
|
||||
|
||||
cp $1 $HOME/.local/share/wallpaper.jpg
|
||||
xwallpaper --zoom $HOME/.local/share/wallpaper.jpg
|
||||
|
@ -1,2 +0,0 @@
|
||||
#!/bin/bash
|
||||
df -h | awk '{ if ($6 == "/") printf "/: " $4; if ($6 == "/home") printf " home: " $4; if ($6 == "/home/music") printf " music: " $4; }' > $HOME/.cache/free-space
|
@ -1,10 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
DATE="$(date +"%F %H:%M" )"
|
||||
NETWORK="eth: $(cat /sys/class/net/enp34s0/operstate)"
|
||||
SPACE="$(cat $HOME/.cache/free-space)"
|
||||
vol_status="$(cat $HOME/.cache/audio-control/vol_status)"
|
||||
vol_level="$(cat $HOME/.cache/audio-control/vol_level)%"
|
||||
VOLUME="$vol_status $vol_level"
|
||||
UPDATES="Upd: $(checkupdates -n | wc -l)"
|
||||
xsetroot -name "$VOLUME | $NETWORK | $SPACE | $UPDATES | $DATE"
|
95
sync-camera
Executable file
95
sync-camera
Executable file
@ -0,0 +1,95 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
|
||||
CAMERA_DEVICE=""
|
||||
MOUNT_DIR="/tmp/camera-mount"
|
||||
OUTPUT_DIR=""
|
||||
REMOVE_FILES=0
|
||||
|
||||
function print_usage() {
|
||||
echo "USAGE: ${0##*/} -d <device> -o <dir> [-t <dir>] [-r]"
|
||||
}
|
||||
|
||||
while getopts "d:o:t:rh" opt
|
||||
do
|
||||
case "$opt" in
|
||||
'd')
|
||||
CAMERA_DEVICE=${OPTARG}
|
||||
;;
|
||||
'o')
|
||||
OUTPUT_DIR=${OPTARG}
|
||||
;;
|
||||
't')
|
||||
MOUNT_DIR="${OPTARG}"
|
||||
;;
|
||||
'r')
|
||||
REMOVE_FILES=1
|
||||
;;
|
||||
'h')
|
||||
print_usage
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
print_usage
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "$CAMERA_DEVICE" ]
|
||||
then
|
||||
echo "Failed to set the camera device."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$OUTPUT_DIR" ]
|
||||
then
|
||||
echo "Failed to set the output directory."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! mkdir "$MOUNT_DIR"
|
||||
then
|
||||
echo "Unable to create mount directory '$MOUNT_DIR'."
|
||||
exit 1
|
||||
fi
|
||||
if ! sudo mount -o "uid=$(id --user),gid=$(id --group)" "$CAMERA_DEVICE" "$MOUNT_DIR"
|
||||
then
|
||||
rmdir "$MOUNT_DIR"
|
||||
fi
|
||||
|
||||
while IFS= read -r -d '' INPUT_FILE
|
||||
do
|
||||
OUTPUT_PATH="$OUTPUT_DIR/${INPUT_FILE##*/}"
|
||||
if ! [ -f "$OUTPUT_PATH" ]
|
||||
then
|
||||
echo "Copying ${INPUT_FILE} to ${OUTPUT_PATH} ..."
|
||||
cp "$INPUT_FILE" "${OUTPUT_PATH::-4}.jpg"
|
||||
fi
|
||||
|
||||
if [ $REMOVE_FILES -eq 1 ]
|
||||
then
|
||||
echo "Removing ${INPUT_FILE} and ${INPUT_FILE::-4}.THM ..."
|
||||
rm -f "$INPUT_FILE" "${INPUT_FILE::-4}.THM"
|
||||
fi
|
||||
done < <(find "$MOUNT_DIR" -type f -name '*.JPG' -print0)
|
||||
|
||||
while IFS= read -r -d '' INPUT_FILE
|
||||
do
|
||||
OUTPUT_PATH="$OUTPUT_DIR/${INPUT_FILE##*/}"
|
||||
if ! [ -f "$OUTPUT_PATH" ]
|
||||
then
|
||||
echo "Converting ${INPUT_FILE} to MP4 at ${OUTPUT_PATH} ..."
|
||||
ffmpeg -loglevel fatal -nostdin -i "$INPUT_FILE" "${OUTPUT_PATH::-4}.mp4"
|
||||
fi
|
||||
|
||||
if [ $REMOVE_FILES -eq 1 ]
|
||||
then
|
||||
echo "Removing ${INPUT_FILE} and ${INPUT_FILE::-4}.THM ..."
|
||||
rm -f "$INPUT_FILE" "${INPUT_FILE::-4}.THM"
|
||||
fi
|
||||
done < <(find "$MOUNT_DIR" -type f -name '*.MOV' -print0)
|
||||
|
||||
sudo umount "$MOUNT_DIR"
|
||||
rmdir "$MOUNT_DIR"
|
Loading…
x
Reference in New Issue
Block a user