Compare commits
15 Commits
ff212a2540
...
cd8e8016e4
Author | SHA1 | Date |
---|---|---|
Tuxliban Torvalds | cd8e8016e4 | |
Tuxliban Torvalds | 0750c9cbc9 | |
Tuxliban Torvalds | aa303fe66e | |
Tuxliban Torvalds | ee5ff0d970 | |
Tuxliban Torvalds | 31b0d24cbb | |
Tuxliban Torvalds | a83da95b24 | |
Tuxliban Torvalds | fb800267e1 | |
Tuxliban Torvalds | 05427ea824 | |
Tuxliban Torvalds | 01515d2720 | |
Tuxliban Torvalds | eebc072333 | |
Tuxliban Torvalds | b4b8e67f67 | |
Tuxliban Torvalds | ad3a3cc445 | |
Tuxliban Torvalds | b30f1d242b | |
Tuxliban Torvalds | 6a961aa08e | |
Tuxliban Torvalds | 1e7495f748 |
|
@ -0,0 +1,14 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Script para editar rápidamente otros script sin necesidad de especificar su respectiva ubicación.
|
||||
# Este script sólo buscará ejecutables que se encuentren en el PATH del sistema y el que el usuario
|
||||
# haya definido
|
||||
|
||||
FILE_PATH=$(command -v "$1" 2>/dev/null)
|
||||
|
||||
if [ -z "$FILE_PATH" ]; then
|
||||
printf "%s\n" "Error: $1 no encontrado"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
$EDITOR "$FILE_PATH"
|
|
@ -1,6 +1,8 @@
|
|||
#!/bin/sh
|
||||
# Script que muestra notificaciones de paquetes nuevos en el repositorio remoto,
|
||||
# actualizaciones remotas y actualizaciones disponibles para el sistema
|
||||
|
||||
if [ -f /usr/bin/rsstail ]; then
|
||||
if command -v rsstail; then
|
||||
|
||||
rsstail -1 -u https://github.com/void-linux/void-packages/commits/master.atom > /tmp/feed
|
||||
updatedpkgs="$(grep -E "Update|update" /tmp/feed | wc -l)"
|
||||
|
@ -28,10 +30,7 @@ printf "\n"
|
|||
|
||||
|
||||
# En caso de existir errores
|
||||
elif [ ! -f /usr/bin/rsstail ];then
|
||||
elif ! command -v rsstail; then
|
||||
printf "\033[31;5m[ERROR] Este script requiere del paquete: 'rsstail'\033[0m\n"
|
||||
exit 0;
|
||||
else
|
||||
printf "\033[33;5m\033[33;1mAlgo salió mal: verificar /usr/bin/rsstail\033[0m\033[0m\n"
|
||||
exit 0;
|
||||
fi
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
#!/bin/sh
|
||||
vol_on=$(amixer get Master | tail -n 1 | cut -d ' ' -f 8)
|
||||
vol=$(amixer get Master | awk -F'[][]' 'END{ print $2 }')
|
||||
|
||||
if [ "$vol_on" = '[on]' ]; then
|
||||
echo " $vol";
|
||||
printf '%s\n' " $vol";
|
||||
else
|
||||
printf " \n";
|
||||
fi;
|
||||
printf '%s\n' "mute ﱝ \n";
|
||||
fi
|
||||
|
|
26
varios/hosts
26
varios/hosts
|
@ -1,27 +1,31 @@
|
|||
#!/bin/sh
|
||||
|
||||
# V0.2.1
|
||||
# V0.3.0
|
||||
# Script para descargar una lista personalizada con direcciones para bloquearlas
|
||||
# a través del fichero hosts
|
||||
|
||||
# Para automatizar este proceso se recomienda crear una tarea (crontab) y ajustarla a las necesidades del usuario (diario, semanal
|
||||
# a través del fichero hosts. Para automatizar este proceso se recomienda crear
|
||||
# una tarea (crontab) y ajustarla a las necesidades del usuario (diario, semanal
|
||||
# mensual, etc)
|
||||
|
||||
msg() {
|
||||
dzen2 -p '10' -fn 'JetBrains Mono:size=8:style=bold' -ta '5' \
|
||||
-w '260' -x '1100' -y '25'
|
||||
}
|
||||
|
||||
# Realizar copia de seguridad del fichero hosts en caso de no existir
|
||||
if [ ! -f /etc/hosts.bak ]; then
|
||||
printf "\033[32;1mCreando copia de seguridad del fichero hosts...\033[0m\n";
|
||||
printf '%b' "\033[32;1mCreando copia de seguridad del fichero hosts...\033[0m\n";
|
||||
doas cp /etc/hosts /etc/hosts.bak && sleep 1s; printf "\033[33;1mCopia finalizada\033[0m\n"
|
||||
else
|
||||
printf "\033[35;5mYa existe copia de seguridad del fichero hosts\033[0m\n"
|
||||
printf '%b' "\033[35;5mYa existe copia de seguridad del fichero hosts\033[0m\n"
|
||||
fi
|
||||
|
||||
# Descargar actualizaciones mas reciente del repositorio y copiarlo al fichero hosts
|
||||
if [ ! -w /etc/hosts ]; then
|
||||
doas chmod o+w /etc/hosts && sleep 1s;
|
||||
printf "\033[32;1mDescargando y copiando lista actualizada para fichero hosts...\033[0m\n" &&
|
||||
printf '%b' "\033[32;1mDescargando y copiando lista actualizada para fichero hosts...\033[0m\n" &&
|
||||
wget -O /etc/hosts https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling-porn/hosts && sleep 1s;
|
||||
else
|
||||
printf "\033[32;1mDescargando y copiando lista actualizada para fichero hosts...\033[0m\n" &&
|
||||
printf '%b' "\033[32;1mDescargando y copiando lista actualizada para fichero hosts...\033[0m\n" &&
|
||||
wget -O /etc/hosts https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling-porn/hosts && sleep 1s;
|
||||
fi
|
||||
|
||||
|
@ -30,10 +34,10 @@ fi
|
|||
#cat /home/skynet/Datos/Git/archivos_diversos/parche >> /etc/hosts; sleep 2;
|
||||
#printf "\033[33;1mParche aplicado\033[0m\n";
|
||||
|
||||
~/.local/bin/dunst_sound &
|
||||
"$HOME"/.local/bin/dunst_sound &
|
||||
|
||||
# Notificacion de actualizacion del fichero
|
||||
printf "\033[36;1mFichero hosts actualizado.\nTarea finalizada.\033[0m\n";
|
||||
printf '%b' "\033[36;1mFichero hosts actualizado.\033[0m\n";
|
||||
#notify-send -t 5000 -i /home/skynet/.icons/status/hosts_update.png "Tarea finalizada" 'Fichero hosts actualizado'
|
||||
#printf 'IMG:/home/skynet/Datos/Git_Hub/Void_Linux/otros/icons/status/hosts_update.png\tTarea finalizada\tFichero hosts actualizado\n' > $XNOTIFY_FIFO
|
||||
herbe "Lista de fichero hosts actualizado"
|
||||
printf '%s\n' "Lista de fichero hosts actualizado" | msg
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
#!/bin/sh
|
||||
## Script para desactivar teclado interno en portátiles mientras se está en
|
||||
## el servidor gráfico
|
||||
|
||||
ayuda(){
|
||||
cat << EOF
|
||||
Uso: $(basename "$0") [arg]
|
||||
Ejemplo: $(basename "$0") on --> Activa teclado interno
|
||||
Ejemplo: $(basename "$0") off --> Desactiva teclado interno
|
||||
Ejemplo: $(basename "$0") --help, -h --> muestra este mensaje de ayuda
|
||||
EOF
|
||||
}
|
||||
|
||||
# Salir si existe un error
|
||||
set -e
|
||||
|
||||
ID=$(xinput --list | awk '/Translated/ {print $7}' | cut -d '=' -f 2)
|
||||
|
||||
case "$1" in
|
||||
on)
|
||||
xinput set-int-prop "$ID" "Device Enabled" 8 1
|
||||
;;
|
||||
off)
|
||||
xinput set-int-prop "$ID" "Device Enabled" 8 0
|
||||
;;
|
||||
--help|-h|*)
|
||||
ayuda
|
||||
esac
|
|
@ -1,29 +1,29 @@
|
|||
#!/bin/sh
|
||||
|
||||
RET=$(printf " Apagar\n Reiniciar\n Bloquear\n Suspender\n Hibernar\n logout\nCancelar" | dmenu -l 7 -p " Menu")
|
||||
RET=$(printf "Apagar\nReiniciar\nBloquear\nSuspender\nHibernar\nlogout\nCancelar" | dmenu -l 7 -p " Menu")
|
||||
|
||||
#RET=$(echo "" Apagar"\n" Reiniciar"\n" Bloquear"\n" Suspender"\n" logout"\ncancel" | dmenu -l 7 -p " Logout")
|
||||
case $RET in
|
||||
" Apagar")
|
||||
"Apagar")
|
||||
#st -T "warning" -g "42x8+480+300" -f "Liberation Mono:size=12" -e su - root -c 'shutdown -h now'
|
||||
urxvtc -T 'warning' -geometry '42x8-540-320' -imfont 'liberationmono:bold:pixelsize=12' -e su - root -c 'shutdown -h now'
|
||||
;;
|
||||
" Reiniciar")
|
||||
"Reiniciar")
|
||||
#st -T "warning" -g "42x8+480+300" -f "Liberation Mono:size=12" -e su - root -c 'shutdown -r now'
|
||||
urxvtc -T 'warning' -geometry '42x8-540-320' -imfont 'liberationmono:bold:pixelsize=12' -e su - root -c 'shutdown -r now'
|
||||
;;
|
||||
" Bloquear")
|
||||
"Bloquear")
|
||||
slock
|
||||
;;
|
||||
" Suspender")
|
||||
"Suspender")
|
||||
#st -T 'warning' -g '42x8+480+300' -f 'Liberation Mono:size=12' -e su - root -c zzz && slock
|
||||
urxvtc -T 'warning' -geometry '42x8-540-320' -imfont 'liberationmono:bold:pixelsize=12' -e su - root -c 'zzz && slock'
|
||||
;;
|
||||
" Hibernar")
|
||||
"Hibernar")
|
||||
#st -T "warning" -g "42x8+480+300" -f "Liberation Mono:size=12" -e su - root -c ZZZ && slock
|
||||
urxvtc -T 'warning' -geometry '42x8-540-320' -imfont 'liberationmono:bold:pixelsize=12' -e su - root -c 'ZZZ && slock'
|
||||
;;
|
||||
" logout")
|
||||
"logout")
|
||||
pkill startdwm && xdotool key "super+shift+q"
|
||||
;;
|
||||
*) ;;
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
#!/bin/sh
|
||||
BIN=nnn-static
|
||||
BIN=nnn.static-musl
|
||||
|
||||
# Instalar paquetes básicos de desarrollo
|
||||
doas xbps-install -Sy base-devel
|
||||
doas xbps-install -Sy pkgconf gcc libtool automake
|
||||
|
||||
# Crear directorio donde se gurdarán las bibliotecas estáticas para compilar nnn
|
||||
if [ ! -d "/opt/nnn-libs" ]; then
|
||||
doas mkdir /opt/nnn-libs
|
||||
if [ ! -d "./nnn-libs" ]; then
|
||||
mkdir nnn-libs
|
||||
else
|
||||
doas rm -vf /opt/nnn-libs/*
|
||||
rm -vf nnn-libs/*
|
||||
fi
|
||||
|
||||
# Obtener netbsd-curses y compilar bibliotecas estáticas
|
||||
|
@ -16,7 +16,8 @@ fi
|
|||
cd netbsd-curses || exit
|
||||
git checkout v0.3.2
|
||||
make CC=gcc CFLAGS="-O3 -fPIC" LDFLAGS=-static all-static -j$(($(nproc)+1))
|
||||
doas busybox.static cp libcurses/libcurses.a libterminfo/libterminfo.a /opt/nnn-libs/
|
||||
cp libcurses/libcurses.a libterminfo/libterminfo.a ../nnn-libs/
|
||||
make clean
|
||||
cd ..
|
||||
|
||||
# Compilar la biblioteca estática de musl-fts
|
||||
|
@ -25,15 +26,16 @@ cd musl-fts || exit
|
|||
./bootstrap.sh
|
||||
./configure
|
||||
make CC=gcc CFLAGS=-O3 LDFLAGS=-static -j$(($(nproc)+1))
|
||||
doas busybox.static cp .libs/libfts.a /opt/nnn-libs/
|
||||
cp .libs/libfts.a ../nnn-libs/
|
||||
cd ..
|
||||
|
||||
# Compilar nnn estáticamente
|
||||
[ -e "./netbsd-curses" ] || rm "$BIN"
|
||||
gcc -O3 -DNORL -DNOMOUSE -std=c11 -Wall -Wextra -Wshadow -I./netbsd-curses/libcurses -I./musl-fts -o "$BIN" \
|
||||
src/nnn.c -Wl,-Bsymbolic-functions -lpthread -L/opt/nnn-libs -lcurses -lterminfo -lfts -static
|
||||
src/nnn.c -Wl,-Bsymbolic-functions -lpthread -L./nnn-libs -lcurses -lterminfo -lfts -static
|
||||
|
||||
# Despojar binario de símbolos de depuración
|
||||
strip nnn-static
|
||||
|
||||
doas xbps-remove -Ry base-devel
|
||||
doas xbps-remove -Ry pkgconf gcc libtool automake
|
||||
doas rm -r netbsd-curses musl-fts
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#/usr/bin/env perl -w
|
||||
|
||||
# Modo de uso: Pon la siguiente línea en tu fichero .Xresources/.Xdefaults
|
||||
# Modo de uso: Poner la siguiente línea en el fichero .Xresources/.Xdefaults
|
||||
# URxvt.perl-ext-common :selection-to-clipboard,pasta
|
||||
# URxvt.keysym.Control-Shift-V :perl:pasta:paste
|
||||
|
||||
|
|
117
varios/ss_void
117
varios/ss_void
|
@ -1,9 +1,9 @@
|
|||
#!/bin/sh
|
||||
# v1.0
|
||||
# Dependencias: scrot, xclip, herbe
|
||||
# v2.0
|
||||
# Dependencias: scrot, xclip, dzen2
|
||||
|
||||
ayuda(){
|
||||
cat << EOF
|
||||
ayuda() {
|
||||
cat << EOF
|
||||
ss_void.sh v1.0 (4/10/2020)
|
||||
Modo de uso:
|
||||
|
||||
|
@ -19,71 +19,58 @@ Opciones:
|
|||
EOF
|
||||
}
|
||||
|
||||
while :;
|
||||
do
|
||||
case $1 in
|
||||
-P)
|
||||
# Guardar captura de pantalla en el portapapeles
|
||||
scrot /tmp/'%F_%T.png' -e 'xclip -selection c -t image/png < $f'
|
||||
break
|
||||
;;
|
||||
-S)
|
||||
# Guardar captura de pantalla de área seleccionada en el portapapeles
|
||||
sleep 1
|
||||
scrot --line style=dash,width=1,color="red" -s /tmp/'%F_%T.png' -e 'xclip -selection c -t image/png < $f'
|
||||
break
|
||||
;;
|
||||
-g)
|
||||
# Guardar captura de pantalla
|
||||
scrot -q 100 '%F_%H%M%S_$wx$h.png' -e 'mv $f /home/skynet/Datos/Capturas/'
|
||||
sleep 1
|
||||
|
||||
# Notificación
|
||||
$HOME/.local/bin/dunst_sound
|
||||
herbe "CAPTURA DE PANTALLA" "Guardando en: ~/Datos/Capturas"
|
||||
break
|
||||
;;
|
||||
-s)
|
||||
# Guardar captura de pantalla de área seleccionada
|
||||
sleep 1
|
||||
scrot --line style=dash,width=1,color="red" -s -q 50 'Select_%F_%H%M%S_$wx$h.png' -e 'mv $f /home/skynet/Datos/Capturas/select'
|
||||
msg() {
|
||||
dzen2 -p 8 -e 'onstart=uncollapse' -fn 'JetBrains Mono:size=8:style=bold' -ta 5 \
|
||||
-sa c -w 260 -x 1100 -y 25 -l 1
|
||||
}
|
||||
|
||||
# Notificación
|
||||
~/Datos/Git/scripts/varios/dunst_sound.sh
|
||||
herbe "CAPTURA DE PANTALLA" "Guardando en: ~/Datos/Capturas/select"
|
||||
break
|
||||
;;
|
||||
-h)
|
||||
ayuda
|
||||
break
|
||||
;;
|
||||
*)
|
||||
printf "\033[31;5mOpción inválida\033[0m\n\n"
|
||||
printf "\033[37;2m Opciones disponibles:\033[0m\n"
|
||||
printf "\033[32;1m -P: \033[36;2mGuardar captura de pantalla en portapapeles\033[0m\\033[0m\n"
|
||||
printf "\033[32;1m -S: \033[36;2mGuardar captura de pantalla del área seleccionada en el portapapeles\033[0m\\033[0m\n"
|
||||
printf "\033[32;1m -g: \033[36;2mGuardar captura de pantalla en disco duro\033[0m\\033[0m\n"
|
||||
printf "\033[32;1m -s: \033[36;2mGuardar captura de pantalla de área seleccionada en disco duro\033[0m\\033[0m\n\n"
|
||||
return
|
||||
;;
|
||||
esac
|
||||
done
|
||||
case $1 in
|
||||
-P)
|
||||
scrot /tmp/'%F_%T.png' -e 'xclip -selection c -t image/png < $f'
|
||||
;;
|
||||
-S)
|
||||
sleep 1
|
||||
scrot --line style=dash,width=1,color="red" -s /tmp/'%F_%T.png' -e 'xclip -selection c -t image/png < $f'
|
||||
;;
|
||||
-g)
|
||||
scrot -q 100 '%F_%H%M%S_$wx$h.png' -e 'mv $f /home/skynet/Datos/Capturas/'
|
||||
sleep 1
|
||||
|
||||
# Notificación
|
||||
"$HOME"/.local/bin/dunst_sound
|
||||
printf '%s\n' "CAPTURA DE PANTALLA" "Guardando en: ~/Datos/Capturas" | msg
|
||||
;;
|
||||
-s)
|
||||
# Guardar captura de pantalla de área seleccionada
|
||||
sleep 1
|
||||
scrot --line style=dash,width=1,color="red" -s -q 50 'Select_%F_%H%M%S_$wx$h.png' -e 'mv $f /home/skynet/Datos/Capturas/select'
|
||||
|
||||
# Notificación
|
||||
"$HOME"/.local/bin/dunst_sound
|
||||
printf '%s\n' "CAPTURA DE PANTALLA" "Guardando en: ~/Datos/Capturas/select" | msg
|
||||
;;
|
||||
-h|--help)
|
||||
ayuda
|
||||
;;
|
||||
*)
|
||||
printf "\033[31;5mOpción inválida\033[0m\n\n"
|
||||
printf "\033[37;2m Opciones disponibles:\033[0m\n"
|
||||
printf "\033[32;1m -P: \033[36;2mGuardar captura de pantalla en portapapeles\033[0m\\033[0m\n"
|
||||
printf "\033[32;1m -S: \033[36;2mGuardar captura de pantalla del área seleccionada en el portapapeles\033[0m\\033[0m\n"
|
||||
printf "\033[32;1m -g: \033[36;2mGuardar captura de pantalla en disco duro\033[0m\\033[0m\n"
|
||||
printf "\033[32;1m -s: \033[36;2mGuardar captura de pantalla de área seleccionada en disco duro\033[0m\\033[0m\n\n"
|
||||
return
|
||||
esac
|
||||
|
||||
# Si no existe el binario scrot
|
||||
if [ ! -f /usr/bin/scrot ]; then
|
||||
printf '%b' "\033[31;5m[ERROR] No se encontró instalado el paquete 'scrot'\033[0m\n"
|
||||
exit 0;
|
||||
if ! command -v scrot; then
|
||||
printf "\033[31;5m[ERROR] No se encontró instalado el paquete 'scrot'\033[0m\n"
|
||||
|
||||
# Si no existe el binario xclip
|
||||
elif [ ! -f /usr/bin/xclip ]; then
|
||||
printf '%b' "\033[31;5m[ERROR] No se encontró instalado el paquete 'xclip'\033[0m\n"
|
||||
exit 0;
|
||||
elif ! command -v xclip; then
|
||||
printf "\033[31;5m[ERROR] No se encontró instalado el paquete 'xclip'\033[0m\n"
|
||||
|
||||
# Si no existe el binario herbe
|
||||
elif [ ! -f /usr/bin/herbe ]; then
|
||||
printf '%b' "\033[31;5m[ERROR] No se encontró instalado el paquete 'herbe'\033[0m\n"
|
||||
exit 0;
|
||||
|
||||
else
|
||||
exit 0;
|
||||
# Si no existe el binario dzen2
|
||||
elif ! command -v dzen2; then
|
||||
printf "\033[31;5m[ERROR] No se encontró instalado el paquete 'dzen2'\033[0m\n"
|
||||
fi
|
||||
|
|
|
@ -30,6 +30,13 @@ SONG() {
|
|||
echo ""
|
||||
fi
|
||||
}
|
||||
xsetroot -name "$(SONG) CPU $CPU | MEM $MEM | TEMP $TEMP | $(VOL) | $DATE"
|
||||
BAT() {
|
||||
bat_dir=/sys/class/power_supply/BAT1
|
||||
read -r capacity < "$bat_dir/capacity"
|
||||
read -r status < "$bat_dir/status"
|
||||
|
||||
printf '%s%% [%s]\n' "$capacity" "$status"
|
||||
}
|
||||
xsetroot -name "$(SONG) CPU $CPU | MEM $MEM | TEMP $TEMP | $(VOL) | $DATE | $BAT"
|
||||
sleep 1
|
||||
done
|
||||
|
|
|
@ -0,0 +1,88 @@
|
|||
#!/bin/sh
|
||||
## Script para sincronizar nube remota de dropbpox
|
||||
# Dependencias: rclone, rclonesync, dzen2
|
||||
|
||||
set -e # salir del script inmediatamente cuando un comando falle
|
||||
|
||||
|
||||
########## Verificar que las dependencias estén instaladas ##########
|
||||
|
||||
if ! command -v rclone; then
|
||||
printf '%b' "\033[31;5m[ERROR] Instale el paquete 'rclone'\033[0m\n"
|
||||
elif ! command -v rclonesync; then
|
||||
git -C /tmp clone https://github.com/cjnaz/rclonesync-V2.git --depth 1
|
||||
[ -d "$HOME/.local/bin" ] || mkdir -p "$HOME/.local/bin"
|
||||
cp /tmp/rclonesync-V2/rclonesync "$HOME"/.local/bin
|
||||
elif ! command -v dzen2; then
|
||||
printf '%b' "\033[31;5m[ERROR] Instale el paquete 'dzen2'\033[0m\n"
|
||||
fi
|
||||
|
||||
|
||||
|
||||
########## Directorio para base de datos ##########
|
||||
|
||||
WORKDIR="$HOME"/.config/rclone
|
||||
TMPDIR=/tmp
|
||||
|
||||
if [ ! -f "$WORKDIR/dropbox.txt" ]; then
|
||||
find "$HOME/Dropbox" -type f -exec md5sum {} \; > "$WORKDIR"/dropbox.txt
|
||||
fi
|
||||
|
||||
|
||||
|
||||
########## Eliminar algún archivo residual que pudiera haber quedado ##########
|
||||
|
||||
for file in "$TMPDIR"/dropbox*; do
|
||||
[ -f "$file" ] || continue
|
||||
rm "$file"
|
||||
done
|
||||
|
||||
|
||||
########## Sincronizar nube remota ##########
|
||||
|
||||
check_diff() {
|
||||
find "$HOME/Dropbox" -type f -exec md5sum {} \; > /tmp/"dropbox-$(od -N4 -tu /dev/random | awk 'NR==1 {print $2} {}')".tmp
|
||||
DIFF=$(diff -q "$WORKDIR/dropbox.txt" "$TMPDIR"/dropbox-*.tmp | awk '{print $5}')
|
||||
if [ "$DIFF" = "differ" ]; then
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
sync() {
|
||||
rclonesync "$HOME"/Dropbox MiDropbox: --check-access --check-filename=RCLONE_TEST \
|
||||
--filters-file "$HOME"/.config/rclone/Filtro.txt >> "$HOME"/.config/rclone/log 2>&1
|
||||
}
|
||||
|
||||
first_sync() {
|
||||
rclonesync "$HOME"/Dropbox MiDropbox: --first-sync --check-access --check-filename=RCLONE_TEST \
|
||||
--filters-file "$HOME"/.config/rclone/Filtro.txt
|
||||
}
|
||||
|
||||
msg() {
|
||||
dzen2 -p 8 -e 'onstart=uncollapse' -fn 'JetBrains Mono:size=8:style=bold' -ta c \
|
||||
-sa c -w 260 -x 1100 -y 25 -l 1
|
||||
}
|
||||
|
||||
|
||||
|
||||
if check_diff; then
|
||||
if doas ping -c 3 -q 1.1.1.1; then
|
||||
if sync; then
|
||||
printf '%s\n' "Dropbox sincronizado" | msg
|
||||
mv "$TMPDIR"/dropbox-*.tmp "$WORKDIR/dropbox.txt"
|
||||
else
|
||||
first_sync
|
||||
printf '%s\n' "Dropbox sincronizado" | msg
|
||||
fi
|
||||
else
|
||||
printf '%s\n' "No se pudo sincronizar Dropbox" "Sin conexión a internet" | msg
|
||||
rm "$TMPDIR"/dropbox-*.tmp
|
||||
fi
|
||||
else
|
||||
rm "$TMPDIR"/dropbox-*.tmp
|
||||
return 0
|
||||
fi
|
||||
|
||||
exit 0
|
|
@ -3,23 +3,23 @@
|
|||
TMP_UPDATES=/tmp/updates_void
|
||||
[ -d "${TMP_UPDATES}" ] || mkdir "${TMP_UPDATES}"
|
||||
|
||||
#/usr/bin/xbps-install.static -nuM 1>/tmp/updates 2>/tmp/error
|
||||
xbps-install -nuM 1>"${TMP_UPDATES}"/updates 2>"${TMP_UPDATES}"/error
|
||||
|
||||
updates="$(wc -l < "${TMP_UPDATES}"/updates)"
|
||||
broken="$(grep -c broken "${TMP_UPDATES}"/error)"
|
||||
pkgs="$(awk '{print $1" ---> " $2}' "${TMP_UPDATES}"/updates)"
|
||||
xx=$(printf "========================================")
|
||||
UPDATES="$(awk 'END {print NR}' "${TMP_UPDATES}"/updates)"
|
||||
BROKEN="$(grep -c broken "${TMP_UPDATES}"/error)"
|
||||
#PKGS="$(awk '{print $1" ---> " $2}' "${TMP_UPDATES}"/updates)"
|
||||
PKGS="$(awk '{print $1"\t"$2}' "${TMP_UPDATES}"/updates | column -t)"
|
||||
|
||||
if [ "$broken" = 0 ] && [ "$updates" -ge 1 ]; then
|
||||
msg() {
|
||||
dzen2 -p -fn 'JetBrains Mono:size=8:style=bold' -ta '5' \
|
||||
-w '260' -x '1100' -y '25' -l '10'
|
||||
}
|
||||
|
||||
if [ "$BROKEN" = 0 ] && [ "$UPDATES" -ge 1 ]; then
|
||||
"$HOME"/Dropbox/Gitea/scripts/varios/dunst_sound
|
||||
herbe "ACTUALIZACIONES DISPONIBLES: $updates" "$xx" "$pkgs"
|
||||
else
|
||||
echo ""
|
||||
fi
|
||||
|
||||
if [ "$broken" -ge 1 ]; then
|
||||
herbe "HAY PAQUETES ROTOS:" "$xx" "$(cut -d " " -f 1,5 "${TMP_UPDATES}"/error)"
|
||||
printf '%s\n' "ACTUALIZACIONES DISPONIBLES: $UPDATES" "$PKGS" | msg
|
||||
elif [ "$BROKEN" -ge 1 ]; then
|
||||
printf '%s\n' "HAY PAQUETES ROTOS" "$(cut -d " " -f 1,5 "${TMP_UPDATES}"/error)" | msg
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
|
64
varios/usb
64
varios/usb
|
@ -1,16 +1,16 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Dependencias: udevil
|
||||
# Dependencias: udevil, dzen2
|
||||
|
||||
ayuda() {
|
||||
cat << EOF
|
||||
usb.sh v1.0 (21/12/2020)
|
||||
usb v2.0 (28/04/2022)
|
||||
|
||||
Modo de uso:
|
||||
|
||||
usb.sh [-muUh]
|
||||
usb [-muUh]
|
||||
|
||||
Script para montar y desmontar dispositivos a través de devmon y udevil.
|
||||
Script para montar y desmontar dispositivos a través de devmon
|
||||
|
||||
Opciones:
|
||||
-m Montar dispositivo extraible
|
||||
|
@ -22,26 +22,63 @@ Opciones:
|
|||
EOF
|
||||
}
|
||||
|
||||
admin(){
|
||||
if [ "$(id -u)" = "0" ]; then
|
||||
return
|
||||
elif command -v sudo >/dev/null && sudo -l | grep -q -e ' ALL$' -e xbps-install; then
|
||||
echo sudo
|
||||
elif command -v doas >/dev/null && [ -f /etc/doas.conf ]; then
|
||||
echo doas
|
||||
else
|
||||
echo su
|
||||
fi
|
||||
}
|
||||
|
||||
do_install() {
|
||||
if [ "$SUDO" = su ]; then
|
||||
su root -c 'xbps-install "$@"' -- sh "$@"
|
||||
else
|
||||
$SUDO xbps-install "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
SUDO=$(admin)
|
||||
|
||||
if ! command -v udevil; then
|
||||
printf '%b' "\033[31;5m[ERROR] No se encontró instalado el paquete 'udevil'\033[0m\n"
|
||||
printf '%b' "\033[31;1mPreparándose para instalar el paquete 'udevil'...\033[0m\n"
|
||||
do_install -Sy udevil
|
||||
elif ! command -v dzen2; then
|
||||
printf '%b' "\033[31;5m[ERROR] No se encontró instalado el paquete 'udevil'\033[0m\n"
|
||||
printf '%b' "\033[31;1mPreparándose para instalar el paquete 'udevil'...\033[0m\n"
|
||||
do_install -Sy dzen2
|
||||
fi
|
||||
|
||||
msg() {
|
||||
dzen2 -p 8 -e 'onstart=uncollapse' -fn 'JetBrains Mono:size=8:style=bold' -ta c \
|
||||
-sa c -w 260 -x 1100 -y 25 -l 1
|
||||
}
|
||||
|
||||
while :;
|
||||
do
|
||||
case $1 in
|
||||
-m)
|
||||
# Montar dispositivo extraible
|
||||
devmon --sync --exec-on-drive "herbe 'DISPOSITIVO USB' 'Listo para utilizarse'" &
|
||||
devmon --sync --exec-on-drive "printf '%s\n' 'DISPOSITIVO USB' 'Listo para utilizarse'" | msg
|
||||
break
|
||||
;;
|
||||
-u)
|
||||
# Desmontar dispositivo
|
||||
devmon --unmount /media/"$USER"/* && pkill -9 udevil
|
||||
sleep 2; herbe "DISPOSITIVO USB" "Puede retirarlo con seguridad"
|
||||
devmon --unmount /media/"$USER"/* && pkill -9 devmon
|
||||
sleep 2; printf '%s\n' "DISPOSITIVO USB" "Puede retirarlo con seguridad" | msg
|
||||
break
|
||||
;;
|
||||
-U)
|
||||
# Desmontar último pendrive insertado
|
||||
devmon --unmount-recent && sleep 2; herbe "DISPOSITIVO USB" "Puede retirarlo con seguridad"
|
||||
devmon --unmount-recent && sleep 2; printf '%s\n' "DISPOSITIVO USB" "Puede retirarlo con seguridad" | msg
|
||||
break
|
||||
;;
|
||||
-h)
|
||||
-h|--help)
|
||||
ayuda
|
||||
break
|
||||
;;
|
||||
|
@ -53,13 +90,6 @@ do
|
|||
printf '%b' "\033[32;1m-U: \033[36;2mDesmontar último pendrive insertado\033[0m\\033[0m\n"
|
||||
printf '%b' "\033[32;1m-h: \033[36;2mMostrar ayuda\033[0m\\033[0m\n\n"
|
||||
return
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ ! -f /usr/bin/udevil ]; then
|
||||
printf '%b' "\033[31;5m[ERROR] No se encontró instalado el paquete 'udevil'\033[0m\n"
|
||||
exit 0;
|
||||
else
|
||||
exit 0;
|
||||
fi
|
||||
exit 0;
|
||||
|
|
17
varios/wifi
17
varios/wifi
|
@ -5,24 +5,29 @@
|
|||
|
||||
read -r state < /sys/class/net/wlan0/operstate
|
||||
|
||||
msg() {
|
||||
dzen2 -p 8 -e -fn 'JetBrains Mono:size=8:style=bold' -ta c \
|
||||
-w 260 -x 1100 -y 25
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
--toggle)
|
||||
if [ "$(pgrep wpa_supplicant)" ]; then
|
||||
doas pkill -f wpa_supplicant
|
||||
herbe "Wifi desactivado"
|
||||
printf '%s\n' "Wifi desactivado" | msg
|
||||
else
|
||||
if [ "$state" = "down" ]; then
|
||||
doas wpa_supplicant -B -D wext -c /etc/wpa_supplicant/wpa_supplicant-wlan0.conf -i wlan1
|
||||
sleep 2; herbe "Activando wifi..."
|
||||
#doas wpa_supplicant -B -D wext -c /etc/wpa_supplicant/wpa_supplicant-wlan0.conf -i wlan1
|
||||
doas wpa_supplicant -B -D wext -c /etc/wpa_supplicant/wpa_supplicant-wlan0.conf -i wlan0
|
||||
sleep 2; printf '%s\n' "Activando wifi..." | msg
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
if [ "$(pgrep wpa_supplicant)" ]; then
|
||||
herbe "Wifi activado"
|
||||
printf '%s\n' "Wifi activado" | msg
|
||||
else
|
||||
herbe "Wifi desactivado"
|
||||
printf '%s\n' "Wifi desactivado" | msg
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Script para consultar el sitio de origen del paquete
|
||||
# (upstream) en busca de nuevas versiones.
|
||||
# Se recomienda añadir este script en una tarea de crontab
|
||||
# Dependencias: xbps-src, xtools
|
||||
# Dependencias: xbps-src, xtools, dzen2
|
||||
|
||||
TMP_DIR=/tmp/xpkglocal
|
||||
mkdir "${TMP_DIR}"
|
||||
|
@ -25,14 +25,24 @@ do_install() {
|
|||
fi
|
||||
}
|
||||
|
||||
msg(){
|
||||
dzen2 -p -fn 'JetBrains Mono:size=8:style=bold' -ta 5 \
|
||||
-w 260 -x 1100 -y 25 -l 20
|
||||
}
|
||||
|
||||
# Verificar que las dependencias estén instaladas
|
||||
if [ ! -f /usr/bin/xpkg ] && printf "Instalando paquete xtools"; then
|
||||
SUDO=$(which_sudo)
|
||||
do_install -Sy "$@"
|
||||
if ! command -v xpkg >/dev/null; then
|
||||
printf '%s\n' "Instalando paquete xtools"
|
||||
SUDO=$(which_sudo)
|
||||
do_install -Sy xtools
|
||||
elif ! command -v dzen2 > /dev/null; then
|
||||
printf '%s\n' "Instalando paquete dzen2"
|
||||
SUDO=$(which_sudo)
|
||||
do_install -Sy dzen2
|
||||
fi
|
||||
|
||||
if [ ! -f "$HOME/void-packages/xbps-src" ]; then
|
||||
printf "No se encontró repositorio git de Void Linux. Clonadolo..."
|
||||
printf '%s\n' "No se encontró repositorio git de Void Linux. Clonadolo..."
|
||||
git -C "$HOME" clone --depth=1 https://github.com/void-linux/void-packages.git
|
||||
cd "$HOME"/void-packages || exit
|
||||
./xbps-src binary-bootstrap
|
||||
|
@ -40,17 +50,18 @@ if [ ! -f "$HOME/void-packages/xbps-src" ]; then
|
|||
fi
|
||||
|
||||
cd "$HOME"/void-packages || exit
|
||||
touch "${TMP_DIR}"/upstream_releases
|
||||
touch "${TMP_DIR}"/releases
|
||||
#for i in $(xbps-query -m | xargs -n1 xbps-uhelper getpkgname); do
|
||||
for i in $(xpkg -L); do
|
||||
./xbps-src update-check "$i" | tail -n 1 | tee -a "${TMP_DIR}"/upstream_releases > /dev/null
|
||||
for i in $(xpkg -m); do
|
||||
./xbps-src update-check "$i" | tail -n 1 | tee -a "${TMP_DIR}"/releases > /dev/null
|
||||
sort "${TMP_DIR}"/releases | uniq > "${TMP_DIR}"/upstream_releases
|
||||
done
|
||||
|
||||
updates="$(wc -l < "${TMP_DIR}"/upstream_releases)"
|
||||
releases="$(cat "${TMP_DIR}"/upstream_releases)"
|
||||
xx="$(printf ========================================)"
|
||||
if [ "$updates" -gt 0 ]; then
|
||||
herbe "ACTUALIZACIONES EN UPSTREAM: $xx $releases"
|
||||
UPDATES="$(wc -l < "${TMP_DIR}"/upstream_releases)"
|
||||
RELEASES="$(awk '{print $1"\t"$3}' "${TMP_DIR}"/upstream_releases | column -t)"
|
||||
|
||||
if [ "$UPDATES" -gt 0 ]; then
|
||||
printf '%s\n' "ACTUALIZACIONES EN UPSTREAM: $UPDATES" "$RELEASES" | msg
|
||||
fi
|
||||
|
||||
rm -r "$TMP_DIR"
|
||||
|
|
Loading…
Reference in New Issue