new scripts

This commit is contained in:
rootniformaticaservice 2022-11-08 15:20:26 -03:00
parent 7f0402961b
commit 5771c67ff0
25 changed files with 330 additions and 153 deletions

View File

@ -1,3 +1,3 @@
# scripts
scripts personales
other personal scripts

28
capturemedia.sh Executable file
View File

@ -0,0 +1,28 @@
#!/bin/sh
. $HOME/.wmvar
DATE=`date +%m-%d-%Y_%H:%M:%S`
WEBCAM="ffplay -f video4linux2 -i /dev/video0 -video_size 420x340 -fflags nobuffer"
RECORD_AUDIO="arecord -f cd -t wav capture-a_$DATE.wav"
RECORD_VIDEO="ffmpeg -f x11grab -s $(xdpyinfo | awk '/dimensions/ {print $2}') -r 25 -i :0.0+0,0 capture-v_$DATE.mp4"
RECORD_AUDIO_VIDEO="ffmpeg -f alsa -ac 2 -i default -f x11grab -i :0.0+0,0 -acodec ac3 -ab 128k -f matroska -s $(xdpyinfo | awk '/dimensions/ {print $2}') -vcodec libx264 -preset ultrafast -qp 16 capture-av_$DATE.mp4"
PROMPT=$(echo "webcam\naudio\nvideo\naudiovideo\nstop" | $XMENU)
case $PROMPT in
webcam)
$WEBCAM
;;
audiovideo)
$RECORD_AUDIO_VIDEO & echo $! > /tmp/capturemedia.pid
;;
video)
$RECORD_VIDEO & echo $! > /tmp/capturemedia.pid
;;
audio)
$RECORD_AUDIO & echo $! > /tmp/capturemedia.pid
;;
stop)
kill $(cat /tmp/capturemedia.pid)
;;
esac

View File

@ -1,12 +0,0 @@
#/bin/sh
HELP="ffmpegcleaner.sh <original_file> <clean_file>"
case $1 in
-h)
echo $HELP
;;
*)
ffmpeg -i "$1" -map 0 -map_metadata -1 -c:v copy -c:a copy -c:s copy -fflags +bitexact -flags:v +bitexact -flags:a +bitexact -flags:s +bitexact "$2"
;;
esac

8
ffplayer.sh Normal file → Executable file
View File

@ -1,12 +1,4 @@
#!/bin/sh
# ffplayer.sh by @root.sti
# play from youtube one line
# yt-dlp "$(ytfzf -I L "$1")" -o - | ffplay - -autoexit -loglevel quiet
# play from odyse in one line
# yt-dlp "$(ytfzf -I L -c O "$1")" -o - | ffplay - -autoexit -loglevel quiet'
# play with ytfzf
yt-dlp "$@" -o - | ffplay - -autoexit -loglevel quiet

23
filetoclip.sh Executable file
View File

@ -0,0 +1,23 @@
#!/bin/sh
# go back with .. #
# exit with :quit #
. $HOME/.wmvar
while true; do
target=$(ls -F | grep '.sh\|.txt\|/' | $XMENU)
if [ -d "$target" ]; then
cd $target
elif [ $target = ":quit" ]; then
break
else
xsel -b < $PWD/$target &&
xsel -ob | xsel -i &&
break
fi
done

4
fzf_launcher.sh Executable file
View File

@ -0,0 +1,4 @@
#!/bin/sh
cmd=$(ls /usr/share/applications | fzf)
gtk-launch $cmd > /dev/null

View File

@ -1,20 +0,0 @@
## script by: root.sti ##
## dependencias: fzf; mplayer/mpv ##
#!/bin/bash
MDIR="/path/to/music"
cd $MDIR
while true; do
out=$(fzf --height=100% --layout=reverse --exact --print-query -m)
if [ "$out" == ":quit" ]; then
exit 0
else
mplayer $out
fi
done

13
fzf_musicplayer.sh Executable file
View File

@ -0,0 +1,13 @@
#!/bin/sh
MDIR="$HOME/Música"
while true; do
INPUT=$(find $MDIR -type f | fzf --height=100% --layout=reverse --exact --print-query -m)
if [ "$INPUT" = ":quit" ]; then
exit 0
else
for f in $INPUT ; do ffplay -nodisp -autoexit "$f"; done
fi
done

23
fzf_proces.sh Executable file
View File

@ -0,0 +1,23 @@
#!/bin/sh
ACT=$(echo "pause\ncontinue\nkill" | fzf --exact --print-query | tail -n 1)
PROC=$(pgrep -a -u marulo | cut -c 1-100 | fzf --exact --print-query | tail -n 1 | cut -d ' ' -f 1)
if [ -n "$ACT" ]; then
if [ -n "$PROC" ]; then
case $ACT in
pause)
kill -STOP $PROC
;;
continue)
kill -CONT $PROC
;;
kill)
kill $PROC
;;
esac
fi
fi

80
giffetch.sh Normal file → Executable file
View File

@ -1,4 +1,82 @@
#!/bin/bash
clear && linuxlogo -g -k -F " > #H - \n > #C \n > #N #P #X #T - #M \n > #U \n > Ram #R" && chafa -s 50 /path/to/image.gif
# giffetch by @root.sti
# some info parts are based on "Teal Dulcet - Linux-System-Information" script
# dependences: chafa
GIF_PATH="/home/marulo/Imágenes/gif/void.gif"
if [[ $# -ne 0 ]]; then
echo "Usage: $0" >&2
exit 1
fi
# Check if on Linux
if ! echo "$OSTYPE" | grep -iq "linux"; then
echo "Error: This script must be run on Linux." >&2
exit 1
fi
# toiec <KiB>
toiec() {
echo "$(printf "%'d" $(( $1 / 1024 ))) MiB$([[ $1 -ge 1048576 ]] && echo " ($(numfmt --from=iec --to=iec-i "${1}K")B)")"
}
# tosi <KiB>
tosi() {
echo "$(printf "%'d" $(( (($1 * 1024) / 1000) / 1000 ))) MB$([[ $1 -ge 1000000 ]] && echo " ($(numfmt --from=iec --to=si "${1}K")B)")"
}
. /etc/os-release
echo -e "\n\033[36m · Linux Distribution: \033[0m\t\t \033[37m ${PRETTY_NAME:-$ID-$VERSION_ID} \033[0m"
KERNEL=$(</proc/sys/kernel/osrelease) # uname -r
echo -e "\033[36m · Linux Kernel: \033[0m\t\t \033[37m $KERNEL \033[0m"
mapfile -t CPU < <(sed -n 's/^model name[[:blank:]]*: *//p' /proc/cpuinfo | uniq)
if [[ -z "$CPU" ]]; then
mapfile -t CPU < <(lscpu | grep -i '^model name' | sed -n 's/^.\+:[[:blank:]]*//p' | uniq)
fi
if [[ -n "$CPU" ]]; then
echo -e "\033[36m · Processor (CPU): \033[0m\t\t \033[37m ${CPU[0]}$([[ ${#CPU[*]} -gt 1 ]] && printf '\n\t\t\t\t%s' "${CPU[@]:1}") \033[0m"
fi
CPU_THREADS=$(nproc --all) # $(lscpu | grep -i '^cpu(s)' | sed -n 's/^.\+:[[:blank:]]*//p')
CPU_CORES=$(lscpu -ap | grep -v '^#' | awk -F, '{ print $2 }' | sort -nu | wc -l)
CPU_SOCKETS=$(lscpu | grep -i '^socket(s)' | sed -n 's/^.\+:[[:blank:]]*//p') # $(lscpu -ap | grep -v '^#' | awk -F, '{ print $3 }' | sort -nu | wc -l)
echo -e "\033[36m · CPU Sockets/Cores/Threads: \033[0m\t \033[37m $CPU_SOCKETS/$CPU_CORES/$CPU_THREADS \033[0m"
ARCHITECTURE=$(getconf LONG_BIT)
echo -e "\033[36m · Architecture: \033[0m\t\t \033[37m $HOSTTYPE (${ARCHITECTURE}-bit) \033[0m"
MEMINFO=$(</proc/meminfo)
TOTAL_PHYSICAL_MEM=$(echo "$MEMINFO" | awk '/^MemTotal:/ {print $2}')
echo -e "\033[36m · Total memory (RAM): \033[0m\t\t \033[37m $(toiec "$TOTAL_PHYSICAL_MEM") ($(tosi "$TOTAL_PHYSICAL_MEM")) \033[0m"
TOTAL_SWAP=$(echo "$MEMINFO" | awk '/^SwapTotal:/ {print $2}')
echo -e "\033[36m · Total swap space: \033[0m\t\t \033[37m $(toiec "$TOTAL_SWAP") ($(tosi "$TOTAL_SWAP")) \033[0m"
for lspci in lspci /sbin/lspci; do
if command -v $lspci >/dev/null; then
mapfile -t GPU < <($lspci 2>/dev/null | grep -i 'vga\|3d\|2d' | sed -n 's/^.*: //p')
break
fi
done
if [[ -n "$GPU" ]]; then
echo -e "\033[36m · Graphics Processor (GPU): \033[0m\t \033[37m ${GPU[0]}$([[ ${#GPU[*]} -gt 1 ]] && printf '\n\t\t\t\t%s' "${GPU[@]:1}") \033[0m"
fi
HOSTNAME_FQDN=$(hostname -f) # hostname -A
echo -e "\033[36m · Hostname: \033[0m\t\t\t \033[37m $HOSTNAME_FQDN \033[0m"
echo -e "\033[36m · Bash Version: \033[0m\t\t \033[37m $BASH_VERSION \033[0m"
if [[ -c /dev/tty ]]; then
stty raw min 0 time 10 </dev/tty
read -p $'\x05' -rs -t 1 TERMINAL </dev/tty || true
stty cooked </dev/tty
fi
echo -e "\r\033[36m · Terminal: \033[0m\t\t\t \033[37m $TERM${TERMINAL:+ ($TERMINAL)} \033[0m"
chafa -s 46 $GIF_PATH

21
open.sh Executable file
View File

@ -0,0 +1,21 @@
#!/bin/sh
# go back with .. #
. $HOME/.wmvar
while true; do
input=$(ls | cut -c 1-100 | $XMENU)
if [ -d "$input" ]; then
cd $input
elif [ $input = ":quit" ]; then
break
else
vi-nuke.sh $input & break
fi
done

18
proces.sh Executable file
View File

@ -0,0 +1,18 @@
#!/bin/sh
. $HOME/.wmvar
SIGNAL=$(echo "pause\ncontinue\nkill" | $XMENU)
PROC=$(pgrep -a -u $USER | cut -c 1-100 | $XMENU | cut -d ' ' -f 1)
case $SIGNAL in
pause)
kill -STOP $PROC
;;
continue)
kill -CONT $PROC
;;
kill)
kill $PROC
;;
esac

12
scratchpad.sh Executable file
View File

@ -0,0 +1,12 @@
#!/bin/sh
. $HOME/.wmvar
if [ -z "$(xdotool search --classname scratchpad)" ]; then
$TERMINAL -bc -g 100x26 -name scratchpad &
else
xdotool search --onlyvisible --classname scratchpad windowunmap \
|| xdotool search --classname scratchpad windowmap
fi

33
screenshot.sh Normal file → Executable file
View File

@ -1,33 +1,36 @@
#!/bin/bash
OPTIONS=$(echo -e "desktop\nscreenshot\nwindow\nselection\nedit\ntelegram\ns-telegram" | dmenu -i -l 8)
. $HOME/.wmvar
TARGET=$(pfw)
OPTIONS=$(echo -e "desktop\nfancy\nwindow\nmultiwindow\nselection\nmultiselect\nedit\ntelegram\ns-telegram" | $XMENU)
DATE=`date +%m-%d-%Y_%H:%M:%S`
case $OPTIONS in
desktop)
import -w root ~/Imágenes/screenshot/screenshot_$DATE.png
;;
screenshot)
import -w root /tmp/screenshot.png
convert /tmp/screenshot.png -gravity South -font DejaVu-Sans-Bold-Oblique -background transparent -fill 'rgba(255,255,255,0.35)' -pointsize 50 -annotate +500+4 '#root.sti' ~/Imágenes/screenshot/screenshot_$DATE.png
fancy)
import -w root /tmp/screenshot.png
convert /tmp/screenshot.png -gravity South -font DejaVu-Sans-Bold-Oblique -background transparent -fill 'rgba(255,255,255,0.35)' -pointsize 50 -annotate +500+4 '#root.sti' ~/Imágenes/screenshot/screenshot_$DATE.png
;;
window)
import -w $(xdotool getwindowfocus) ~/Imágenes/screensot/screenshot_$DATE.png
import -w $TARGET ~/Imágenes/screenshot/screenshot_$DATE.png
;;
multiwindow)
rm /tmp/*.png && import -screen -snaps $(echo -e "2\n3\n4\n5\n6" | $XMENU) /tmp/screenshot.png && convert -background black -append /tmp/*.png ~/Imágenes/screenshot/window_compose_$DATE.png
;;
selection)
import ~/Imágenes/screensot/screenshot_$DATE.png
import ~/Imágenes/screenshot/screenshot_$DATE.png
;;
edit)
import -w root /tmp/screenshot.png && sleep 1; display -backdrop -background '#000000' -foreground '#55af66' /tmp/screenshot_$DATE.png
;;
telegram)
screenshottlg.sh
multiselect)
rm /tmp/*.png && import -snaps $(echo -e "2\n3\n4\n5\n6" | $XMENU) /tmp/screeshot.png && convert -background black -append /tmp/*.png ~/Imágenes/screenshot/selection_compose_$DATE.png
;;
edit)
import -w root /tmp/screenshot_edit.png && sleep 1; display -backdrop -background '#000000' -foreground '#55af66' /tmp/screenshot_edit.png
;;
quit)
exit 0
;;
*)
;;
esac
esac
pkill -SIGUSR1 herbe & herbe "screenshot /tmp/"

View File

@ -1,4 +0,0 @@
#!/bin/bash
SEND_TO=$(dmenu -i -l 8 < .tlg_users)
scrot -q 100 -s -o "/tmp/scrot_tmp.png" && telegram-cli -W --exec "send_photo $SEND_TO /tmp/scrot_tmp.png"

View File

@ -1,4 +0,0 @@
#!/bin/bash
SEND_TO=$(dmenu -i -l 8 < .tlg_users)
scrot -q 100 -o "/tmp/scrot_tmp.png" && telegram-cli -W --exec "send_photo $SEND_TO /tmp/scrot_tmp.png"

4
simplefetch.sh Normal file → Executable file
View File

@ -31,8 +31,8 @@ echo "
\033[36m + Processor (Cpu): \033[0m .............\033[37m ${cpu} \033[0m
\033[36m + Graphics Processor (GPU):\033[0m .....\033[37m ${gpu} \033[0m
\033[36m + Screen: \033[0m ......................\033[37m ${screen} \033[0m
\033[36m + Ram: \033[0m .........................\033[37m ${memtotal}Mib - ${memavailable}Mib \033[0m
\033[36m + Swap: \033[0m ........................\033[37m ${swaptotal}Mib - ${swapfree}Mib \033[0m
\033[36m + Ram: \033[0m .........................\033[37m $(echo ${memtotal}-${memavailable} | bc)Mib / ${memtotal}Mib \033[0m
\033[36m + Swap: \033[0m ........................\033[37m $(echo ${swaptotal}-${swapfree} | bc)Mib / ${swaptotal}Mib \033[0m
\033[36m + Packages: \033[0m ....................\033[37m ${pkg} \033[0m
\033[36m + Window Manager: \033[0m ..............\033[37m ${wm} \033[0m
\033[36m + Shell: \033[0m .......................\033[37m ${shell} \033[0m

View File

@ -1,23 +0,0 @@
#!/bin/bash
DATE=$(date +%m-%d-%Y_%H:%M:%S)
WEBCAM="ffplay -f video4linux2 -i /dev/video0 -video_size 420x340 -fflags nobuffer"
RECORD_AUDIO="arecord -f cd -t wav capture-a_$DATE.wav"
RECORD_VIDEO="ffmpeg -f x11grab -s 1280x800 -r 25 -i :0.0+0,0 capture-v_$DATE.mp4"
RECORD_AUDIO_VIDEO="ffmpeg -f alsa -ac 2 -i default -f x11grab -i :0.0+0,0 -acodec ac3 -ab 128k -f matroska -s 1280x800 -vcodec libx264 -preset ultrafast -qp 16 capture-av_$DATE.mp4"
PROMPT=`echo "$(echo 'webcam audiovideo video audio' | smenu -title 'CATPURE MEDIA')"`
case $PROMPT in
webcam)
$WEBCAM
;;
audiovideo)
$RECORD_AUDIO_VIDEO
;;
video)
$RECORD_VIDEO
;;
audio)
$RECORD_AUDIO
;;
esac

View File

@ -1,39 +0,0 @@
#!/bin/bash
OPTION=`echo 'desktop fancy window multiwindow selection multiselect edit telegram' | smenu -title SCREENSHOT `
DATE=`date +%m-%d-%Y_%H:%M:%S`
clear &&
case $OPTION in
desktop)
import -w root ~/Imágenes/screenshot/screenshot_$DATE.png
;;
fancy)
import -w root /tmp/screenshot.png
convert /tmp/screenshot.png -gravity South -font DejaVu-Sans-Bold-Oblique -background transparent -fill 'rgba(255,255,255,0.35)' -pointsize 50 -annotate +500+4 '#root.sti' ~/Imágenes/screenshot/screenshot_$DATE.png
;;
window)
import -w $(xdotool getwindowfocus) ~/Imágenes/screenshot/screenshot_$DATE.png
;;
multiwindow)
rm /tmp/*.png && import -screen -snaps $(echo -e "2\n3\n4\n5\n6" | dmenu -i -l 8) /tmp/screenshot.png && convert -background black -append /tmp/*.png ~/Imágenes/screenshot/window_compose_$DATE.png
;;
selection)
import ~/Imágenes/screenshot/screenshot_$DATE.png
;;
multiselect)
rm /tmp/*.png && import -snaps $(echo -e "2\n3\n4\5\n6" | dmenu -i -l 8) /tmp/screeshot.png && convert -background black -append /tmp/*.png ~/Imágenes/screenshot/selection_compose_$DATE.png
;;
edit)
import -w root /tmp/screenshot.png && sleep 1; display -backdrop -background '#000000' -foreground '#55af66' /tmp/screenshot_$DATE.png
;;
telegram)
screenshottlg.sh
;;
quit)
exit 0
;;
esac
pkill -SIGUSR1 herbe & herbe "screenshot ~/Imágenes/screenshot/"

2
spacekiller.sh Normal file → Executable file
View File

@ -1,5 +1,3 @@
##script by: root.sti ##
#!/bin/bash
for f in *

View File

@ -1,22 +0,0 @@
##script by: root.sti ##
## dependencies: surf; dmenu ##
## It's scripts are fed with the urls contained in the .bookmarks file. You must create this yourself. ##
## the line that corresponds to the search engine is editable to taste. ##
#!/bin/bash
X_BROWSER="surf -bdgIS -a @ -z 1.2"
in=$(cat .bookmarks | cut -d '-' -f 1 | dmenu -p bookmarks: -l 8) # dmenu input
match=$(cat .bookmarks | grep $in | cut -d '-' -f 2) # check match with ~/.bookmarks file
if [ "$match" != "" ]; then
$X_BROWSER -e $(tabbed -c -d 2>/dev/null) $match # exec bookmark url
elif [ -n "$in" ]; then
torify $X_BROWSER -e $(tabbed -c -d 2>/dev/null) "https://search.disroot.org/search?q=$in" # search in searx
fi

68
vi-nuke.sh Executable file
View File

@ -0,0 +1,68 @@
#! /bin/sh
entry="$1"
FNAME=$(basename "$entry")
ext="${FNAME##*.}"
if [ -n "$ext" ]; then
ext="$(printf "%s" "${ext}" | tr '[:upper:]' '[:lower:]')"
fi
case "${ext}" in
## Archive
a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|\
rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zst|zip|rar|7z)
extract "$entry"
exit 0;;
## PDF
pdf)
zathura "$entry"
exit 1;;
## Audio
aac|flac|m4a|mid|midi|mpa|mp2|mp3|ogg|wav|wma)
ffplay -nodisp -autoexit "$entry"
exit 1;;
## Video
avi|mkv|mp4|gif)
ffplay "$entry"
exit 1;;
## Image
png|jpg|jpeg|PNG|JPG|JPEG|svg)
fim "$entry"
exit 1;;
## Log files
log)
emacsclient -t --alternate-editor="" "$entry"
exit 0;;
## BitTorrent
torrenti|magnet)
rtorrent "$entry"
exit 0;;
## OpenDocument
odt|ods|odp|sxw)
chromium "$entry"
exit 0;;
## Markdown
md)
emacsclient -t --alternate-editor="" "$entry"
exit 0;;
## HTML
htm|html|xhtml)
## Preview as text conversion
chromium "$entry"
exit 0;;
## JSON
json)
jq --color-output . "$entry"
exit 0 ;;
esac

13
wallpaper.sh Executable file
View File

@ -0,0 +1,13 @@
#/bin/bash
WALL="$HOME"/Imágenes/wall/cw.png
RES=$(xdpyinfo | grep "dimensions" | awk '{ print $2 }')
if [ -f "$WALL" ]; then
display -resize "!$RES" -window root "$WALL"
else
ratpoison -c "echo cw.png not exist!"
fi

4
xautolock.sh Executable file
View File

@ -0,0 +1,4 @@
#!/bin/bash
xautolock -detectsleep -time 20 -locker "lock_screen_blur.sh"
#xautolock -detectsleep -time 120 -locker "suspend_machine" -notify 60 -notifier "notify-sent -u critical -t 10000 'suspend machine in 60 seconds'"

3
xtoclip.sh Executable file
View File

@ -0,0 +1,3 @@
#!/bin/bash
xclip -out | xclip -selection clipboard