summaryrefslogtreecommitdiffstats
path: root/.local/bin
diff options
context:
space:
mode:
authormsglm <msglm@techchud.xyz>2023-01-14 10:33:04 -0600
committermsglm <msglm@techchud.xyz>2023-01-14 10:33:04 -0600
commit0d05ef1e12314985988e567ac22a179d0f646899 (patch)
treede702ad5f7550a27a6fb982e617363ccaca4fecf /.local/bin
downloadmsglm-dotfiles-0d05ef1e12314985988e567ac22a179d0f646899.tar.gz
msglm-dotfiles-0d05ef1e12314985988e567ac22a179d0f646899.tar.bz2
msglm-dotfiles-0d05ef1e12314985988e567ac22a179d0f646899.zip
Inital Commit
Diffstat (limited to '.local/bin')
-rwxr-xr-x.local/bin/audioarticle17
-rwxr-xr-x.local/bin/changewallpaper11
-rwxr-xr-x.local/bin/chineseproverb18
-rwxr-xr-x.local/bin/convertall15
-rwxr-xr-x.local/bin/convertalltype15
-rwxr-xr-x.local/bin/delpaper10
-rwxr-xr-x.local/bin/downvideo13
-rwxr-xr-x.local/bin/getaudio10
-rwxr-xr-x.local/bin/getberts16
-rwxr-xr-x.local/bin/getgif12
-rwxr-xr-x.local/bin/getthumbnail8
-rwxr-xr-x.local/bin/getvideo9
-rwxr-xr-x.local/bin/getwebpage10
-rwxr-xr-x.local/bin/hide64
-rwxr-xr-x.local/bin/joblook38
-rwxr-xr-x.local/bin/makenoextpng10
-rwxr-xr-x.local/bin/maketorrent10
-rwxr-xr-x.local/bin/moveallfileshere10
-rwxr-xr-x.local/bin/paradown10
-rwxr-xr-x.local/bin/playvideo26
-rwxr-xr-x.local/bin/qdownvid13
-rwxr-xr-x.local/bin/reactionvid10
-rwxr-xr-x.local/bin/scuff23
-rwxr-xr-x.local/bin/slidepaper15
-rwxr-xr-x.local/bin/sortunsorted78
-rwxr-xr-x.local/bin/videoaudioloop10
-rwxr-xr-x.local/bin/ytmusic9
-rwxr-xr-x.local/bin/ytsmall10
28 files changed, 500 insertions, 0 deletions
diff --git a/.local/bin/audioarticle b/.local/bin/audioarticle
new file mode 100755
index 0000000..9b044ba
--- /dev/null
+++ b/.local/bin/audioarticle
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+#Description: This script takes in a URL, saves the URL's to a file, then passes it through firefox's readable'
+
+#Axioms: CONTENTDIR
+
+#Dependencies: https://www.npmjs.com/package/readability-cli https://github.com/coqui-ai/TTS https://packages.debian.org/stretch/festival
+
+webpageLocation=$(mktemp)
+wget -O "$webpageLocation" -c "$1"
+
+title=$(/home/"$USER"/.npm-global/bin/readable -q -p "title" "$webpageLocation")
+article=$(/home/"$USER"/.npm-global/bin/readable -q -p "text-content" "$webpageLocation"|iconv -c -f utf-8 -t ascii -)
+
+/home/"$USER"/.local/bin/tts --use_cuda true --text "$article" --out_path "/home/$USER/Media/Videos/Content/$title-$(openssl rand -hex 6).wav" || echo "$article" | text2wave > "/home/$USER/Media/Videos/Content/$title-$(openssl rand -hex 6).wav"
+
+rm "$webpageLocation"
diff --git a/.local/bin/changewallpaper b/.local/bin/changewallpaper
new file mode 100755
index 0000000..45636f2
--- /dev/null
+++ b/.local/bin/changewallpaper
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+#Description: Used to change your wallpaper and theme.
+
+#Axioms: WALLPAPERS
+
+#Dependencies: https://github.com/dylanaraps/pywal
+
+curwal=$(find /home/$USER//Pictures/wallpapers/* -type f | shuf | head -1)
+/home/$USER/.local/bin/wal -i "$curwal"
+echo "$curwal" > /tmp/curwal
diff --git a/.local/bin/chineseproverb b/.local/bin/chineseproverb
new file mode 100755
index 0000000..e6c8f8f
--- /dev/null
+++ b/.local/bin/chineseproverb
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+#Description: Takes in text input (or a random quote from the fortune command), translates it to chinese, translates it back to english, then displays what it made along with the original text.
+
+#Axioms: https://wiki.debian.org/fortune
+
+#Dependencies: https://github.com/argosopentech/argos-translate
+
+
+if [ $# = 0 ]
+then
+ china=$(fortune|argos-translate --from-lang en --to-lang zh)
+else
+ china=$(echo "$1"|argos-translate --from-lang en --to-lang zh)
+fi
+echo "$china"
+echo ""
+echo "$china"|argos-translate --from-lang zh --to-lang en
diff --git a/.local/bin/convertall b/.local/bin/convertall
new file mode 100755
index 0000000..7970a6b
--- /dev/null
+++ b/.local/bin/convertall
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+#Description: Takes input from the user of what type you'd like to convert everything in the current directory to. Using this information, it then uses ffmpeg to convert all files in the folder to that file format.
+
+#Axioms:
+
+#Dependencies: https://wiki.debian.org/ffmpeg https://packages.debian.org/sid/parallel
+
+
+if [ -z "$1" ]
+then
+echo "You didn't give a file type!"
+exit 1
+fi
+ ls -1|grep -v "$1"| parallel ffmpeg -hwaccel auto -i {} -deadline best "{.}.$1"
diff --git a/.local/bin/convertalltype b/.local/bin/convertalltype
new file mode 100755
index 0000000..702d294
--- /dev/null
+++ b/.local/bin/convertalltype
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+#Description: Takes input from the user of two types, one used that will be converted and one to be converted. The first type given is the one converted, the second is what it'll be converted to. Using this information, the program then turns everything of the first time to the second using ffmpeg.
+
+#Axioms:
+
+#Dependencies: https://wiki.debian.org/ffmpeg https://packages.debian.org/sid/parallel
+
+
+if [ -z "$1" ]
+then
+echo "You didn't give a file type!"
+exit 1
+fi
+ ls -1|grep "$1"| parallel ffmpeg -y -hwaccel auto -i {} -deadline best "{.}.$2"
diff --git a/.local/bin/delpaper b/.local/bin/delpaper
new file mode 100755
index 0000000..b7ef44e
--- /dev/null
+++ b/.local/bin/delpaper
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+#Description: Puts the current wallpaper into the trash.
+
+#Axioms:
+
+#Dependencies: https://packages.debian.org/sid/trash-cli changewallpaper
+
+trash "$(cat /tmp/curwal)"
+changewallpaper
diff --git a/.local/bin/downvideo b/.local/bin/downvideo
new file mode 100755
index 0000000..31bc8b9
--- /dev/null
+++ b/.local/bin/downvideo
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+#Description: Takes a list of URLs, ideally anything supported by yt-dlp, then downloads the best quality version of them to your your content directory.
+
+#Axioms: CONTENTDIR
+
+#Dependencies: https://packages.debian.org/sid/yt-dlp
+
+
+for i in "$@"
+do
+yt-dlp -R inf -o "/home/$USER/Videos/Content/%(uploader)s - %(title)s.%(ext)s" -f 'bestvideo[height>=720][fps>=60]+bestaudio/bestvideo+bestaudio/best' -ic --add-metadata --sponsorblock-remove all "$i" &
+done
diff --git a/.local/bin/getaudio b/.local/bin/getaudio
new file mode 100755
index 0000000..8e0ed89
--- /dev/null
+++ b/.local/bin/getaudio
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+#Description: Takes a URL, ideally anything supported by yt-dlp, then downloads the best audio quality version of the URL to your CONTENTDIR.
+
+#Axioms: CONTENTDIR
+
+#Dependencies: https://packages.debian.org/sid/yt-dlp
+
+
+yt-dlp -R inf -o "/home/$USER/Videos/Content/%(uploader)s - %(title)s.%(ext)s" -f bestaudio -ic --add-metadata --sponsorblock-remove all "$1"
diff --git a/.local/bin/getberts b/.local/bin/getberts
new file mode 100755
index 0000000..ca6543d
--- /dev/null
+++ b/.local/bin/getberts
@@ -0,0 +1,16 @@
+#!/bin/zsh
+
+#Description: Downloads as many strips from the comic "dilbert" as it can get its hands on. I primarily use it for data science.
+
+#Axioms: ULTRASPECIFIC
+
+#Dependencies: https://packages.debian.org/sid/parallel https://packages.debian.org/sid/tor https://packages.debian.org/sid/wget https://packages.debian.org/sid/curl https://github.com/ericchiang/pup
+
+
+getbert() {
+ echo $1
+ url=$(curl "$1"|pup 'img[class="img-responsive img-comic"] attr{src}') || exit 1
+ torsocks wget --continue --directory-prefix="/home/$USER/Documents/ComputerScience/programs/lightweight_gan/data/dilbert/" $url
+}
+
+env_parallel --jobs 3 getbert {} ::: $(for year in {1999..2023}; do for month in {01..12}; do for day in {01..31};do echo https://dilbert.com/strip/$year-$month-$day;done;done;done)
diff --git a/.local/bin/getgif b/.local/bin/getgif
new file mode 100755
index 0000000..4c2c02f
--- /dev/null
+++ b/.local/bin/getgif
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+#Description: Takes in a link to some content and what you would like to name it, then downloads and converts said content to a gif in your GIFS folder.
+
+#Axioms: GIFS
+
+#Dependencies: https://packages.debian.org/sid/ffmpeg https://packages.debian.org/sid/tor
+
+
+link=$1
+name=$2
+torsocks ffmpeg -hwaccel auto -i "$link" -deadline best "/home/$USER/Pictures/gif/$name.gif"
diff --git a/.local/bin/getthumbnail b/.local/bin/getthumbnail
new file mode 100755
index 0000000..a619ecc
--- /dev/null
+++ b/.local/bin/getthumbnail
@@ -0,0 +1,8 @@
+#!/bin/sh
+#Description: Takes in a URL and downloads the thumbnail for it (if it exists)
+
+#Axioms:
+
+#Dependencies: https://packages.debian.org/sid/yt-dlp
+
+yt-dlp --write-thumbnail --skip-download "$1"
diff --git a/.local/bin/getvideo b/.local/bin/getvideo
new file mode 100755
index 0000000..f948723
--- /dev/null
+++ b/.local/bin/getvideo
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+#Description: Takes a URL, ideally the URL should be supported by yt-dlp, then downloads the best quality version of the video the URL corresponds to to your content directory.
+
+#Axioms: CONTENTDIR
+
+#Dependencies: https://packages.debian.org/sid/yt-dlp
+
+yt-dlp -R inf -o "/home/$USER/Videos/Content/%(uploader)s - %(title)s.%(ext)s" -f 'bestvideo[height>=720][fps>=60]+bestaudio/bestvideo+bestaudio/best' -ic --add-metadata --sponsorblock-remove all "$1"
diff --git a/.local/bin/getwebpage b/.local/bin/getwebpage
new file mode 100755
index 0000000..fbabb4d
--- /dev/null
+++ b/.local/bin/getwebpage
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+#Description: Downloads a webpage as one, single html file.
+
+#Axioms:
+
+#Dependencies: https://github.com/gildas-lormeau/single-file-cli
+
+
+single-file --browser-executable-path=chromium "--browser-args=[\"--headless\"]" "$1" "$2"
diff --git a/.local/bin/hide b/.local/bin/hide
new file mode 100755
index 0000000..1dc473d
--- /dev/null
+++ b/.local/bin/hide
@@ -0,0 +1,64 @@
+#!/bin/bash
+
+#Description:
+#This hides an image within an image as an overlay. Useful for watermarking images.
+
+#1 is foreground
+#2 is background
+#3 is output
+#gemsize is an env var for dictating how big or small the overlayed photo should be
+#TMPDIR is an env var for dictating where temporary files for this program should be stored
+
+#Axioms:
+
+#Dependencies: https://packages.debian.org/sid/imagemagick
+
+
+if [ "$TMPDIR" = "" ]
+then
+ TMPDIR=/tmp
+fi
+
+
+rotation=$(echo "$RANDOM%360"|bc)
+#widthforeground=$(identify -format "%[fx:w]" "/home/$USER/Pictures/wojak/soy/5486*")
+#heightforeground=$(identify -format "%[fx:h]" "/home/$USER/Pictures/wojak/soy/5486*")
+widthbackground=$(identify -format "%[fx:w]" "$1")
+heightbackground=$(identify -format "%[fx:h]" "$1")
+
+
+if [ "$gemsize" = "" ]
+then
+ foregroundresizefactor=$(echo "$heightbackground*0.15"|bc)x
+else
+ foregroundresizefactor=$(echo "$heightbackground*$gemsize"|bc)x
+fi
+
+foregroundLegalMovingDistanceWidth=$(echo "$widthbackground/2"|bc)
+foregroundLegalMovingDistanceHeight=$(echo "$heightbackground/2"|bc)
+
+foregroundActualMovingDistanceWidth=$(echo "$RANDOM%$foregroundLegalMovingDistanceWidth"|bc)
+foregroundActualMovingDistanceHeight=$(echo "$RANDOM%$foregroundLegalMovingDistanceHeight"|bc)
+
+if [[ $(echo "$RANDOM%2"|bc) == 0 ]]
+then
+ foregroundActualMovingDistanceWidth=-$foregroundActualMovingDistanceWidth
+fi
+
+if [[ $(echo "$RANDOM%2"|bc) == 0 ]]
+then
+ foregroundActualMovingDistanceHeight=-$foregroundActualMovingDistanceHeight
+fi
+
+convert "$2" -alpha set -background none -colorspace RGB -trim -rotate "$rotation" -fuzz 10% -transparent White -resize "$foregroundresizefactor" -trim "$TMPDIR/trans.png"
+composite -dissolve 70% -gravity center -geometry +"$foregroundActualMovingDistanceWidth"+"$foregroundActualMovingDistanceHeight" "$TMPDIR/trans.png" "$1" "$3"
+rm "$TMPDIR/trans.png"
+
+echo "$(identify -ping -format '%[width]' "$3")*0.5"|bc
+echo "$(identify -ping -format '%[height]' "$3")*0.5"|bc
+
+finalwidth=$(echo "$(identify -ping -format '%[width]' "$3")*0.5"|bc)
+finalheight=$(echo "$(identify -ping -format '%[height]' "$3")*0.5"|bc)
+xlocation=$(echo "$finalwidth-$foregroundActualMovingDistanceWidth"|bc)
+ylocation=$(echo "$finalheight-$foregroundActualMovingDistanceWidth"|bc)
+echo "hidden gem is at ($xlocation, $ylocation)"
diff --git a/.local/bin/joblook b/.local/bin/joblook
new file mode 100755
index 0000000..a17dd2d
--- /dev/null
+++ b/.local/bin/joblook
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+#Description: Looks into your JOBDIR's folders for potential jobs, presents them to you, then asks your opinion on them.
+
+#Axioms: JOBDIR
+
+#Dependencies: https://git.techchud.xyz/indeedwatcher
+
+
+numofjobs=1
+potentialjob="$(find /home/"$USER"/Documents/Jobs/Potential -maxdepth 1 -type f | shuf | head -1)"
+if [[ $# = 0 ]]
+then
+ less "$potentialjob"
+ read -r -p "Are you interested? (y/n): " Choice
+ if [ "$Choice" = 'y' ]
+ then
+ mv -v "$potentialjob" /home/$USER/Documents/Jobs/Considering/
+ elif [ "$Choice" = 'n' ]
+ then
+ rm "$potentialjob"
+ fi
+fi
+
+while [[ "$numofjobs" -le "$1" ]]
+do
+ less "$potentialjob"
+ read -r -p "Are you interested? (y/n): " Choice
+ if [ "$Choice" = 'y' ]
+ then
+ mv -v "$potentialjob" /home/$USER/Documents/Jobs/Considering/
+ elif [ "$Choice" = 'n' ]
+ then
+ rm "$potentialjob"
+ fi
+ potentialjob="$(find /home/"$USER"/Documents/Jobs/Potential -maxdepth 1 -type f | shuf | head -1)"
+ numofjobs=$numofjobs+1
+done
diff --git a/.local/bin/makenoextpng b/.local/bin/makenoextpng
new file mode 100755
index 0000000..c6049fa
--- /dev/null
+++ b/.local/bin/makenoextpng
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+#Description: Appends a png extension to all files without an extension.
+
+#Axioms:
+
+#Dependencies: https://packages.debian.org/stretch/xargs
+
+
+find . -type f ! -name "*.*" -print0 | xargs --null -I{} mv {} {}.png
diff --git a/.local/bin/maketorrent b/.local/bin/maketorrent
new file mode 100755
index 0000000..dc4f4bd
--- /dev/null
+++ b/.local/bin/maketorrent
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+#Description: Takes in files and makes torrents for them. Outputs the torrent file to the /tmp/ directory. Gets latest public torrent trackers using a curl command for effective distribution.
+
+#Axioms:
+
+#Dependencies: https://packages.debian.org/sid/mktorrent https://packages.debian.org/sid/curl
+
+
+ mktorrent -v -a udp://tracker.coppersurfer.tk:6969/announce -a udp://tracker.opentrackr.org:1337/announce -a $(curl https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all_udp.txt |sed -e '/^$/d'|shuf|head -1) -o "/tmp/$1.torrent" -n "$1" "$1"
diff --git a/.local/bin/moveallfileshere b/.local/bin/moveallfileshere
new file mode 100755
index 0000000..7761dda
--- /dev/null
+++ b/.local/bin/moveallfileshere
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+#Description: Moves all files in all subdirectories to the current directory.
+
+#Axioms:
+
+#Dependencies:
+
+
+find . -iname "*.*" -exec mv {} . \;
diff --git a/.local/bin/paradown b/.local/bin/paradown
new file mode 100755
index 0000000..60573ab
--- /dev/null
+++ b/.local/bin/paradown
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+#Description: Takes in a list of sites that are supported by gallery-dl and downloads from them in parallel.
+
+#Axioms:
+
+#Dependencies: https://packages.debian.org/sid/parallel https://packages.debian.org/sid/gallery-dl
+
+
+parallel -P 3 --bar gallery-dl -R -1 {} ::: $1
diff --git a/.local/bin/playvideo b/.local/bin/playvideo
new file mode 100755
index 0000000..8f90a52
--- /dev/null
+++ b/.local/bin/playvideo
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+#Description: Shuffles and plays videos from your CONTENTDIR and, upon finishing watching them, removes them. You can pass a number of videos to this program and it'll queue that many videos up for you.
+
+#Axioms: CONTENTDIR
+
+#Dependencies: https://packages.debian.org/sid/mpv
+
+
+numofvids=1
+playablevideo="$(find ~/Videos/Content/ -maxdepth 1 -type f | shuf | head -1)"
+
+if [ $# -eq 0 ]
+then
+ mpv --ontop --geometry=100%:0% --autofit=20%x20% "$playablevideo"
+ rm "$playablevideo"
+ exit
+fi
+
+while [ $numofvids -le $1 ]
+do
+ mpv --ontop --geometry=100%:0% --autofit=20%x20% "$playablevideo"
+ rm "$playablevideo"
+ playablevideo="$(find ~/Videos/Content/ -maxdepth 1 -type f | shuf | head -1)"
+ numofvids=$(($numofvids+1))
+done
diff --git a/.local/bin/qdownvid b/.local/bin/qdownvid
new file mode 100755
index 0000000..759d78b
--- /dev/null
+++ b/.local/bin/qdownvid
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+#Description: Intakes a list of links, ideally links supported by yt-dlp, and enqueues them for download in task-spooler. The downloaded videos are put into ~/Videos/Content/ upon finishing being processed by yt-dlp.
+
+#Axioms: CONTENTDIR
+
+#Dependencies: https://packages.debian.org/sid/yt-dlp https://packages.debian.org/sid/tsp
+
+
+for i in "$@"
+do
+tsp yt-dlp -R inf -o "/home/$USER/Videos/Content/%(uploader)s - %(title)s.%(ext)s" -f 'bestvideo[height>=720][fps>=60]+bestaudio/bestvideo+bestaudio/best' -ic --add-metadata --sponsorblock-remove all "$i"
+done
diff --git a/.local/bin/reactionvid b/.local/bin/reactionvid
new file mode 100755
index 0000000..1469895
--- /dev/null
+++ b/.local/bin/reactionvid
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+#Description: Intakes three parameters. Parameter one is a background video that will have parameter two's video overlayed upon it in the top right. Parameter three will act as the output location for this process.
+
+#Axioms:
+
+#Dependencies: https://packages.debian.org/sid/ffmpeg
+
+
+ffmpeg -i "$1" -stream_loop -1 -i "$2" -filter_complex "[1:v]scale=250:-1[v2];[0:v][v2]overlay=main_w-overlay_w:5:shortest=1;amerge=inputs=2" -c:v libx264 "$3" || ffmpeg -i "$1" -stream_loop -1 -i "$2" -filter_complex "[1:v]scale=250:-1[v2];[0:v][v2]overlay=main_w-overlay_w:5:shortest=1" -c:v libx264 "$3"
diff --git a/.local/bin/scuff b/.local/bin/scuff
new file mode 100755
index 0000000..716ac9c
--- /dev/null
+++ b/.local/bin/scuff
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+#Description: Takes in a video's location as parameter one. Parameter two is the base of the path that several videos created by this program will be outputted to. The outputted videos are scuffed or otherwise degrated in quality to a comedic degree.
+
+#Axioms:
+
+#Dependencies: https://packages.debian.org/sid/ffmpeg
+
+
+ffmpeg -i "$1" -vf scale=144:-1,fps=fps=5 -c:v libvpx -c:a libopus -b:v 1k -b:a 500 -filter:a "volume=30dB,treble=g=70,volume=-25dB" -deadline best "$2-true-scuffed.webm"
+ffmpeg -i "$1" -vf scale=144:-1,fps=fps=5 -c:v libvpx -c:a libopus -b:v 1k -b:a 500 -filter:a "treble=g=70" -deadline best "$2-no-amplify.webm"
+ffmpeg -i "$1" -vf scale=144:-1,fps=fps=5 -c:v libvpx -c:a libopus -b:v 1k -b:a 500 -filter:a "volume=30dB,volume=-25dB" -deadline best "$2-no-treble.webm"
+ffmpeg -i "$1" -vf scale=144:-1,fps=fps=5 -c:v libvpx -c:a libopus -b:v 1k -b:a 500 -deadline best "$2-no-audio-scuff.webm"
+ffmpeg -i "$1" -vf scale=144:-1,fps=fps=5 -c:v libvpx -c:a libopus -b:v 1k -filter:a "volume=30dB,treble=g=70,volume=-25dB" -deadline best "$2-no-audio-compress-true-scuffed.webm"
+ffmpeg -i "$1" -vf scale=144:-1,fps=fps=5 -c:v libvpx -c:a libopus -b:v 1k -filter:a "treble=g=70" -deadline best "$2-no-audio-compress-no-amplify.webm"
+ffmpeg -i "$1" -vf scale=144:-1,fps=fps=5 -c:v libvpx -c:a libopus -b:v 1k -filter:a "volume=30dB,volume=-25dB" -deadline best "$2-no-audio-compress-no-treble.webm"
+#ffmpeg -i "$1" -vf scale=144:-1,fps=fps=5 -c:v libvpx -c:a libopus -b:v 1k -b:a 500 -filter:a "volume=30dB,treble=g=70,volume=-25dB" -deadline best "$2-true-scuffed.ogg"
+#ffmpeg -i "$1" -vf scale=144:-1,fps=fps=5 -c:v libvpx -c:a libopus -b:v 1k -b:a 500 -filter:a "treble=g=70" -deadline best "$2-no-amplify.ogg"
+#ffmpeg -i "$1" -vf scale=144:-1,fps=fps=5 -c:v libvpx -c:a libopus -b:v 1k -b:a 500 -filter:a "volume=30dB,volume=-25dB" -deadline best "$2-no-treble.ogg"
+#ffmpeg -i "$1" -vf scale=144:-1,fps=fps=5 -c:v libvpx -c:a libopus -b:v 1k -b:a 500 -deadline best "$2-no-audio-scuff.ogg"
+#ffmpeg -i "$1" -vf scale=144:-1,fps=fps=5 -c:v libvpx -c:a libopus -b:v 1k -filter:a "volume=30dB,treble=g=70,volume=-25dB" -deadline best "$2-no-audio-compress-true-scuffed.ogg"
+#ffmpeg -i "$1" -vf scale=144:-1,fps=fps=5 -c:v libvpx -c:a libopus -b:v 1k -filter:a "treble=g=70" -deadline best "$2-no-audio-compress-no-amplify.ogg"
+#ffmpeg -i "$1" -vf scale=144:-1,fps=fps=5 -c:v libvpx -c:a libopus -b:v 1k -filter:a "volume=30dB,volume=-25dB" -deadline best "$2-no-audio-compress-no-treble.ogg"
diff --git a/.local/bin/slidepaper b/.local/bin/slidepaper
new file mode 100755
index 0000000..5b8f82b
--- /dev/null
+++ b/.local/bin/slidepaper
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+#Description: A daemon that changes your wallpaper with changewallpaper every 15 minutes.
+
+#Axioms: WALLPAPERS
+
+#Dependencies: changewallpaper
+
+
+cd ~/Pictures/wallpapers/ || exit 1
+
+while true; do
+/home/"$USER"/Documents/Scripts/changewallpaper & > /dev/null 2>&1
+sleep 15m
+done
diff --git a/.local/bin/sortunsorted b/.local/bin/sortunsorted
new file mode 100755
index 0000000..7691ca3
--- /dev/null
+++ b/.local/bin/sortunsorted
@@ -0,0 +1,78 @@
+#!/bin/bash
+
+#Description: This program takes a paramater for the amount of videos you would like to sort from your UNSORTEDIR. If you do not pass a paramater, it will assume that you only wish to sort one video. These videos are then moved to ~/Videos/ with a new name that you provide or deleted depending on your choice.
+
+#Axioms: UNSORTEDDIR
+
+#Dependencies: https://packages.debian.org/sid/mpv
+
+numofvids=1
+playablevideo="$(find ~/Videos/unsorted/ -maxdepth 1 -type f | shuf | head -1)"
+
+if [[ $# = 0 ]]
+then
+ if [[ "${playablevideo##*.}" == "png" || "${playablevideo##*.}" == "jpg" || "${playablevideo##*.}" == "jpeg" || "${playablevideo##*.}" == "webp" ]]
+ then
+ feh "$playablevideo"
+ else
+ mpv --ontop --geometry=50%:50% --autofit=50%x50% "$playablevideo"
+ fi
+ echo "Video played was: $playablevideo"
+ read -r -p "Was This quality? (y/n): " Choice
+ if [ "$Choice" = 'y' ]
+ then
+ read -r -p "What would you like to name the video?: " Name
+ touch "$playablevideo"
+ if [[ "${playablevideo##*.}" == "gif" ]]
+ then
+ mv "$playablevideo" "/home/$USER/Pictures/gif/$Name.${playablevideo##*.}"
+ elif [[ "${playablevideo##*.}" == "png" || "${playablevideo##*.}" == "jpg" || "${playablevideo##*.}" == "jpeg" || "${playablevideo##*.}" == "webp" ]]
+ then
+ mv "$playablevideo" "/home/$USER/Pictures/$Name.${playablevideo##*.}"
+ else
+ mv "$playablevideo" "/home/$USER/Videos/$Name.${playablevideo##*.}"
+ fi
+
+ exit
+ elif [ "$Choice" = 'n' ]
+ then
+ rm "$playablevideo"
+ else
+ echo "You did nothing..."
+ fi
+ exit
+
+fi
+
+while [[ "$numofvids" -le "$1" ]]
+do
+ if [[ "${playablevideo##*.}" == "png" || "${playablevideo##*.}" == "jpg" || "${playablevideo##*.}" == "jpeg" || "${playablevideo##*.}" == "webp" ]]
+ then
+ feh "$playablevideo"
+ else
+ mpv --ontop --geometry=50%:50% --autofit=50%x50% "$playablevideo"
+ fi
+ echo "Video played was: $playablevideo"
+ read -r -p "Was This quality? (y/n): " Choice
+ if [ "$Choice" = 'y' ]
+ then
+ read -r -p "What would you like to name the video?: " Name
+ touch "$playablevideo"
+ if [[ "${playablevideo##*.}" == "gif" ]]
+ then
+ mv "$playablevideo" "/home/$USER/Pictures/gif/$Name.${playablevideo##*.}"
+ elif [[ "${playablevideo##*.}" == "png" || "${playablevideo##*.}" == "jpg" || "${playablevideo##*.}" == "jpeg" || "${playablevideo##*.}" == "webp" ]]
+ then
+ mv "$playablevideo" "/home/$USER/Pictures/$Name.${playablevideo##*.}"
+ else
+ mv "$playablevideo" "/home/$USER/Videos/$Name.${playablevideo##*.}"
+ fi
+ elif [ "$Choice" = 'n' ]
+ then
+ rm "$playablevideo"
+ else
+ echo "You did nothing..."
+ fi
+ playablevideo="$(find ~/Videos/unsorted/ -maxdepth 1 -type f | shuf | head -1)"
+ numofvids=$numofvids+1
+done
diff --git a/.local/bin/videoaudioloop b/.local/bin/videoaudioloop
new file mode 100755
index 0000000..0a67ad3
--- /dev/null
+++ b/.local/bin/videoaudioloop
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+#Description: Takes in three parameters. Parameter one is a video, gif, or image that you would like to be looped with audio. Parameter 2 is the audio that you would like to play with the video, gif, or image. Parameter 3 is the output file for the combination of parameter 1 and parameter 2.
+
+#Axioms:
+
+#Dependencies: https://packages.debian.org/sid/ffmpeg
+
+
+ffmpeg -y -stream_loop -1 -i "$1" -i "$2" -shortest "$3"
diff --git a/.local/bin/ytmusic b/.local/bin/ytmusic
new file mode 100755
index 0000000..8a725a8
--- /dev/null
+++ b/.local/bin/ytmusic
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+#Description: Takes in a yt-dlp compatible URL and extracts the best audio it can from it and converts it to the opus format.
+
+#Axioms:
+
+#Dependencies: https://packages.debian.org/sid/yt-dlp
+
+yt-dlp --audio-format opus -x -f 'bestaudio' "$1"
diff --git a/.local/bin/ytsmall b/.local/bin/ytsmall
new file mode 100755
index 0000000..1e99f27
--- /dev/null
+++ b/.local/bin/ytsmall
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+#Description: Takes in a set of yt-dlp compatible URLs and downloads a combination of quality that's lower than 8mb and is merged into one format if possible.
+
+#Axioms:
+
+#Dependencies: https://packages.debian.org/sid/yt-dlp
+
+
+yt-dlp -o '%(title)s.%(ext)s' -R inf -N 3 --sponsorblock-remove all -ic --prefer-free-formats --merge-output-format mp4 -f '(bestvideo[filesize<7m]+bestaudio/best[filesize<8M]/bestvideo[filesize<6m]+bestaudio/bestvideo[filesize<5m]+bestaudio/bestvideo[filesize<4m]+bestaudio/bestvideo[filesize<3m]+bestaudio/bestvideo[filesize<2m]+bestaudio/bestvideo[filesize<1m]+bestaudio/worst[filesize<8M])[filesize<8m]' $@