Compare commits
19 Commits
3329fbc254
...
324bab874a
Author | SHA1 | Date |
---|---|---|
Tuxliban Torvalds | 324bab874a | |
Tuxliban Torvalds | ade142db47 | |
Tuxliban Torvalds | 7679b1bde2 | |
Tuxliban Torvalds | bc4134c6cb | |
Tuxliban Torvalds | 2feadd5cb2 | |
Tuxliban Torvalds | 0556f4030f | |
Tuxliban Torvalds | c7e6a5764d | |
Tuxliban Torvalds | 38fb93a982 | |
Tuxliban Torvalds | 16cc2148d9 | |
Tuxliban Torvalds | 710f95ea4b | |
Tuxliban Torvalds | 9f84c3f4bd | |
Tuxliban Torvalds | 5df4d1215d | |
Tuxliban Torvalds | 49d87a7b05 | |
Tuxliban Torvalds | b720250831 | |
Tuxliban Torvalds | e10eeb674e | |
Tuxliban Torvalds | e9b9beec1d | |
Tuxliban Torvalds | de55532d39 | |
Tuxliban Torvalds | b2c4a8b35e | |
Tuxliban Torvalds | 75e6686929 |
Binary file not shown.
|
@ -0,0 +1,33 @@
|
|||
#include <alsa/asoundlib.h>
|
||||
|
||||
int main() {
|
||||
snd_mixer_t *mixer;
|
||||
|
||||
if (snd_mixer_open(&mixer, 1) ||
|
||||
snd_mixer_attach(mixer, "default") ||
|
||||
snd_mixer_selem_register(mixer, NULL, NULL) ||
|
||||
snd_mixer_load(mixer)) exit(42);
|
||||
|
||||
snd_mixer_selem_id_t *id;
|
||||
|
||||
snd_mixer_selem_id_alloca(&id);
|
||||
|
||||
snd_mixer_selem_id_set_index(id, 0);
|
||||
|
||||
snd_mixer_selem_id_set_name(id, "Master");
|
||||
|
||||
snd_mixer_elem_t *elem = snd_mixer_find_selem(mixer, id);
|
||||
|
||||
if (!elem) {
|
||||
exit(5);
|
||||
}
|
||||
long min, max, vol;
|
||||
|
||||
snd_mixer_selem_get_playback_volume_range(elem, &min, &max);
|
||||
|
||||
snd_mixer_selem_get_playback_volume(elem,
|
||||
SND_MIXER_SCHN_FRONT_LEFT, &vol);
|
||||
|
||||
printf("%li%%", ((vol - min)*100 + (max - min)/2) / (max - min));
|
||||
snd_mixer_close(mixer);
|
||||
}
|
Binary file not shown.
|
@ -11,12 +11,13 @@
|
|||
int main(int argc, const char const *argv[]) {
|
||||
const char const *shell[] = { "/bin/sh", NULL };
|
||||
|
||||
// move glibc stuff in place
|
||||
/* move glibc stuff in place */
|
||||
e("unshare",unshare(CLONE_NEWNS));
|
||||
e("mount",mount(SRC "/usr", "/usr", NULL, MS_BIND, NULL));
|
||||
e("mount",mount(SRC "/opt", "/opt", NULL, MS_BIND, NULL));
|
||||
e("mount",mount(SRC "/var/db/xbps", "/var/db/xbps", NULL, MS_BIND, NULL));
|
||||
|
||||
// drop the rights suid gave us
|
||||
/* drop the rights suid gave us */
|
||||
e("setuid",setreuid(getuid(),getuid()));
|
||||
e("setgid",setregid(getgid(),getgid()));
|
||||
|
Binary file not shown.
|
@ -0,0 +1,40 @@
|
|||
#!/bin/sh
|
||||
# Script para hacer scripts de Shell más rápido.
|
||||
# Al guardar los cambios del script y cerrarlo, se asignan los permisos de ejecución e # inmediatamente se
|
||||
# ejecuta el script para verificar que funcione. Si fuera necesario continuar editando basta con presionar la
|
||||
# tecla ENTER para regresar al editor; si por el contrario ya no se continuará editando el script, basta con
|
||||
# presionar la combinación de teclas de Ctrl C para finalizar el proceso.
|
||||
#
|
||||
# Modo de empleo:
|
||||
# do_script filepath
|
||||
#
|
||||
# Dependencia: vi | vis | vim | nano
|
||||
#
|
||||
# Autor: Tuxliban Torvalds <o-sanchez@linuxmail.org>
|
||||
|
||||
set -e # Si hay un error, salir inmediatamente
|
||||
|
||||
which_editor() {
|
||||
if command -v vis >/dev/null; then
|
||||
echo vis
|
||||
elif command -v vim >/dev/null; then
|
||||
echo vim
|
||||
elif command -v nano >/dev/null; then
|
||||
echo nano
|
||||
else
|
||||
echo vi
|
||||
fi
|
||||
}
|
||||
|
||||
_EDITOR=$(which_editor)
|
||||
|
||||
if [ ! -f "$1" ]; then
|
||||
echo "#!/bin/sh" > "$1"
|
||||
fi
|
||||
|
||||
while true; do
|
||||
"$_EDITOR" "$1"
|
||||
chmod u+x "$1"
|
||||
./"$1"
|
||||
read -r dummy
|
||||
done
|
|
@ -0,0 +1,51 @@
|
|||
#!/bin/sh
|
||||
# Script para convertir documentos de word a PDF usando pandoc
|
||||
#
|
||||
# Dependencias xelatex, pandoc
|
||||
#
|
||||
# Shell: POSIX compliant
|
||||
# Autor: Tuxliban Torvalds <o-sanchez@linuxmail.org>
|
||||
|
||||
# Revisar que las dependencias estén instaladas
|
||||
if ! command -v xelatex > /dev/null; then
|
||||
echo "Dependencia xelatex no encontrada en el sistema, instalándola..."
|
||||
doas xbps-install -Sy texlive-XeTeX
|
||||
elif ! command -v pandoc > /dev/null; then
|
||||
echo "Dependencia pandoc no encontrada en el sistema, instalándola..."
|
||||
doas xbps-install -Sy pandoc
|
||||
fi
|
||||
|
||||
ayuda() {
|
||||
cat << !
|
||||
Convierte documentos docx a formato PDF.
|
||||
|
||||
Uso: $(basename "$0") <arg> <directorio o archivo>
|
||||
Ejemplo:
|
||||
$(basename "$0") --conv /path/foo.docx Convierte archivo especificado
|
||||
$(basename "$0") -c /path/ Convierte archivos compatibles del directorio especificado
|
||||
|
||||
!
|
||||
}
|
||||
|
||||
case $1 in
|
||||
--conv|-c)
|
||||
if [ -f "$2" ]; then
|
||||
echo "Convirtiendo $(basename "$2") a formato PDF..."
|
||||
pandoc "$2" -V geometry:"top=2cm, bottom=1.5cm, left=2.4cm, right=2.4cm" \
|
||||
--pdf-engine=xelatex -o "$(basename "$2" | cut -d "." -f 1).pdf"
|
||||
elif [ -d "$2" ]; then
|
||||
for file in "$2"/*.docx; do
|
||||
[ -f "$file" ] || continue
|
||||
echo "Convirtiendo $(basename "$file") a formato PDF..."
|
||||
pandoc "$file" -V geometry:"top=2cm, bottom=1.5cm, left=2.4cm, right=2.4cm" \
|
||||
--pdf-engine=xelatex -o "$(basename "$file" | cut -d "." -f 1).pdf"
|
||||
done
|
||||
else
|
||||
echo "ERROR: El fichero o directorio no existe"
|
||||
fi
|
||||
;;
|
||||
--help|-h|*)
|
||||
ayuda
|
||||
esac
|
||||
exit 0
|
||||
|
|
@ -1,14 +1,18 @@
|
|||
#!/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
|
||||
# Este script sólo buscará ejecutables que se encuentren en el PATH del sistema o aquellos que el usuario
|
||||
# haya definido
|
||||
#
|
||||
# Modo de uso:
|
||||
# escript filepath
|
||||
#
|
||||
# Shell: POSIX compliant
|
||||
# Autor: Tuxliban Torvalds <o-sanchez@linuxmail.org>
|
||||
|
||||
FILE_PATH=$(command -v "$1" 2>/dev/null)
|
||||
|
||||
if [ -z "$FILE_PATH" ]; then
|
||||
printf "%s\n" "Error: $1 no encontrado"
|
||||
exit 1
|
||||
echo "Error: $1 no existe en el PATH de ejecutables"
|
||||
else
|
||||
"$EDITOR" "$FILE_PATH"
|
||||
fi
|
||||
|
||||
$EDITOR "$FILE_PATH"
|
||||
|
|
|
@ -1,4 +1,10 @@
|
|||
#!/bin/sh
|
||||
# Script que muestra información sobre la canción en curso
|
||||
#
|
||||
# Dependencias: moc
|
||||
#
|
||||
# Shell: POSIX compliant
|
||||
# Autor: Tuxliban Torvalds <o-sanchez@linuxmail.org>
|
||||
|
||||
if [ "$(mocp -Q %state)" != "STOP" ];then
|
||||
SONG=$(mocp -Q %song)
|
||||
|
|
52
varios/hosts
52
varios/hosts
|
@ -1,43 +1,47 @@
|
|||
#!/bin/sh
|
||||
|
||||
# V0.3.0
|
||||
# V0.3.1
|
||||
# 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
|
||||
# mensual, etc)
|
||||
#
|
||||
# Dependencias: dzen2, wget
|
||||
#
|
||||
# Shell: POSIX compliant
|
||||
# Autor: Tuxliban Torvalds <o-sanchez@linuxmail.org>
|
||||
|
||||
msg() {
|
||||
dzen2 -p '10' -fn 'JetBrains Mono:size=8:style=bold' -ta '5' \
|
||||
-w '260' -x '1100' -y '25'
|
||||
dzen2 -p '10' -fn 'JetBrains Mono:size=8:style=bold' -ta '5' \
|
||||
-w '260' -x '1100' -y '25'
|
||||
}
|
||||
|
||||
which_sudo() {
|
||||
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
|
||||
}
|
||||
|
||||
SUDO=$(which_sudo)
|
||||
|
||||
# Realizar copia de seguridad del fichero hosts en caso de no existir
|
||||
if [ ! -f /etc/hosts.bak ]; then
|
||||
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"
|
||||
$SUDO cp /etc/hosts /etc/hosts.bak && sleep 1s; printf "\033[33;1mCopia finalizada\033[0m\n"
|
||||
else
|
||||
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 '%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 '%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
|
||||
|
||||
# Agregar lista personalizada de páginas al fichero hosts
|
||||
#printf "\033[32;1mAgregando parche de la lista personalizada al fichero hosts...\033[0m\n";
|
||||
#cat /home/skynet/Datos/Git/archivos_diversos/parche >> /etc/hosts; sleep 2;
|
||||
#printf "\033[33;1mParche aplicado\033[0m\n";
|
||||
|
||||
"$HOME"/.local/bin/dunst_sound &
|
||||
# Descargar actualización más reciente del fichero hosts
|
||||
printf '%b' "\033[32;1mDescargando y copiando lista actualizada para fichero hosts...\033[0m\n" &&
|
||||
wget -O /tmp/hosts http://sbc.io/hosts/alternates/fakenews-gambling-porn/hosts && "$HOME"/.local/bin/custom_sites
|
||||
$SUDO mv /tmp/hosts /etc/hosts && "$HOME"/.local/bin/dunst_sound &
|
||||
|
||||
# Notificacion de actualizacion del fichero
|
||||
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
|
||||
printf '%s\n' "Lista de fichero hosts actualizado" | msg
|
||||
printf '%s\n' "Lista de fichero hosts actualizado" | msg &
|
||||
|
|
|
@ -0,0 +1,92 @@
|
|||
#!/bin/sh
|
||||
# v0.2
|
||||
# Dependencias:ImageMagick, xclip, dzen2, xdotool
|
||||
#
|
||||
# Shell: POSIX compliant
|
||||
# Autor: Tuxliban Torvalds <o-sanchez@linuxmail.org>
|
||||
|
||||
DIR="$HOME"/Datos/Capturas
|
||||
DATE="$(date +%Y%m%d-%H%M%S)"
|
||||
|
||||
|
||||
admin() {
|
||||
if 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
|
||||
fi
|
||||
}
|
||||
|
||||
SUDO=$(admin)
|
||||
|
||||
if ! command -v import > /dev/null; then
|
||||
printf '%b' "\033[31;5m[ERROR] Dependencias no satisfecha. Instalando ImageMagick...\033[0m\n"
|
||||
"$SUDO" xbps-install -y ImageMagick
|
||||
elif ! command -v xclip > /dev/null; then
|
||||
printf '%b' "\033[31;5m[ERROR] Dependencias no satisfecha. Instalando xclip...\033[0m\n"
|
||||
"$SUDO" xbps-install -y xclip
|
||||
elif ! command -v dzen2 > /dev/null; then
|
||||
printf '%b' "\033[31;5m[ERROR] Dependencias no satisfecha. Instalando dzen2...\033[0m\n"
|
||||
"$SUDO" xbps-install -y dzen2
|
||||
elif ! command -v xdotool > /dev/null; then
|
||||
printf '%b' "\033[31;5m[ERROR] Dependencias no satisfecha. Instalando xdotool...\033[0m\n"
|
||||
"$SUDO" xbps-install -y xdotool
|
||||
fi
|
||||
|
||||
ayuda() {
|
||||
cat << EOF
|
||||
Script para realizar capturas de pantalla utilizando ImageMagick.
|
||||
|
||||
Modo de uso:
|
||||
$(basename "$0") [-PsfgSFh]
|
||||
-P Guardar captura de pantalla completa en el portapapeles
|
||||
-s Guardar área seleccionada en el portapapeles
|
||||
-f Guardar captura de pantalla de ventana activa en el portapapeles
|
||||
-g Guardar captura de pantalla completa en el disco duro
|
||||
-S Guardar área seleccionada en el disco duro
|
||||
-F Guardar captura de pantalla de ventana activa en el disco duro
|
||||
--help | -h Mostrar este mensaje de ayuda
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
-p)
|
||||
import -window root png:- | xclip -t 'image/png' -selection 'clipboard' -i
|
||||
;;
|
||||
-s)
|
||||
sleep 1 && import png:- | xclip -t 'image/png' -selection 'clipboard' -i
|
||||
;;
|
||||
-f)
|
||||
import -window "$(xdotool getwindowfocus)" png:- | xclip -t 'image/png' -selection 'clipboard' -i
|
||||
;;
|
||||
-g)
|
||||
if [ ! -d "$DIR" ]; then
|
||||
mkdir "$DIR"
|
||||
fi
|
||||
import -format png -window root "$DIR/$DATE.png"
|
||||
"$HOME"/.local/bin/dunst_sound
|
||||
printf '%s\n' "CAPTURA DE PANTALLA" "Guardando en: ~/Datos/Capturas" | msg
|
||||
;;
|
||||
-S)
|
||||
if [ ! -d "$DIR/Select" ]; then
|
||||
mkdir -p "$DIR/Select"
|
||||
fi
|
||||
sleep 1 && import -format png "$DIR/Select/select-$DATE.png"
|
||||
"$HOME"/.local/bin/dunst_sound
|
||||
printf '%s\n' "ÁREA SELECCIONADA" "Guardando en: ~/Datos/Capturas/select" | msg
|
||||
;;
|
||||
-F)
|
||||
if [ ! -d "$DIR/Select" ]; then
|
||||
mkdir -p "$DIR/Select"
|
||||
fi
|
||||
import -window "$(xdotool getwindowfocus)" -format png "$DIR/Select/window-$DATE.png"
|
||||
;;
|
||||
--help|-h|*)
|
||||
ayuda
|
||||
esac
|
|
@ -1,13 +1,19 @@
|
|||
#!/bin/sh
|
||||
## Script para desactivar teclado interno en portátiles mientras se está en
|
||||
## el servidor gráfico
|
||||
# Dependencias: xinput
|
||||
#
|
||||
# Shell: POSIX compliant
|
||||
# Autor: Tuxliban Torvalds <o-sanchez@linuxmail.org>
|
||||
|
||||
ayuda(){
|
||||
cat << EOF
|
||||
Script para desactivar teclado interno en portátiles mientras se está en el servidor gráfico.
|
||||
|
||||
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
|
||||
Ejemplo:
|
||||
$(basename "$0") on Activa teclado interno
|
||||
$(basename "$0") off Desactiva teclado interno
|
||||
$(basename "$0") --help, -h Muestra este mensaje de ayuda
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
|
|
|
@ -1,30 +1,29 @@
|
|||
#!/bin/sh
|
||||
# Script que muestra un menú con opciones en la terminal para poder apagar o reiniciar el sistema
|
||||
#
|
||||
# Dependencias: dmenu, xdotool
|
||||
#
|
||||
# Autor: Tuxliban Torvalds <o-sanchez@linuxmail.org>
|
||||
|
||||
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")
|
||||
#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")
|
||||
#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")
|
||||
slock
|
||||
;;
|
||||
"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")
|
||||
#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")
|
||||
pkill startdwm && xdotool key "super+shift+q"
|
||||
;;
|
||||
*) ;;
|
||||
esac
|
||||
|
|
49
varios/net
49
varios/net
|
@ -1,18 +1,31 @@
|
|||
#!/bin/sh
|
||||
# Dependencias sdhcp, wpa_supplicant, dzen2, sudo, doas (opcional)
|
||||
#
|
||||
# Shell: POSIX compliant
|
||||
# Autor: Tuxliban Torvalds <o-sanchez@linuxmail.org>
|
||||
|
||||
## Script para asignar ip dinámicamente usando sdhcp para establecer conexión a internet
|
||||
## Dependencias sdhcp, wpa_supplicant, dzen2
|
||||
|
||||
if ! command -v sdhcp wpa_supplicant dzen2; then
|
||||
printf '%b\n' "Dependencias no satisfechas. Dependencias necesarias:\n\tsdhcp, wpa_supplicant, dzen2"
|
||||
fi
|
||||
|
||||
deps() {
|
||||
if ! command -v sdhcp; then
|
||||
printf '%b\n' "Dependencias no satisfecha:\n\tsdhcp\n"
|
||||
exit 1
|
||||
elif ! command wpa_supplicant; then
|
||||
printf '%b' "Dependencia no satisfecha:\n\twpa_supplicant\n"
|
||||
exit 1
|
||||
elif ! command -v dzen2; then
|
||||
printf '%b' "Dependencia no satisfecha:\n\tdzen2\n"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
ayuda(){
|
||||
cat << EOF
|
||||
Script para asignar ip dinámicamente usando sdhcp para establecer conexión a internet.
|
||||
|
||||
Uso: $(basename "$0") [interface]
|
||||
Ejemplo: $(basename "$0") eth0
|
||||
Ejemplo: $(basename "$0") wlan0
|
||||
Ejemplo:
|
||||
$(basename "$0") eth0
|
||||
$(basename "$0") wlan0
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
|
@ -33,34 +46,34 @@ msg() {
|
|||
|
||||
SUDO=$(admin)
|
||||
|
||||
deps
|
||||
case $1 in
|
||||
eth0)
|
||||
read -r state < /sys/class/net/"$1"/operstate
|
||||
if [ "$state" = "down" ]; then
|
||||
"$SUDO" ip link set "$1" up
|
||||
"$SUDO" sdhcp "$1"
|
||||
printf '%s\n' "Ethernet activado" | msg
|
||||
printf '%s\n' "Ethernet activado" | msg &
|
||||
elif [ "$state" = "up" ]; then
|
||||
"$SUDO" kill "$(pgrep --list-full sdhcp | awk '/eth0/ {print $1}')"
|
||||
"$SUDO" ip link set eth0 down
|
||||
printf '%s\n' "Ethernet desactivado" | msg
|
||||
printf '%s\n' "Ethernet desactivado" | msg &
|
||||
fi
|
||||
;;
|
||||
wlan0)
|
||||
wlan0|wlan1)
|
||||
read -r state < /sys/class/net/"$1"/operstate
|
||||
if [ "$(pgrep wpa_supplicant)" ]; then
|
||||
"$SUDO" pkill -f wpa_supplicant
|
||||
"$SUDO" ip link set wlan0 down
|
||||
"$SUDO" kill "$(pgrep --list-full sdhcp | awk '/wlan0/ {print $1}')"
|
||||
printf '%s\n' "Wifi desactivado" | msg
|
||||
"$SUDO" ip link set "$1" down
|
||||
"$SUDO" kill "$(pgrep --list-full sdhcp | awk '/wlan/ {print $1}')"
|
||||
printf '%s\n' "Wifi desactivado" | msg &
|
||||
elif [ "$state" = "down" ]; then
|
||||
echo Activando interfaz
|
||||
"$SUDO" ip link set "$1" up
|
||||
echo Iniciando wpa_supplicant...
|
||||
"$SUDO" wpa_supplicant -B -D wext -c /etc/wpa_supplicant/wpa_supplicant-wlan0.conf -i "$1"
|
||||
# "$SUDO" wpa_supplicant -B -D nl80211,wext -c /etc/wpa_supplicant/wpa_supplicant-wlan0.conf -i "$1"
|
||||
"$SUDO" wpa_supplicant -B -D nl80211,wext -c /etc/wpa_supplicant/wpa_supplicant-wlan0.conf -i "$1"
|
||||
echo Asignando ip dinámica...
|
||||
printf '%s\n' "Activando wifi..." | msg
|
||||
printf '%s\n' "Activando wifi..." | msg &
|
||||
"$SUDO" sdhcp "$1"
|
||||
fi
|
||||
;;
|
||||
|
|
|
@ -0,0 +1,91 @@
|
|||
#!/bin/sh
|
||||
# Dependencias iproute, wpa_supplicant, dzen2, sudo, doas (opcional)
|
||||
#
|
||||
# Shell: POSIX compliant
|
||||
# Autor: Tuxliban Torvalds <o-sanchez@linuxmail.org>
|
||||
|
||||
deps() {
|
||||
if ! command -v wpa_supplicant; then
|
||||
printf '%b' "Dependencia no satisfecha:\n\twpa_supplicant\n"
|
||||
exit 1
|
||||
elif ! command -v dzen2; then
|
||||
printf '%b' "Dependencia no satisfecha:\n\tdzen2\n"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
ayuda(){
|
||||
cat << EOF
|
||||
Script para establecer conexión a internet usando una dirección ip estática.
|
||||
|
||||
Uso: $(basename "$0") [interface]
|
||||
Ejemplo:
|
||||
$(basename "$0") eth0
|
||||
$(basename "$0") wlan0
|
||||
EOF
|
||||
}
|
||||
|
||||
admin() {
|
||||
if 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
|
||||
elif [ "$(id -u)" != 0 ]; then
|
||||
echo su
|
||||
fi
|
||||
}
|
||||
|
||||
msg() {
|
||||
dzen2 -p 5 -fn 'JetBrains Mono:size=8:style=bold' -ta 5 \
|
||||
-w 260 -x 1100 -y 25
|
||||
}
|
||||
|
||||
SUDO=$(admin)
|
||||
|
||||
deps
|
||||
case $1 in
|
||||
eth0)
|
||||
read -r state < /sys/class/net/"$1"/operstate
|
||||
if "$(pgrep wpa_supplicant)"; then
|
||||
"$SUDO" pkill -f wpa_supplicant
|
||||
if [ "$state" = "down" ]; then
|
||||
"$SUDO" ip link set "$1" up
|
||||
"$SUDO" ip a add 192.168.1.250/24 dev "$1"
|
||||
"$SUDO" ip route add default via 192.168.1.254 dev "$1"
|
||||
printf '%s\n' "Ethernet activado" | msg &
|
||||
fi
|
||||
elif [ "$state" = "down" ]; then
|
||||
"$SUDO" ip link set "$1" up
|
||||
"$SUDO" ip a add 192.168.1.250/24 dev "$1"
|
||||
"$SUDO" ip route add default via 192.168.1.254 dev "$1"
|
||||
printf '%s\n' "Ethernet activado" | msg &
|
||||
elif [ "$state" = "up" ]; then
|
||||
"$SUDO" ip link set eth0 down
|
||||
printf '%s\n' "Ethernet desactivado" | msg &
|
||||
fi
|
||||
;;
|
||||
wlan0)
|
||||
read -r state < /sys/class/net/"$1"/operstate
|
||||
read -r ethernet < /sys/class/net/eth0/operstate
|
||||
if [ "$ethernet" = "up" ]; then
|
||||
"$SUDO" ip link set eth0 down
|
||||
"$SUDO" ip a add 192.168.1.245/24 dev "$1"
|
||||
"$SUDO" ip route add default via 192.168.1.254 dev "$1"
|
||||
"$SUDO" wpa_supplicant -B -D nl80211,wext -c /etc/wpa_supplicant/wpa_supplicant-wlan0.conf -i "$1"
|
||||
printf '%s\n' "Wifi activado" | msg &
|
||||
elif [ "$state" = "down" ]; then
|
||||
"$SUDO" ip link set "$1" up
|
||||
"$SUDO" ip a add 192.168.1.245/24 dev "$1"
|
||||
"$SUDO" ip route add default via 192.168.1.254 dev "$1"
|
||||
"$SUDO" wpa_supplicant -B -D nl80211,wext -c /etc/wpa_supplicant/wpa_supplicant-wlan0.conf -i "$1"
|
||||
printf '%s\n' "Wifi activado" | msg &
|
||||
elif [ "$(pgrep wpa_supplicant)" ]; then
|
||||
"$SUDO" pkill -f wpa_supplicant
|
||||
"$SUDO" ip link set wlan0 down
|
||||
printf '%s\n' "Wifi desactivado" | msg &
|
||||
fi
|
||||
;;
|
||||
--help|-h|*)
|
||||
ayuda
|
||||
esac
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/sh
|
||||
# Dependencias: ImageMagick
|
||||
## Script que aleatoriza wallpaper
|
||||
## Dependencias: ImageMagick
|
||||
#
|
||||
# Shell: POSIX compliant
|
||||
# Autor: Tuxliban Torvalds <o-sanchez@linuxmail.org>
|
||||
|
||||
deps() {
|
||||
if ! command -v magick >/dev/null; then
|
||||
|
|
|
@ -1,20 +1,22 @@
|
|||
#!/bin/sh
|
||||
# v2.0
|
||||
# v1.3
|
||||
# Script para realizar capturas de pantalla
|
||||
# Dependencias: scrot, xclip, dzen2
|
||||
#
|
||||
# Autor: Tuxliban Torvalds <o-sanchez@linuxmail.org>
|
||||
|
||||
ayuda() {
|
||||
cat << EOF
|
||||
ss_void.sh v1.0 (4/10/2020)
|
||||
Script para realizar capturas de pantalla.
|
||||
Modo de uso:
|
||||
|
||||
ss_void [-PSgsh]
|
||||
ss_void [-PSgsh]
|
||||
|
||||
Opciones:
|
||||
-P: Guardar captura de pantalla en portapapeles
|
||||
-S: Guardar captura de pantalla del área seleccionada en el portapapeles
|
||||
-g: Guardar captura de pantalla en disco duro
|
||||
-s: Guardar captura de pantalla de área seleccionada en disco duro
|
||||
-h: Mostrar ayuda
|
||||
-P: Guardar captura de pantalla en portapapeles
|
||||
-S: Guardar captura de pantalla del área seleccionada en el portapapeles
|
||||
-g: Guardar captura de pantalla en disco duro
|
||||
-s: Guardar captura de pantalla de área seleccionada en disco duro
|
||||
-h: Mostrar ayuda
|
||||
|
||||
EOF
|
||||
}
|
||||
|
|
|
@ -5,19 +5,3 @@ do
|
|||
# Log stderror al fichero
|
||||
dwm 2> "$HOME/.dwm.log"
|
||||
done
|
||||
|
||||
|
||||
#csum=""
|
||||
#new_csum=$(sha1sum $(which dwm))
|
||||
#while true
|
||||
#do
|
||||
# if [ "$csum" != "$new_csum" ]
|
||||
# then
|
||||
# csum=$new_csum
|
||||
# dwm 2> ~/.dwm.log
|
||||
# else
|
||||
# exit 0
|
||||
# fi
|
||||
# new_csum=$(sha1sum $(which dwm))
|
||||
# sleep 0.5
|
||||
#done
|
||||
|
|
|
@ -1,21 +1,35 @@
|
|||
#!/bin/sh
|
||||
## Script para sincronizar nube remota de dropbpox
|
||||
# v1.2
|
||||
# Script para sincronizar nube remota de dropbpox
|
||||
# Dependencias: rclone, rclonesync, dzen2
|
||||
#
|
||||
# Lista de códigos de salida
|
||||
# 0 - éxito
|
||||
# 1 - error de dependencia
|
||||
# 2 - operación exitosa, pero no se transfirieron archivos
|
||||
#
|
||||
# Shell: POSIX compliant
|
||||
# Autor: Tuxliban Torvalds <o-sanchez@linuxmail.org>
|
||||
|
||||
set -e # salir del script inmediatamente cuando un comando falle
|
||||
|
||||
set -u # salir si una variable no ha sido declarada
|
||||
|
||||
|
||||
########## 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
|
||||
deps() {
|
||||
if ! command -v rclone; then
|
||||
printf '%b' "\033[31;5m[ERROR] Instale el paquete 'rclone'\033[0m\n"
|
||||
return 1
|
||||
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"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -41,23 +55,25 @@ 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
|
||||
find "$HOME/Datos/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
|
||||
return 2
|
||||
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
|
||||
--filters-file "$HOME"/.config/rclone/Filtro.txt --rclone-args --copy-links \
|
||||
--multi-thread-streams=14 --transfers=14 >> "$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
|
||||
--filters-file "$HOME"/.config/rclone/Filtro.txt --rclone-args --copy-links \
|
||||
--multi-thread-streams=14 --transfers=14 >> "$HOME"/.config/rclone/log 2>&1
|
||||
}
|
||||
|
||||
msg() {
|
||||
|
@ -66,23 +82,23 @@ msg() {
|
|||
}
|
||||
|
||||
|
||||
|
||||
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
|
||||
if deps; then
|
||||
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
|
||||
fi
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
|
|
@ -1,4 +1,11 @@
|
|||
#!/bin/sh
|
||||
# Script que revisa si existen actualizaciones disponibles para el sistema
|
||||
# Dependencas: dzen2
|
||||
#
|
||||
# Shell: POSIX compliant
|
||||
# Autor: Tuxliban Torvalds <o-sanchez@linuxmail.org>
|
||||
|
||||
set -u
|
||||
|
||||
TMP_UPDATES=/tmp/updates_void
|
||||
[ -d "${TMP_UPDATES}" ] || mkdir "${TMP_UPDATES}"
|
||||
|
@ -7,19 +14,27 @@ xbps-install -nuM 1>"${TMP_UPDATES}"/updates 2>"${TMP_UPDATES}"/error
|
|||
|
||||
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)"
|
||||
|
||||
msg() {
|
||||
dzen2 -p -fn 'JetBrains Mono:size=8:style=bold' -ta '5' \
|
||||
-w '260' -x '1100' -y '25' -l '10'
|
||||
deps() {
|
||||
if ! command -v dzen2; then
|
||||
printf '%b\n' "Dependencia no satisfecha:\n\tInstale dzen2\n"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "$BROKEN" = 0 ] && [ "$UPDATES" -ge 1 ]; then
|
||||
"$HOME"/Dropbox/Gitea/scripts/varios/dunst_sound
|
||||
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
|
||||
msg() {
|
||||
dzen2 -p -fn 'JetBrains Mono:size=8:style=bold' -ta 5 \
|
||||
-w 260 -x 1100 -y 25 -l 10
|
||||
}
|
||||
|
||||
if deps; then
|
||||
if [ "$BROKEN" = 0 ] && [ "$UPDATES" -ge 1 ]; then
|
||||
"$HOME"/Dropbox/Gitea/scripts/varios/dunst_sound
|
||||
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
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
#!/bin/sh
|
||||
# Script que busca formatos compatibles *.gif *.jpeg *.jpg *.png y los muestra en la pantalla
|
||||
# Dependencias: sxiv o nsxiv
|
||||
|
||||
# Buscar formatos compatibles *.gif *.jpeg *.jpg *.png
|
||||
sxiv -pa "$@" 2>/dev/null
|
||||
if command -v sxiv; then
|
||||
sxiv -pa "$@" 2>/dev/null &
|
||||
elif command -v nsxiv; then
|
||||
nsxiv -pa "$@" 2>/dev/null &
|
||||
fi
|
||||
|
|
|
@ -1,9 +1,14 @@
|
|||
#!/bin/sh
|
||||
a=$(amixer sget Master | tail -n1 | sed -r "s/.*\[(.*)\]/\1/")
|
||||
b=$(amixer get Master | tail -n1 | sed -r "s/.*\[(.*)%\].*/\1/")
|
||||
# Script que muestra el porcentaje activo del volumen del sistema
|
||||
# Dependencias: alsa-utils
|
||||
#
|
||||
# Autor: Tuxliban Torvalds <o-sanchez@linuxmail.org>
|
||||
|
||||
if [ "$a" = 'on' ]; then
|
||||
printf " $b%%"
|
||||
STATUS=$(amixer sget Master | tail -n1 | sed -r "s/.*\[(.*)\]/\1/")
|
||||
LEVEL=$(amixer get Master | tail -n1 | sed -r "s/.*\[(.*)%\].*/\1/")
|
||||
|
||||
if [ "$STATUS" = 'on' ]; then
|
||||
echo "VOL $LEVEL%%"
|
||||
else
|
||||
printf "";
|
||||
echo "VOL mute";
|
||||
fi
|
||||
|
|
|
@ -1,8 +1,14 @@
|
|||
#!/bin/sh
|
||||
# Script para consultar el sitio de origen del paquete
|
||||
# (upstream) en busca de nuevas versiones.
|
||||
# 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, dzen2
|
||||
#
|
||||
# Shell: POSIX compliant
|
||||
# Autor: Tuxliban Torvalds <o-sanchez@linuxmail.org>
|
||||
|
||||
set -u
|
||||
set -x
|
||||
unset POSIXLY_CORRECT
|
||||
|
||||
TMP_DIR=/tmp/xpkglocal
|
||||
mkdir "${TMP_DIR}"
|
||||
|
@ -26,19 +32,19 @@ do_install() {
|
|||
}
|
||||
|
||||
msg(){
|
||||
dzen2 -p -fn 'JetBrains Mono:size=8:style=bold' -ta 5 \
|
||||
-w 260 -x 1100 -y 25 -l 20
|
||||
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 ! command -v xpkg >/dev/null; then
|
||||
printf '%s\n' "Instalando paquete xtools"
|
||||
SUDO=$(which_sudo)
|
||||
do_install -Sy xtools
|
||||
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
|
||||
printf '%s\n' "Instalando paquete dzen2"
|
||||
SUDO=$(which_sudo)
|
||||
do_install -Sy dzen2
|
||||
fi
|
||||
|
||||
if [ ! -f "$HOME/void-packages/xbps-src" ]; then
|
||||
|
@ -49,19 +55,23 @@ if [ ! -f "$HOME/void-packages/xbps-src" ]; then
|
|||
echo XBPS_ALLOW_RESTRICTED=yes >> etc/conf
|
||||
fi
|
||||
|
||||
cd "$HOME"/void-packages || exit
|
||||
# Crear lista de actualizaciones disponibles
|
||||
touch "${TMP_DIR}"/releases
|
||||
#for i in $(xbps-query -m | xargs -n1 xbps-uhelper getpkgname); do
|
||||
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
|
||||
cd "$HOME"/void-packages || exit
|
||||
|
||||
for package in $(xpkg -m); do
|
||||
./xbps-src update-check "$package" | tail -n 1 | tee -a "${TMP_DIR}"/releases > /dev/null
|
||||
done
|
||||
|
||||
uniq "${TMP_DIR}"/releases > "${TMP_DIR}"/upstream_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
|
||||
printf '%s\n' "$RELEASES"
|
||||
printf '%s\n' "ACTUALIZACIONES EN UPSTREAM: $UPDATES" "$RELEASES" | msg &
|
||||
fi
|
||||
|
||||
rm -r "$TMP_DIR"
|
||||
|
|
Loading…
Reference in New Issue