Migration

This commit is contained in:
T0MuX 2024-01-08 14:38:13 +01:00
parent 13bfd5dc7e
commit 3d3b71378b
32 changed files with 2024 additions and 0 deletions

View file

@ -0,0 +1,28 @@
# Scripts
## [track](https://git.mux.re/T0MuX/scripts/src/branch/master/track)
Outil de suivi de colis
![](https://zupimages.net/up/19/22/xypt.png)
## [shufflizer](https://git.mux.re/T0MuX/scripts/src/branch/master/shufflizer)
Shufflization d'un répertoire de musique...
![](https://zupimages.net/up/19/48/3q1z.png)
## [plaque](https://git.mux.re/T0MuX/scripts/src/branch/master/plaque)
Obtenir le modèle d'une voiture, ou d'une moto, grâce à sa plaque d'immatriculation
![](https://zupimages.net/up/19/22/rm8e.png) ![](https://zupimages.net/up/19/22/bo9i.png) ![](https://zupimages.net/up/19/22/01gx.png)
## scan-st
Script de scan automatisé. Très pratique quand on possède un scanner classique et qu'on a besoin de scanner des documents pour le travail comme par exemple des PV d'interventions (ce pourquoi il a été écrit à la base)
## tcs - "T0MuX Control Script"
Une sorte de sur-couche à mon WM
## tiregom
Un script pour rechercher des pneus rapidement sur Tiregom (script actuellement optimisé à mon utilisation personnelle)
## week
Reverse-engineering bash de https://estcequecestbientotleweekend.fr :p

15
arch-myinstall.sh Executable file
View file

@ -0,0 +1,15 @@
#!/bin/bash
echo -e "\nInstallation..."
# ATTENTION : retirer riot-desktop (electron) sur archlinux32
# ATELIER / PC PRINCIPAL
#pacstrap /mnt base base-devel dhcpcd linux linux-headers grub git nano python-pip mps-youtube xterm xorg-server xorg-xinit i3 thunar thunar-volman thunar-archive-plugin gvfs gvfs-mtp gvfs-smb samba cups firefox firefox-i18n-fr libreoffice-still libreoffice-still-fr nextcloud-client lutris wine mpv xarchiver epdfview papirus-icon-theme lxappearance feh moc conky slock dunst numlockx parcellite alsa-utils rofi riot-desktop virtualbox nfs-utils remmina freerdp rsync transset-df gnome-keyring sshfs picom thunar ncdu ttf-liberation terminus-font arc-gtk-theme geany thunderbird thunderbird-i18n-fr networkmanager network-manager-applet netorkmanager-openvpn ruby
# LAPTOP XFCE
#pacstrap /mnt base base-devel dhcpcd linux linux-headers grub git nano python-pip mps-youtube xterm xorg-server xorg-xinit xfce4 xfce4-goodies gvfs-mtp gvfs-smb samba cups firefox firefox-i18n-fr libreoffice-still libreoffice-still-fr nextcloud-client lutris wine mpv xarchiver epdfview papirus-icon-theme moc numlockx parcellite alsa-utils riot-desktop nfs-utils remmina freerdp rsync sshfs ncdu ttf-liberation terminus-font arc-gtk-theme papirus-icon-theme geany thunderbird thunderbird-i18n-fr networkmanager network-manager-applet netorkmanager-openvpn pavucontrol ruby
echo -e "\nGeneration du fstab..."
genfstab -U /mnt >> /mnt/etc/fstab
echo "ARCH-CHROOT TIME!"

51
arch-myinstall2.sh Executable file
View file

@ -0,0 +1,51 @@
#!/bin/bash
hostname=atelier-pc
echo -e "\nPacman..."
sed -i s/#Color/Color\\nILoveCandy/ /etc/pacman.conf
sed -i s/#TotalDownload/TotalDownload/ /etc/pacman.conf
sed -i s/CheckSpace/#CheckSpace/ /etc/pacman.conf
echo -e "\nFuseau horaire..."
ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime
echo -e "\nHardware clock..."
hwclock --systohc
echo -e "\nLocale & keymap..."
echo "LANG=fr_FR.UTF-8" > /etc/locale.conf
echo "fr_FR.UTF-8 UTF-8" > /etc/locale.gen
echo "KEYMAP=fr-latin9" > /etc/vconsole.conf
echo "FONT=ter-218b" >> /etc/vconsole.conf
echo "FONT_MAP=8859-15" >> /etc/vconsole.conf
sed -i 's/fsck)/fsck consolefont)/' /etc/mkinitcpio.conf
locale-gen
echo -e "\nHostname & host..."
echo $hostname > /etc/hostname
echo -e "127.0.0.1\tlocalhost\n::1\tlocalhost\n127.0.1.1\t${hostname}.localdomain\t${hostname}" >> /etc/hosts
echo -e "\nServices..."
systemctl enable org.cups.cupsd
systemctl enable sshd
echo -e "\nInitramfs..."
mkinitcpio -p linux
echo -e "\nBoot Loader...\n"
sudo fdisk -l | grep "/dev/"
echo
read -p "Sur quel disque ? " dev
grub-install $dev
grub-mkconfig -o /boot/grub/grub.cfg
echo -e "\nRoot Password..."
passwd
echo -e "\nT0MuX user, password and sudo"
useradd -m -G wheel,sys t0mux
passwd t0mux
sed -i 's/# %wheel ALL=(ALL) ALL/%wheel ALL=(ALL) ALL/
echo -e "\nFin du script.\n"

40
cl1p/cl1p.sh Executable file
View file

@ -0,0 +1,40 @@
#!/bin/bash
# Nom du clip utilisé et url
cat ~/.cl1p &>/dev/null
if [ $? -eq 0 ]
then id=`cat ~/.cl1p`
else read -p "Choisissez un nom pour votre cl1p : " id
echo $id > ~/.cl1p
echo "L'url de votre cl1p est https://cl1p.net/$id"
echo -e "Vous pouvez le modifier en éditant le fichier ~/.cl1p\n"
fi
url=https://cl1p.net/$id
tmp=$HOME/.cl1p_tmp
# Fonction print du contenu du cl1p
printclip() {
cat $tmp|iconv -f latin1 -t utf-8
}
# RECUPERER LE CL1P
curl -s https://api.cl1p.net/$id > $tmp
size=`wc -c $tmp | cut -d\ -f1`
if [ ${size} -gt 2 ]; then clip=1; else clip=0; fi
case $clip in
0) echo -e "Saisir le contenu et appuyer sur Ctrl+D :\n"
# ttl = time to live en MINUTES
# cat | curl --data "ttl=0&content=$(</dev/stdin)" $url &> /dev/null
cat | curl --data "ttl=0&content=$(</proc/self/fd/0)" $url &> /dev/null
echo -e "\nClip envoyé à $url"
;;
1) printclip
;;
esac
# Ajouter menu New/Resend/Quit...
rm $tmp

6
cslan/README.md Executable file
View file

@ -0,0 +1,6 @@
# Scrit d'installation/config pour CS 1.6 LAN
Prérequis : [cslan.zip](https://www.mux.re/share/cslan.zip) ... :D
Dézipper cslan.zip, et placer le script à coté des .exe, puis le lancer.
Un script pour Windows vera également le jour, notamment pour la partie configuration de CS.

62
cslan/install-linux.sh Executable file
View file

@ -0,0 +1,62 @@
#!/bin/bash
# Script d'installation et de configuration automatisé pour CS 1.6 Lan, avec Wine sur Linux
# Il faut posséder les fichiers suivants :
# - cslan-HL143lite.exe
# - cslan-CS16lan.exe
# - cslan-pack_amx3.exe
# - cslan-patch143.exe
# Fonction config qui peut aussi etre appelée par 'install-linux.sh cfg'
config() {
read -n1 -p "Configurer la partie ? (O/n)" ch
case $ch in
o|O) echo;;
n|N) echo;;
*) echo MAUVAIS CHOIX.; exit;;
esac
exit
}
if [ $1 = cfg ]; then config; fi
if [ ! -f /usr/bin/wine ]
then
read -n1 -p "Wine n'est pas installé. Voulez vous l'installer maintenant ? (O/n)" ch
case $ch in
o|O) if [ -f /usr/bin/pacman ]; then sudo pacman -Sy wine --noconfirm; fi
if [ -f /usr/bin/apt ]; then sudo apt update; sudo apt -y install wine; fi
if [ -f /usr/bin/emerge ]; then sudo emerge wine; fi
if [ -f /usr/bin/yum ]; then sudo yum -y wine; fi
;;
n|N) exit;;
*) echo Mauvais choix.; exit;;
esac
fi
if [ -f /usr/bin/pacman ] && [ ! -d /usr/lib32/gstreamer-1.0 ]; then sudo pacman -Sy --noconfirm lib32-gst-plugins-base; fi
echo Installation de Half Life 1.4.3 Lite...
env WINEPREFIX=~/.cslan wine cslan-HL143lite.exe > /dev/null
echo Installation de Counter Strike 1.6 LAN...
env WINEPREFIX=~/.cslan wine cslan-CS16lan.exe > /dev/null
echo Installation du Pack AMX v3...
env WINEPREFIX=~/.cslan wine cslan-pack_amx3.exe > /dev/null
echo Installation du Patch nosteam...
env WINEPREFIX=~/.cslan wine cslan-patch143.exe > /dev/null
echo Activation de la console avec la touche L...
echo "bind \"l\" \"toggleconsole\"" > "~/.cslan/drive_c/Program Files (x86)/Valve Lan/cstrike/userconfig.cfg"
echo
echo "GO LAAAAAAAAAAAN !!!! :D"
echo

3
ftech/ftech.sh Executable file
View file

@ -0,0 +1,3 @@
# projet ftech, récupération de fiches techniques
# depuis zeperfs, autotitre
# en cours...

31
install.sh Executable file
View file

@ -0,0 +1,31 @@
#!/bin/bash
# Script d'installation pour les scripts suivants :
# - mux-shufflizer
# - mux-track
# - plaque
# - tiregom
source=$(dirname $0)
if [ "$1" = "uninstall" ]; then sudo rm -v /usr/bin/{shufflizer,track,plaque,tiregom}; sudo rm /etc/mux-scripts; exit; fi
echo
echo Installation des scripts...
echo
if [ -f "/etc/mux-scripts" ]; then maj=1; else maj=0; fi
sudo cp -v $source/shufflizer/shufflizer.sh /usr/bin/shufflizer
sudo cp -v $source/track/track.sh /usr/bin/track
sudo cp -v $source/plaque/plaque.sh /usr/bin/plaque
sudo cp -v $source/tiregom/tiregom.sh /usr/bin/tiregom
sudo touch /etc/mux-scripts
echo
if [ $maj = 0 ]; then echo "Installation OK."; else echo "Mise à jour OK."; fi
echo "Vous pouvez aussi mettre à jour les scripts en exécutant cette commande :"
if [ "$source" != "." ]; then echo "cd $source"; fi
echo "git pull"
echo "./install.sh"
echo
echo "Pour désinstaller les scripts, exécutez simplement :"
echo "./install.sh uninstall"
echo

41
plaque/README.md Executable file
View file

@ -0,0 +1,41 @@
# plaque
## Introduction
Obtenir le modèle d'une voiture, ou d'une moto (pas encore fonctionnel), grâce à sa plaque d'immatriculation.
Le script ne fait rien d'illégal, il parcours simplement les sites Oscaro, Yakarouler et Pieces auto à votre place pour ne récupérer que le modèle en fonction de la plaque (il utilise la fonction "recherche par plaque" de chaque site).
Pour s'en servir, il suffit de lancer le script, et de saisir la plaque. Le script propose aussi de rechercher les fiches techniques correspondantes, et enregistre un historique des recherches.
## Installation sur Android
Si vous partez de 0, il faut d'abord installer Termux, puis ensuite récupérer le script via le dépôt, et enfin faire un raccourci. Tout est expliqué ci-dessous.
### Installer Termux
Termux est accessible depuis n'importe quel store : [Play](https://play.google.com/store/apps/details?id=com.termux&hl=fr), [F-Droid](https://f-droid.org/fr/packages/com.termux/), [Aptoide](https://termux.fr.aptoide.com/)... Donc il suffit de le télécharger et l'installer.
### Récupération du script
Pour récupérer le script, il va falloir récupérer tout le dépot avec l'outil **git**
* Ouvrir termux
* Installer git en saisissant la commande suivante : `apt install git -y`
* Récupérer ensuite le dépôt : `git clone https://git.mux.re/T0MuX/scripts`
* Créer le dossier des raccourcis termux : `mkdir .shortcuts`
* Copier le script dans le dossier : `cp ./scripts/plaque/plaque.sh ./.shortcuts/plaque`
* Fermer termux en tapant `exit`, ou en déroulant le menu des notification et en appuyant sur Exit en dessous de "Termux"
* Sur l'écran d'accueil, ajouter un widget "Termux shortcut"
* Choisir "plaque" dans la liste, et c'est joué :)
![](https://zupimages.net/up/19/25/4b57.png)
## Utilisation
Quand le script se lance, on a directement une invite à la saisie pour la plaque. On peut aussi saisir les commandes suivantes :
```
? aide
h historique
sh supprimer historique
q quitter
```
## Exemples
### GNU/Linux (Manjaro)
![](https://zupimages.net/up/19/22/l0dv.png) ![](https://zupimages.net/up/19/22/ccf5.png) ![](https://zupimages.net/up/19/22/it6n.png)
### MSYS2 / Cygwin / Bash for windows
![](https://zupimages.net/up/19/22/rm8e.png) ![](https://zupimages.net/up/19/22/bo9i.png) ![](https://zupimages.net/up/19/22/01gx.png)
### Termux (Android)
![](https://zupimages.net/up/19/22/vkgz.png) ![](https://zupimages.net/up/19/22/shbe.png)

242
plaque/plaque.sh Executable file
View file

@ -0,0 +1,242 @@
#!/bin/bash
# Couleurs
N="\e[0m"
V="\e[92m"
J="\e[93m"
R="\e[31m"
B="\e[94m"
BC="\e[34m"
cat=" " # Pour que la variable $cat prenne autant de place dans le script que sur le stdout...
type=A # type Auto par défaut
oscflag=0; ccashaflag=0; paflag=0 # déclaration des variables "flag"
logo() {
echo -e $J" _____ _"
echo "| __ \| |"
echo "| |__) | | __ _ __ _ _MuX_ ___"
echo "| ___/| |/ _\` |/ _\` | | | |/ _ \\"
echo "| | | | (_| | (_| | |_| | __/"
echo "|_| |_|\__,_|\__, |\__,_|\___|"
echo " $cat| |"
echo " |_|"
}
clear; logo
#echo; read -p "Auto / Moto ? (A/M) " typech # Je commente tant que je ne trouve pas de site de moto qui fait de la recherche de modèle par plaque
if [ -z $typech ]
then type=A
cat=Auto
else
if [ $typech = M ] || [ $typech = m ]
then type=M
cat=Moto
fi
fi
# Debut de la grande boucle
while :
do
clear;logo
# Saisie plaque
echo -e -n "${B}# Plaque: $N"
if [ -z $plkreplay ]; then read plk; else plk=$plkreplay; plkreplay=; fi
# Test entrée & exec commandes
if [ "$plk" = q ] || [ "$plk" = e ]; then echo; exit; fi
if [ "$plk" = h ]
then clear; logo; echo -e "${V}Historique des plaques recherchées :$J"
if [ $type = M ]
then if [ -f ~/.plkhm ]; then cat .plkhm; else echo -e "${J}vide$N";fi
else if [ -f ~/.plkh ]
then
count=1
total=$(cat ~/.plkh | wc -l)
while read -r line; do
echo "$count) $line"
if [ $count -eq $total ]; then break; fi
((count++))
done < ~/.plkh
echo
read -p "Rejouer une plaque ? (1-$total) / Retour menu ? (*) " plkch
if [ $plkch -gt 0 ] && [ $plkch -lt 100 ]
then plkreplay=$(cat ~/.plkh | head -n${plkch} | tail -n1 | cut -d\ -f1)
else echo
fi
else
echo -e "${J}vide$N"
read
fi
fi
fi
if [ "$plk" = sh ]
then clear; logo
if [ $type = M ]
then if [ -f ~/.plkhm ]; then rm .plkhm; echo -e "${J}Historique Moto supprimé.$N"; else echo -e "${J}déja vide$N"; fi
else if [ -f ~/.plkh ]; then rm .plkh; echo -e "${J}Historique Auto supprimé.$N"; else echo -e "${J}déja vide$N"; fi
fi
read
fi
if [ "$plk" = "?" ] || [ "$plk" = "help" ]; then
clear; logo; echo -e "${V}Aide :$J\n"
echo -e "$J ? - aide"
echo -e "$J h - historique"
echo -e "$J sh - supprimer historique"
echo -e "$J q - quitter"
fi
# Si aucune commande, lancer la recherche de plaque (ouverture du grand IF "recup info")
if [ "$plk" != "h" ] && [ "$plk" != "sh" ] && [ "$plk" != "help" ] && [ "$plk" != "?" ] && [ "$plk" != "" ]
then
# RECOLTE
# Envoi des requetes pour récupérer les infos dans les variables
if [ $type = M ]
then
# Surplusmoto https://www.surplusmotos.com
# visiblement pas au point (version beta), re-essayer plus tard
# France Casse https://www.francecasse.fr/moto/pieces-moto.htm
# pas au point non plus... faire tests plus tard
echo En cours de test/script...
else
echo -e "\nRecherche...\n"
# Oscaro - HS
#wget -qO- --post-data "plateValue=$plk&genartId=null" https://www.oscaro.com/Catalog/SearchEngine/GetPlateSearchResult 2>/dev/null | cut -d\" -f10 > osctmp
#osc=`cat osctmp | head -n1`
# Carter-Cash - IN PROGRESS
#wget -qO- --post-data "licensePlate=$plk&redirectUrl=https://www.carter-cash.com/pieces-auto/" https://www.carter-cash.com/carselector/licenseplate 2>/dev/null > ccashtmp
#ccashtmp=`cat ccashtmp | grep title-car | awk -F"<|>" '{print $3}'`
#yak2=`cat yaktmp | grep "Code moteur" | awk -F";|<" '{print $6}'`
# Pieces auto - TO CHECK
wget -qO- "https://www.piecesauto.com/homepage/numberplate?value=$plk" > patmp 2>/dev/null
pacarid=`awk -F":|}" '{print $2}' patmp`
wget -qO- "https://www.piecesauto.com//common/seekCar?carid=$pacarid&language=fr" > patmp 2>/dev/null
paurl=`cat patmp`
wget -qO- "https://www.piecesauto.com$paurl" > patmp 2>/dev/null
pa=`grep -A1 "$paurl#sommaire" patmp | sed -e 's/&nbsp;/ /g' -e 's/\t//g' | tr -d '\n' | awk -F'>|<' '{print $3}'`
# Mister Auto - IN PROGRESS
curl "https://www.mister-auto.com/nwsAjax/Plate?immatriculation=$plk" > matmp 2>/dev/null
ma1=
ma2=
# Nettoyage des accents
#yak1=`echo $yak1 | sed 's/&Euml;/Ë/'`
#yak1=`echo $yak1 | sed 's/&eacute;/é/'`
# SORTIE
newline=`echo -e "\n"`
# Oscaro
osctest=`echo $osc | awk -F"<|>| " '{print $3}'`
if [ "$osctest" = "HTML" ] || [ "$osctest" = "html" ] || [ "$osc" = "emptyIdPolTypesDictionnary" ] || [ "$osc" = "$newline" ]
then echo -e "${V}- Oscaro\n${R}rien trouvé";oscflag=0
else echo -e "${V}- Oscaro\n$J$osc$N";oscflag=1
fi
# Yakarouler - à adapter à Carter-Cash
#yaktest=`cat yaktmp | grep triangle | cut -d\ -f20`
#if [ "$yaktest" = "aucun" ] || [ "$yak1" = "" ]
# then echo -e "${V}- Yakarouler\n${R}rien trouvé";yakaflag=0
# else echo -e "${V}- Yakarouler\n$J$yak1\nCode moteur $yak2$N";yakaflag=1
#fi
# Pieces auto
patest=`echo $pa`
if [ "$patest" = "$newline" ]
then echo -e "${V}- Pièces auto\n${R}rien trouvé$N";paflag=0
else echo -e "${V}- Pièces auto\n$J$pa$N";paflag=1
fi
# Suppression des tmp et fermeture du IF "recup info"
rm osctmp ccashtmp patmp
fi
fi
# Definition $model
if [ $oscflag = 1 ] || [ $ccashflag = 1 ] || [ $paflag = 1 ]
then
model=
if [ $oscflag = 1 ]; then model=`echo $osc | awk -F' ' '{print $1" "$2" "$3" "$4" "$5}'`; ccashflag=0; paflag=0; fi
if [ $ccashflag = 1 ]; then model=`echo $ccash | awk -F' ' '{print $1" "$2" "$3" "$4" "$5}'`; paflag=0; fi
if [ $paflag = 1 ]; then model=`echo $pa | awk -F' ' '{print $1" "$2" "$3" "$4" "$5}'`; fi
fi
if [ $oscflag = 0 ] && [ $ccashflag = 0 ] && [ $paflag = 0 ] && [ "$plk" != "h" ] && [ "$plk" != "sh" ] && [ "$plk" != "help" ] && [ "$plk" != "?" ] && [ "$plk" != "" ]
then
echo -e "\nAucune plaque trouvée !"
sleep 2
fi
# Proposition de chercher la fiche technique (si auto) sur zeperf (beta)
if [ $type != M ]
then
if [ $oscflag = 1 ] || [ $ccashflag = 1 ] || [ $paflag = 1 ]
then
echo; read -n1 -p "Fiche technique zeperf + autotitre ? (o/N) " ftch
if [ "$ftch" = "o" ] || [ "$ftch" = "O" ]
then
if [ -f /c/Windows/explorer.exe ]; then cmdurl=explorer.exe; fi # MSYS2
if [ -f ../usr/bin/termux-open ]; then cmdurl=termux-open; fi # Termux
if [ -f /usr/bin/xdg-open ]; then cmdurl=xdg-open; fi # GNU/Linux
if [ -z $cmdurl ]; then echo Aucun lanceur trouvé !; fi
# Recherche sur zeperf avec Qwant, avec le 1er site qui a trouvé la plaque
if [ $oscflag = 1 ]; then $cmdurl "https://lite.qwant.com/?q=site:zeperfs.com $model&t=web"; $cmdurl "https://www.autotitre.com/redir-ft.php?q=$model"; elif
[ $ccashflag = 1 ]; then $cmdurl "https://lite.qwant.com/?q=site:zeperfs.com $model&t=web"; $cmdurl "https://www.autotitre.com/redir-ft.php?q=$model"; elif
[ $paflag = 1 ]; then $cmdurl "https://lite.qwant.com/?q=site:zeperfs.com $model&t=web"; $cmdurl "https://www.autotitre.com/redir-ft.php?q=$model"; fi
fi
fi
fi # test si != moto
# Ajout plaque en historique
if [ "$plk" != "h" ] && [ "$plk" != "sh" ] && [ "$plk" != "help" ] && [ "$plk" != "?" ] && [ "$plk" != "" ]
then
# Détection si plaque déjà recherchée, si oui ne pas la rajouter à nouveau
grep -q $plk ~/.plkh
if [ $? -eq 0 ]; then plkR=1; else plkR=0; fi
# Test si Moto (sinon Auto)
if [ $type = M ]
# Si Moto, juste mettre la plaque
then echo "$plk" >> ~/.plkhm
# Si Auto, mettre plaque et modele
else if [ $oscflag = 1 ] || [ $ccashflag = 1 ] || [ $paflag = 1 ]
then
if [ $plkR -eq 0 ]; then echo "$plk $model" >> ~/.plkh; fi
fi
fi # fermeture test si Moto
fi # fermeture test si commande au lieu de plaque
if [ "$plk" = "?" ]; then echo;echo "Appuyer sur une touche pour revenir..."; read; fi
# Remise des flags à 0
oscflag=0; ccashflag=0; paflag=0
# Et on boucle !
done

2
qbqmb/README.md Executable file
View file

@ -0,0 +1,2 @@
# QuteBrowser QuickMarks Browser #
QBQMB est un navigateur de favoris (quickmarks) pour le navigateur QuteBrowser. Il est écrit en bash, et sa seule dépendance est dialog.

76
qbqmb/qbqmb.sh Executable file
View file

@ -0,0 +1,76 @@
#!/bin/bash
## Vérification si dialog est installé
if [ ! -f /usr/bin/dialog ] && [ ! -f /data/data/com.termux/files/usr/bin/dialog ]; then echo -e "\ndialog n'est pas installé.\n"; exit; fi
## chemin vers les quickmarks
QMFILE=~/Sync/Conf/qb/quickmarks
## dialog 1 - filtre
HEIGHT=15
WIDTH=40
CHOICE_HEIGHT=4
BACKTITLE="QuteBrowser QuickMarks Browser"
TITLE="QBQMB"
MENU="Appliquer un filtre ?"
OPTIONS=(1 "Oui"
2 "Non")
CHOICE=$(dialog --clear \
--backtitle "$BACKTITLE" \
--title "$TITLE" \
--menu "$MENU" \
$HEIGHT $WIDTH $CHOICE_HEIGHT \
"${OPTIONS[@]}" \
2>&1 >/dev/tty)
clear
case $CHOICE in
1)
echo "Saisir un filtre"
# Saisir filtre via un read puis le réutiliser dans dialog 2
;;
2)
# définition de $QM dont chaque array correspond à une ligne de $QMFILE
mapfile -t QM <$QMFILE
# awk '{print $NF}' Sync/Conf/qb/quickmarks
# echo "${test##* }"
read
;;
esac
## dialog 2 - quickmarks
HEIGHT=15
WIDTH=40
CHOICE_HEIGHT=10
TITLE="QBQMB"
MENU="Choisir un quickmark:"
# ICI TROUVER comment récuperer la liste des quickmarks, peut etre avec un for
OPTIONS=(1 "Option 1"
2 "Option 2"
3 "Option 3")
CHOICE=$(dialog --clear \
--backtitle "$BACKTITLE" \
--title "$TITLE" \
--menu "$MENU" \
$HEIGHT $WIDTH $CHOICE_HEIGHT \
"${OPTIONS[@]}" \
2>&1 >/dev/tty)
clear
# ICI trouver un moyen d'exploiter les quickmarks trouvés (voir matrice variable bash?)
case $CHOICE in
1)
echo "You chose Option 1"
;;
2)
echo "You chose Option 2"
;;
3)
echo "You chose Option 3"
;;
esac

35
qbqmb/qbqmb2.sh Executable file
View file

@ -0,0 +1,35 @@
#!/bin/bash
# définition du navigateur
nav=qutebrowser
# définition du fichier d'options
file=~/Sync/Conf/qb/quickmarks
# lecture des options à partir du fichier
IFS_BACKUP=$IFS
IFS=^
options=()
while read -r line; do
#options+=("$line")
# extraire le texte avant le dernier espace
#text=$(echo "$line" | rev | cut -d ' ' -f2- | rev)
#options+=("$text")
text=$(echo "${line% *}^") # extraire le texte jusqu'au premier espace
options+=("$text") # stocker le texte et la ligne complète comme 2 éléments distincts
done < "$file"
# affichage du menu et saisie de l'option choisie
eval `resize`
selected=$(whiptail --title "QB Quickmarks Browser" --menu "Sélectionnez une option :" $LINES $COLUMNS $(( $LINES - 8 )) "${options[@]}" 3>&1 1>&2 2>&3)
# ouverture de l'URL sélectionnée dans le navigateur défini
if [ $? = 0 ]; then
# extraire l'URL correspondante dans le fichier d'options
#url=$(grep -F "$selected" "$file" | cut -d ' ' -fNF)
url=$(echo "$selected" | awk '{print $NF}')
setsid $nav "$selected"
fi
IFS=$IFS_BACKUP

219
scan-st/scan.sh Executable file
View file

@ -0,0 +1,219 @@
#!/bin/bash
# Laisser la boucle ci-dessous car elle permet au script de se répéter en entier
while :; do
count=
# Chemin par défaut
defpath="/home/t0mux/Cloud/1-ATELIER/1-ST"
# defpath="./scantest" # TEST
# Type document
while true; do
clear
echo "# Type de document ?";echo
echo " 1) PV"
echo " 2) BT"
echo " 3) Autre";echo
echo " G) Scanner via GUI"
echo -e " C) Changer le chemin de sortie (${defpath})\n"
if [ ! -z ${type} ]; then echo " i) Idem précédent ($type)"; fi
read -n1 -p ">" ntype
echo
case $ntype in
1) type=PV;break
;;
2) type=BT;break
;;
3) read -p "Type=" type;break
;;
c|C) if [ -f /usr/bin/zenity ]
then defpath=$(zenity --file-selection --directory)
else echo -e "\nZenity n'est pas installé, impossible de changer le chemin par défaut.\n"
fi
;;
g|G) if [ -f /usr/bin/simple-scan ]
then simple-scan
else echo -e "\nsimple-scan n'est pas installé. L'installer ? (O/n)"
read -n1 -p ">" scinst
if [ -z $scinst ]; then scinst=o; fi
echo
if [ "$scinst" = "o" -o "$scinst" = "O" ]
then if [ -f /usr/bin/apt ]; then sudo apt update && sudo apt install simple-scan -y; fi
if [ -f /usr/bin/pacman ]; then sudo pacman -Sy simple-scan; fi
if [ ! -f /usr/bin/apt -a ! -f /usr/bin/pacman ]; then echo -e "\nAucun gestionnaire de paquet pris en charge (apt/pacman)\n" && sleep 3; fi
fi
fi
;;
i|I) echo;break
;;
*)
echo "MAUVAIS CHOIX !"
;;
esac
done
# Particulier
while true; do
clear
echo "Type=$type";echo
echo "# Partenaire ?";echo
echo " 1) AVA-IPS"
echo " 2) BA2I"
echo " 3) BugBusters"
echo " 4) iTEC"
echo " 5) JBS"
echo " 6) Prestinfo"
echo " 7) VTI"
echo " 8) Autre"
if [ ! -z ${part} ]; then echo " i) Idem précédent ($part)"; fi;echo
read -n1 -p ">" npart
case $npart in
1) part=AVA-IPS;break
;;
2) part=BA2I;break
;;
3) part=BugBusters;break
;;
4) part=iTEC;break
;;
5) part=JBS;break
;;
6) part=Prestinfo;break
;;
7) part=VTI;break
;;
8) read -p "Partenaire=" part;break
;;
i|I) echo;break
;;
*)
echo "MAUVAIS CHOIX !"
;;
esac
done
# Date
while true; do
clear
echo "Type=$type | Partenaire=$part";echo
echo "# Date ?";echo
echo " 1) Aujourd'hui (`date +%d/%m/%y`)"
echo " 2) Hier (`date -d "yesterday 13:00" '+%d/%m/%y'`)"
echo " 3) Autre"
if [ ! -z ${date} ]; then echo " i) Idem précédent ($date)"; fi
read -n1 -p ">" ndate
case $ndate in
1) date=`date +%y%m%d`;break
;;
2) date=`date -d "yesterday 13:00" '+%y%m%d'`;break
;;
3) echo; read -p "Date(DDMMYY)=" tmpdate
date=${tmpdate:4:2}${tmpdate:2:2}${tmpdate:0:2}
break
;;
i|I) echo;break
;;
*)
echo "MAUVAIS CHOIX !"
;;
esac
done
# Lieu
while true; do
clear
echo "Type=$type | Partenaire=$part | Date=$date";echo
echo "# Lieu ?";echo
echo " 1) Gap"
echo " 2) Chorges"
echo " 3) Embrun"
echo " 4) Laragne"
echo " 5) Serres"
echo " 6) Autre"
if [ ! -z ${lieu} ]; then echo " i) Idem précédent ($lieu)"; fi
read -n1 -p ">" nlieu
case $nlieu in
1) lieu=Gap;break
;;
2) lieu=Chorges;break
;;
3) lieu=Embrun;break
;;
4) lieu=Laragne;break
;;
5) lieu=Serres;break
;;
6) read -p "Lieu=" lieu;break
;;
i|I) echo;break
;;
*)
echo "MAUVAIS CHOIX !"
;;
esac
done
# Numero intervention
clear
echo "Type=$type | Partenaire=$part | Date=$date | Lieu=$lieu";echo
if [ ! -z ${num} ]; then echo "Précédente intervention scannée : ${num} (i)"; fi
read -p "Numéro intervention=" chnum
if [ "$chnum" != "i" -a "$chnum" != "I" ]; then num=$chnum; fi
# Préparation des variables et des dossiers
rep1=20`echo ${date:0:2}-${date:2:2}`
date2=`echo ${date:0:2}-${date:2:2}-${date:4:2}`
rep2="${date2}_${lieu}"
filename="${date2}_${lieu}_${num}-${type}"
path="${defpath}/${part}/${rep1}/${rep2}"
if [ -f "${path}/${filename}.jpg" ]
then
echo -e "\nLe fichier de destination existe déjà. Que faire ?"
echo " E) Écraser"
echo " I) Incrémenter"
echo " A) Annuler"
echo
read -n1 -p "> " chex
case $chex in
e|E|é|É) echo;;
i|I) count=2 # OK
while :; do
if [ -f "${path}/${filename}${count}.jpg" ]
then ((count++))
else
break
fi
done
;;
esac
else
count=
fi
if [ ! -d "$path" ]; then mkdir -p "$path"; fi
# SCAN !
clear
echo "Type=$type$count | Partenaire=$part | Date=$date | Lieu=$lieu | Num inter=$num";echo
echo;echo Lancer le scan en appuyant sur une touche...
read
# Détection auto du scannerid
scannerid=$(scanimage -L | grep device | cut -d\` -f2 | cut -d\' -f1)
# Détection manuelle du scannerid
# lancer `scanimage -L` pour trouver "l'adresse sane" du scanner
# commenter la ligne de la détection auto, et décommenter celle ci-dessous
# scannerid=xxxxx:libusb:xxx:xxx
scanimage -d $scannerid --format jpeg --resolution 300 --mode Color >${path}/${filename}${count}.jpg && echo -e "\n${path}/${filename}.jpg scanné !\n" &
done

6
shufflizer/README.md Executable file
View file

@ -0,0 +1,6 @@
# MuX - Shufflizer
.. est un script qui permet de "shufflizer" un dossier de musique.
Certains ont pu constater que lors de la lecture aléatoire d'un dossier on pouvait souvent entendre plusieurs fois la même chanson, et jamais d'autres chansons... Cela se produit avec des lecteurs qui ne font que du "pur" aléatoire (VLC par exemple). Il existe bien des lecteurs qui font du shuffle (MOC par exemple).
Ce script permet de palier à ce problème en ajoutant un nombre aléatoire au début de chaque fichier... Suite à cela, il suffit de lire le répertoire normalement. Chaque chanson sera alors lue aléatoirement et au moins une fois sur un cycle complet (repeat).
![](https://zupimages.net/up/19/48/3q1z.png)

216
shufflizer/shufflizer.sh Executable file
View file

@ -0,0 +1,216 @@
#!/bin/bash
# T0MuX - copyleft
# Definition du nombre total de .mp3 dans le dossier du script
total=`ls *.mp3 2>/dev/null | wc -l`
# Definition variables couleurs
normal="\e[0m"
B="\e[97m"
L="\e[94m" # Couleur du logo
color=0
# Fonction couleur aleatoire
color() {
oldcolor="$color"
while :
do
col=`echo $((1 + RANDOM % 12))`
case $col in
1) color="\e[91m";;
2) color="\e[92m";;
3) color="\e[93m";;
4) color="\e[94m";;
5) color="\e[95m";;
6) color="\e[96m";;
7) color="\e[31m";;
8) color="\e[32m";;
9) color="\e[33m";;
10) color="\e[34m";;
11) color="\e[35m";;
12) color="\e[36m";;
esac
if [ "$oldcolor" != "$color" ]; then break; fi
done
}
# LOGO
logo() {
echo -e "$L __ __ __ __ "
echo -e "$L | \/ | \ \ / / "
echo -e "$L | \ / |_ _ \ V / "
echo -e "$L | |\/| | | | | > < "
echo -e "$L | | | | |_| |/ . \ "
echo -e "$L |_| |_|\__,_/_/ \_\ "
echo
echo -e "$L _____ _ __ __ _ _"
echo -e "$L / ____| | / _|/ _| (_)"
echo -e "$L | (___ | |__ _ _| |_| |_| |_ _______ _ __"
echo -e "$L \___ \| '_ \| | | | _| _| | |_ / _ \ '__|"
echo -e "$L ____) | | | | |_| | | | | | | |/ / __/ |"
echo -e "$L |_____/|_| |_|\__,_|_| |_| |_|_/___\___|_|"
echo
}
# YIPEE KAY YAY LOGO
yipee_kay_yay() {
color;C1=$color;color;C2=$color;color;C3=$color
echo -e "$C1 __ _______ _____ ______ ______ $C2 _ __ __ __$C3 __ __ __ __"
echo -e "$C1 \ \ / /_ _| __ \| ____| ____|$C2 | |/ / /\\\\\ \ / /$C3 \ \ / //\\\\\ \ / /"
echo -e "$C1 \ \_/ / | | | |__) | |__ | |__ $C2 | ' / / \\\\\ \_/ / $C3 \ \_/ // \\\\\ \_/ / "
echo -e "$C1 \ / | | | ___/| __| | __| $C2 | < / /\ \\\\\ / $C3 \ // /\ \\\\\ / "
echo -e "$C1 | | _| |_| | | |____| |____ $C2 | . \ / ____ \| | $C3 | |/ ____ \| | "
echo -e "$C1 |_| |_____|_| |______|______|$C2 |_|\_\/_/ \_\_| $C3 |_/_/ \_\_| "
echo -e "$C1 ..motherfucker :D"
echo -e "$normal"
}
# Défini la fonction unshuffle
unshuffle() {
# Compteur à 0 pour la progression
count=0
if [ ! -f .shuffled ]
then
logo
echo "ATTENTION, je n'arrive pas à savoir si le dossier courant est shufflized."
echo "Si vous déshufflizez (du verbe déshufflizer donc) un dossier n'étant pas shufflizé,"
echo "chaque première partie de chaque nom de fichier sera perdue. C'est quand même pas bien cool."
read -n1 -p "Voulez vous quand même le déshufflizer ? Je vous aurais prévenu. (o/N)" ch
if [ "$ch" = "" ]; then ch=N; fi
case $ch in
n|N) exit;;
o|O) echo;echo "Unshufflize it motherfucker !";;
*) echo;echo "MAUVAIS CHOIX"; exit;;
esac
fi
rm .shuffled 2> /dev/null
# Save et adaptation variable IFS pour faire un for tenant compte des epsaces
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
for filename in $(ls *.mp3)
do
newfilename=`echo $filename | cut -d\ -f2-`
color
count=$((count+1))
progress=`echo ${count}*100/${total} | bc`
echo -e "${B}[${progress}%] ${color}$filename ${B}-> ${color}$newfilename${normal}"
mv "$filename" "$newfilename"
done
# Restauration variable IFS
IFS=$SAVEIFS
}
# Défini la fonction shuffle
shuffle() {
# Si fichier .shuffled présent, procéder à la déshufflization (si si, ce mot existe vraiment)
if [ -f .shuffled ]; then unshuffle; fi
# Compteur à 0 pour la progression
count=0
# Save et adaptation variable IFS pour faire un for tenant compte des epsaces
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
case $type in
shuffle) ls_cmd=$(ls *.mp3 | shuf);;
sort1) ls_cmd=$(ls -t --time=birth);;
esac
for filename in $ls_cmd
do
# Renomme en ajoutant nbr au début du filename
color
count=$((count+1))
progress=`echo ${count}*100/${total} | bc`
echo -e "${B}[${progress}%] $color$filename ${B}-> $color$count $filename$normal"
if [ $total -ge 100 ]
then
if [ $count -lt 10 ]; then mv "$filename" "00$count $filename"; fi
if [ $count -ge 10 ] && [ $count -lt 100 ]; then mv "$filename" "0$count $filename"; fi
if [ $count -ge 100 ]; then mv "$filename" "$count $filename"; fi
fi
if [ $total -lt 100 ]
then
if [ $count -lt 10 ]; then mv "$filename" "0$count $filename"; fi
if [ $count -ge 10 ]; then mv "$filename" "$count $filename"; fi
fi
done
# Restauration variable IFS
IFS=$SAVEIFS
# On pose un fichier pour tester sa présence à la prochaine exécution
touch .shuffled
yipee_kay_yay
}
sort1() {
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
# Réalisé avec l'aide de ChatGPT
counter=1
# Récupérer la liste des fichiers triés par date de création (du plus récent au plus vieux)
files=($(ls -t --time=birth))
# Parcourir les fichiers et les renommer
for file in "${files[@]}"
do
if [[ -f $file ]]; then
# Formatage du numéro avec des zéros à gauche (ex: 001, 002, 010, etc.)
number=$(printf "%03d" $counter)
# Extraire l'extension du fichier (s'il y en a une)
extension="${file##*.}"
# Renommer le fichier en ajoutant le numéro au début
mv "$file" "$number $file.$extension"
counter=$((counter+1))
fi
done
IFS=$SAVEIFS
}
# Vérifie si le dossier contient des mp3 puis menu
clear
logo
if [ $total -eq 0 ]
then
echo -e "\e[91mATTENTION : je ne trouve aucun mp3 dans ce répertoire."
echo -e "Veuillez exécuter le script depuis un répertoire qui en contient$normal"
echo
exit
fi
echo -e "${B}S${L}hufflize it !"
echo -e "S${B}o${L}rt it ! (newer to older)"
echo -e "${B}U${L}nshufflize"
echo -e "${B}E${L}xit"
echo
echo "Notez que si le dossier est déjà shufflizé et que vous choisissez de le"
echo "reshufflizer (ce mot est parfaitement français d'ailleurs), le dossier"
echo "sera tout d'abord unshufflizé avant d'être à nouveau shufflizé."
echo
read -n 1 -p "Choix> " ch
case $ch in
s|S) type=shuffle; shuffle && exit;;
o|O) type=sort1; shuffle && exit;;
u|U) unshuffle && echo -e "\nUnshuflized !\n" && exit;;
q|Q|e|E) echo && exit;;
*) echo -e "\n\e[91mChoix incorrect.\e[0m" && exit;;
esac

BIN
tcs/Camera.wav Executable file

Binary file not shown.

3
tcs/README.md Executable file
View file

@ -0,0 +1,3 @@
# tcs "T0MuX Control Script"
script sur-couche pour wm.

BIN
tcs/Slap_low.wav Executable file

Binary file not shown.

BIN
tcs/modem_long.wav Executable file

Binary file not shown.

263
tcs/tcs Executable file
View file

@ -0,0 +1,263 @@
#!/bin/bash
### T0MuX CTRL Script "tcs" v1.0beta ###
# Emplacement absolu des sons, ils seront lu SI ils existent. Pour ne pas les utiliser, les supprimer.
snd=/home/t0mux/scripts/tcs
# Commande de lancement du navigateur (ex: "palemoon -new-window", "midori", "firefox-bin -new-tab -no-remote")
nav=qutebrowser
# Commandes pour lancer les elements du bureau
panel=
dock=
composite=compton
composite_args="--backend glx -cCGfF -e0.8 -o0.7 -t0 -l0 -r6 -D8 -m 0.8 --shadow-exclude"
conky_cmd="conky -c ~/.config/conky/conkyrc&conky -c ~/.config/conky/conkydo&conky -c ~/.config/conky/conkysys&conky -c ~/.config/conky/conkyram&conky -c ~/.config/conky/conkycpu&"
#### A FAIRE ###
# saveconf
# merge UP et URL
# RECUP les sons pour la partie volume
# SEARCH
search() {
case $1 in
qw)
echo -ne "\033]0;"Recherche Qwant"\007"
read -p "" search
$nav https://www.qwant.com/?q="$search"'&t'=web
;;
qwi)
echo -ne "\033]0;"Recherche Qwant Images"\007"
read -p "" search
$nav https://www.qwant.com/?q="$search"'&t'=images &
#exec i3 workspace Recherche Qwant Images
;;
ddg)
echo -ne "\033]0;"Recherche DuckDuckGo"\007"
read -p "" search
$nav https://duckduckgo.com/?t=palemoon'&q='"$search"'&ia'=web &
#exec i3 workspace Recherche DuckDuckGo
;;
ddgi)
echo -ne "\033]0;"Recherche DuckDuckGo Images"\007"
read -p "" search
$nav https://duckduckgo.com/?t=palemoon'&q='"$search"'&iax=1&'ia=images &
#exec i3 workspace Recherche DuckDuckGo Images
;;
eco)
echo -ne "\033]0;"Recherche Ecosia"\007"
read -p "" search
$nav https://www.ecosia.org/search?q="$search" &
#exec i3 workspace Recherche Ecosia
;;
*)
echo "Unknown fruit - sure it isn't toxic?"
exit
esac
}
# Screen - dependances : xclip, scrot, curl +alsa-utils pour le son
screen() {
scrdate=`date +%Y%m%d-%H%M%S`
# Emplacement des captures écrans
scrpath=$HOME/Images/Screenshots/
scrfile=${scrpath}Scr_$scrdate.png
# Création du dossier $scrpath si il n'existe pas
if [ ! -f $scrpath ]; then mkdir -p $scrpath; fi
if [ -z ${2+x} ]; then
if [ "$1" = "f" ]; then
scrot $scrfile
fi
if [ "$1" = "s" ]; then
scrot $scrfile -s
fi
else
if [ "$1" = "f" ]; then
scrot $scrfile -d$2
fi
if [ "$1" = "s" ]; then
scrot $scrfile -s -d$2
fi
fi
aplay -q $snd/Camera.wav && aplay -q $snd/modem_long.wav > /dev/null 2>&1 &
curl -F"file=@${scrfile}" https://0x0.st | xclip -selection primary
pkill aplay && aplay -q $snd/Slap_low.wav
}
# UP & URL - Dépendances : curl + alsa-utils pour le son
up() {
aplay -q $snd/modem_long.wav > /dev/null 2>&1 &
curl -F"file=@$1" https://0x0.st | xclip -selection c
pkill aplay && aplay -q $snd/Slap_low.wav
if [ ! -f /usr/bin/xclip ]; then echo xclip non installé; fi
}
url() {
aplay -q $snd/modem_long.wav > /dev/null 2>&1 &
curl -F"shorten=$1" https://0x0.st | xclip -selection c
pkill aplay && aplay -q $snd/Slap_low.wav
if [ ! -f /usr/bin/xclip ]; then echo xclip non installé; fi
}
# BashCalc - Dépendance : bc
bashcalc() {
echo -ne "\033]0;"BashCalc"\007"
echo "Calculette à l'ancienne mon gars :D"
echo
while :
do
read -p "" calc
echo -e $calc | bc -l
echo
done
}
# Volume - Dépendances : MOC (lecteur audio) + alsa-utils pour le son
volume() {
if [ "$1" = "up" ]; then
amixer -c 0 sset Master 4%+
if [ "`mocp -i`" = "State: STOP" ] || [ "`mocp -i | grep State`" = "State: PAUSE" ]
then aplay /home/t0mux/SOFT/LINUX/theme/sounds/T0MuX/button-pressed.wav
fi
fi
if [ "$1" = "down" ]; then
amixer -c 0 sset Master 4%-
if [ "`mocp -i`" = "State: STOP" ] || [ "`mocp -i | grep State`" = "State: PAUSE" ]
then aplay /home/t0mux/SOFT/LINUX/theme/sounds/T0MuX/button-pressed.wav
fi
fi
if [ "$1" = "mute" ]; then
amixer -c 0 sset Master toggle &&
if [ "`amixer -c 0 sget Master | grep % | cut -d ' ' -f 8 | tr -d []`" = off ]
then notify-send 'Volume' 'Mute' --icon=audio-volume-muted
else notify-send 'Volume' 'Unmuted' --icon=audio-volume-high
fi
fi
}
# Colors
colors() {
for clbg in {40..47} {100..107} 49 ; do
#Foreground
for clfg in {30..37} {90..97} 39 ; do
#Formatting
for attr in 0 1 2 4 5 7 ; do
#Print the result
echo -en "\e[${attr};${clbg};${clfg}m ^[${attr};${clbg};${clfg}m \e[0m"
done
echo #Newline
done
done
exit 0
}
# ISO mounter/unmounter - PAS AU POINT
iso() {
mntdir="$2-mount"
case $1 in
m|mount)
if [ ! -f $mntdir ]; then mkdir $mntdir; fi
archivemount $2 $mntdir
;;
u|umount)
fusermount -u $mntdir
sleep 1
rm -R $mntdir
;;
*)
echo "Mauvais arguments."
echo " "
help
;;
esac
}
# Reconfigure
reconfigure() {
pkill $panel
pkill $dock
pkill $composite
pkill $conky
$panel & $dock & $composite $composite_args & $conky_cmd &
}
# HELP
help() {
echo "T0MuX Control Script - 1.0beta - 16/04/17"
echo
echo "Syntaxe : tcs [OPTION] [argument]"
echo
echo "# Recherche internet :"
echo " tcs <s|search> qw Qwant"
echo " qwi Qwant Images"
echo " ddg DuckDuckGo"
echo " ddgi DuckDuckGo Images"
echo " eco Ecosia"
echo
echo "# Calculette BC"
echo " tcs bc"
echo
echo "# Screencurl - capture écran + upload + retour lien dans clipboard"
echo " tcs <scr|screen> <f|s> <N>"
echo " f Capture tout l'écran"
echo " s Capture avec selection"
echo " N Délai de capture en secondes (0 si non-précisé)"
echo
echo "# Reconfigure - kill et relance les elements du bureau"
echo " tcs <r|reconf>"
echo
echo "# Volume"
echo " tcs <v|vol|volume> up monte le volume"
echo " down baisse le volume"
echo " mute coupe/remet le son"
echo
}
# Interprétation des arguments
case $1 in
s|search)
search $2
;;
scr|screen)
screen $2 $3
;;
up)
up $2
;;
url)
url $2
;;
bc|bashcalc)
bashcalc
;;
v|vol|volume)
volume $2
;;
c|colors)
colors
;;
i|iso)
iso $2 $3 &
;;
r|reconf)
reconfigure &
;;
h|help)
help
;;
*)
echo "Mauvais arguments."
echo " "
help
;;
esac

53
tiregom/tiregom.sh Executable file
View file

@ -0,0 +1,53 @@
#!/bin/bash
while : # DEBUT GRANDE BOUCLE
do
clear
echo ".: TIREGOM :."
echo
echo " 1) Bridgestone"
echo " 2) Nankang"
echo " 3) Nokian"
echo " 4) Yokohama"
echo
echo " Q) Quitter"
echo
read -n1 -p "Marque> " ch
case $ch in
1) brand=43;;
2) brand=77;;
3) brand=58;;
4) brand=62;;
q|Q) echo;echo;exit;;
esac
echo;echo
echo " 1) 205 55 16 (Corolla Verso OEM)"
echo " 2) 195 55 15 (Concerto+)"
echo " 3) 195 50 15 (Civic+)"
echo " 4) 175 70 13 (Civic OEM)"
echo " A) AUTRE"
read -n1 -p "Taille> " ch
case $ch in
1) largeur=205; hauteur=55; diam=16;;
2) largeur=195; hauteur=55; diam=15;;
3) largeur=195; hauteur=50; diam=15;;
4) largeur=175; hauteur=70; diam=13;;
A) read -p "Largeur> " largeur
read -p "Hauteur> " hauteur
read -p "Diamètre> " diam
;;
esac
if [ -f /c/Windows/explorer.exe ]; then cmdurl=explorer.exe; fi # MSYS2
if [ -f ../usr/bin/termux-open ]; then cmdurl=termux-open; fi # Termux
if [ -f /usr/bin/xdg-open ]; then cmdurl=xdg-open; fi # GNU/Linux
if [ -z $cmdurl ]; then echo Aucun lanceur trouvé !; echo; exit; fi
$cmdurl "https://www.tiregom.fr/recherche?largeur=$largeur&hauteur=$hauteur&diametre=$diam&ref_brand[]=$brand" > /dev/null &
done # FIN GRANDE BOUCLE
echo

24
track/README.md Executable file
View file

@ -0,0 +1,24 @@
# mux-track
Outil de suivi de colis
![](https://zupimages.net/up/19/25/dkor.png)
## Utilisation
MuXtrack peut s'utiliser de deux façon : avec le menu, ou en "oneshot". Pour avoir le menu, exécuter simplement le script. En oneshot, la syntaxe est la suivante : `./muxtrack.sh <ch,dhl,lp,tnt,mr> <numéro colis>`
- ch : Chronopost
- dhl : DHL
- dpd : DPD
- lp : Laposte
- lpc : Laposte Colissimo
- tnt : TNT
- mr : Mondial Relay
## Termux : raccourci sur l'écran d'accueil
* Ouvrir termux
* `git clone https://git.mux.re/T0MuX/scripts`
* `cp ./scripts/mux-track/muxtrack.sh ./.shortcuts/muxtrack`
* Sur l'écran d'accueil, ajouter un widget "Termux shortcut"
* Choisir "muxtrack" dans la liste
![](https://zupimages.net/up/19/25/dcpb.png) ![](https://zupimages.net/up/19/25/nh4z.png)

250
track/track.sh Executable file
View file

@ -0,0 +1,250 @@
#!/bin/bash
V="\e[92m"
B="\e[1m"
N="\e[0m"
S="\e[4m"
# Detection systeme
if [ -f /c/Windows/explorer.exe ]; then cmdurl=start; fi # MSYS2
if [ -f ../usr/bin/termux-open ]; then cmdurl=termux-open; fi # Termux
if [ -f /usr/bin/xdg-open ]; then cmdurl=xdg-open; fi # GNU/Linux
if [ -z $cmdurl ]; then echo Aucun lanceur trouvé !; read; exit; fi
# Logo (Ajouter logo MuX..)
logo() {
clear
echo
echo -e " ${S}Outil de suivi de colis$N - MuXtrack"
echo
}
# Fonction help
help() {
echo "MuXtrack - Syntaxe :"
echo " ./muxtrack.sh <ch,dhl,lp,lpc,tnt,mr> <numéro colis>"
echo
exit
}
# Debut de la "grande boucle"
while : ; do {
# Une fonction par société
chrono() {
while : ; do {
if [ -z $1 ] # Si pas de num colis donné en argument
then
logo
echo -e "Taper q puis entrée pour revenir\n"
read -p "Numéro de colis Chronopost : " num
if [ $num = q ] || [ $num = Q ]; then break ;fi
else # Si num colis donné en argument
num=$1
fi
$cmdurl "https://www.chronopost.fr/fr/chrono_suivi_search?listeNumerosLT=${num}&lang=fr"
if [ ! -z $1 ]; then exit; fi # Si num colis en argument, fermer.
}
done
}
dhl() {
while : ; do {
if [ -z $1 ]
then
logo
echo -e "Taper q puis entrée pour revenir\n"
read -p "Numéro de colis DHL : " num
if [ $num = q ] || [ $num = Q ]; then break ;fi
else
num=$1
fi
$cmdurl "http://www.dhl.fr/fr/dhl_express/suivi_expedition.html?AWB=${num}&brand=DHL"
if [ ! -z $1 ]; then exit; fi
}
done
}
dpd() {
while : ; do {
if [ -z $1 ]
then
logo
echo -e "Taper q puis entrée pour revenir\n"
read -p "Numéro de colis DPD : " num
if [ $num = q ] || [ $num = Q ]; then break ;fi
else
num=$1
fi
$cmdurl "https://tracking.dpd.de/status/fr_FR/parcel/${num}"
if [ ! -z $1 ]; then exit; fi
}
done
}
lp() {
while : ; do {
if [ -z $1 ]
then
logo
echo -e "Taper q puis entrée pour revenir\n"
read -p "Numéro de colis Laposte : " num
if [ $num = q ] || [ $num = Q ]; then break ;fi
else
num=$1
fi
$cmdurl "https://www.suivre-des-colis.fr/la-poste/tracking/?trackingcode=${num}&provider=la-poste"
if [ ! -z $1 ]; then exit; fi
}
done
}
lpc() {
while : ; do {
if [ -z $1 ]
then
logo
echo -e "Taper q puis entrée pour revenir\n"
read -p "Numéro de colis Colissimo : " num
if [ $num = q ] || [ $num = Q ]; then break ;fi
else
num=$1
fi
$cmdurl "https://www.laposte.fr/outils/suivre-vos-envois?code=${num}"
if [ ! -z $1 ]; then exit; fi
}
done
}
mr() {
while : ; do {
if [ -z $1 ]
then
logo
echo -e "Taper q puis entrée pour revenir\n"
read -p "Numéro de colis Mondial Relay : " num
if [ $num = q ] || [ $num = Q ]; then break ;fi
else
num=$1
fi
$cmdurl "https://www.mondialrelay.fr/suivi-de-colis?codeMarque=CC&numeroExpedition=${num}&language=fr"
if [ ! -z $1 ]; then exit; fi
}
done
}
tnt() {
while : ; do {
if [ -z $1 ]
then
logo
echo -e "Taper q puis entrée pour revenir\n"
read -p "Numéro de colis TNT : " num
if [ $num = q ] || [ $num = Q ]; then break ;fi
else
num=$1
fi
$cmdurl "https://www.tnt.fr/public/suivi_colis/recherche/visubontransport.do?bonTransport=${num}&radiochoixrecherche=BT&radiochoixtypeexpedition=NAT"
if [ ! -z $1 ]; then exit; fi
}
done
}
# Possibilité d'appeler directement une fonction avec un argument
if [ ! -z $1 ]; then
case "$1" in
ch)
if [ -z $2 ]; then help; fi
chrono $2
;;
dhl)
if [ -z $2 ]; then help; fi
dhl $2
;;
dpd)
if [ -z $2 ]; then help; fi
dpd $2
;;
lp)
if [ -z $2 ]; then help; fi
lp $2
;;
lpc)
if [ -z $2 ]; then help; fi
lpc $2
;;
tnt)
if [ -z $2 ]; then help; fi
tnt $2
;;
mr)
if [ -z $2 ]; then help; fi
mr $2
;;
*)
help
;;
esac
fi
logo
echo " 1) Chronopost"
echo " 2) DHL"
echo " 3) DPD"
echo " 4) Laposte"
echo " 5) Laposte Colissimo"
echo " 6) TNT"
echo " 7) Mondial Relay"
echo
echo " Q) Quitter"
echo
read -n1 -p "Choix > " ch
case "$ch" in
1)
chrono
;;
2)
dhl
;;
3)
dpd
;;
4)
lp
;;
5)
lpc
;;
6)
tnt
;;
7)
mr
;;
q|Q)
echo&&exit 1
;;
*)
echo "mauvais choix"
;;
esac
}
done

22
trad/trad.sh Executable file
View file

@ -0,0 +1,22 @@
#!/bin/bash
PS3='Choix:'
langs=("fr-en" "en-fr" "fr-pt" "pt-fr")
echo
select trad in "${langs[@]}"; do
echo
case $trad in
"fr-en")
trans fr:en "$@";echo "---"
;;
"en-fr")
trans en:fr "$@";echo "---"
;;
"fr-pt")
trans fr:pt "$@";echo "---"
;;
"pt-fr")
trans pt:fr "$@";echo "---"
;;
*) echo "invalid option $REPLY";;
esac
done

64
trad/tscli.sh Executable file
View file

@ -0,0 +1,64 @@
#!/bin/bash
# Translate Shell CLI
# Conçu avec l'aide de ChatGPT
# Liste des langues principales
main_langs=("fr:en" "en:fr" "fr:pt" "pt:fr" "en:pt" "pt:en")
# Fonction pour afficher le menu principal
function main_menu() {
echo "=== MENU PRINCIPAL ==="
echo "1. Français - Anglais"
echo "2. Anglais - Français"
echo "3. Français - Portugais"
echo "4. Portugais - Français"
echo "5. Anglais - Portugais"
echo "6. Portugais - Anglais"
echo "7. Autre langue"
echo "8. Quitter"
}
# Fonction pour afficher la liste de toutes les langues disponibles
function list_all_langs() {
echo "=== LISTE DES LANGUES ==="
trans -list | awk '{print NR". "$0}'
}
# Fonction pour traduire le texte
function translate_text() {
read -p "Texte à traduire: " text
if [[ "$lang_choice" == "7" ]]; then
read -p "Langue source-cible (ex: en:fr): " lang_choice
trans "$lang_choice" "$text"
else
# echo DEBUG trans "${main_langs[$lang_choice-1]}" "$text"
trans "${main_langs[$lang_choice-1]}" "$text"
fi
}
# Boucle principale
while true; do
clear
main_menu
read -n 1 -p "Choix: " lang_choice;echo
case "$lang_choice" in
1|2|3|4|5|6)
translate_text
read -p "Appuyez sur une touche pour continuer..."
;;
7)
list_all_langs
read -p "Langue source-cible (ex: en-fr): " lang_choice
translate_text
read -p "Appuyez sur une touche pour continuer..."
;;
8)
exit 0
;;
*)
echo "Choix invalide."
read -p "Appuyez sur une touche pour continuer..."
;;
esac
done

14
wc-pattern/techniques.csv Executable file
View file

@ -0,0 +1,14 @@
tan sao,0
pak sao,0
bong sao,0
gam sao,0
jam sao,0
kao sao,0
jat sao,0
lap sao,0
chun kuen,1
wan kuen,1
biu jee,1
chin chun,1
fak sao,1
chum sao,1
1 tan sao 0
2 pak sao 0
3 bong sao 0
4 gam sao 0
5 jam sao 0
6 kao sao 0
7 jat sao 0
8 lap sao 0
9 chun kuen 1
10 wan kuen 1
11 biu jee 1
12 chin chun 1
13 fak sao 1
14 chum sao 1

72
wc-pattern/wc-pattern.sh Executable file
View file

@ -0,0 +1,72 @@
#!/bin/bash
# Fonction pour générer un enchainement de techniques
function generate_pattern() {
local technique_type=$1
local pattern=$2
# Lire les techniques à partir du fichier CSV
IFS=$'\n' read -d '' -r -a techniques < techniques.csv
# Filtrer les techniques en fonction du type demandé (défense ou attaque)
filtered_techniques=()
for technique in "${techniques[@]}"; do
name=$(echo "$technique" | cut -d ',' -f 1)
type=$(echo "$technique" | cut -d ',' -f 2)
if [ "$type" == "$technique_type" ]; then
filtered_techniques+=("$name")
fi
done
# Générer l'enchainement de techniques
random_techniques=()
for i in $(seq 1 ${#pattern}); do
if [ "${pattern:i-1:1}" == "0" ]; then
random_techniques+=("${filtered_techniques[$RANDOM % ${#filtered_techniques[@]}]}")
else
random_techniques+=("${filtered_techniques[$RANDOM % ${#filtered_techniques[@]}]}")
random_techniques+=("&")
fi
done
# Supprimer le dernier "&" s'il existe
if [ "${random_techniques[-1]}" == "&" ]; then
unset "random_techniques[${#random_techniques[@]}-1]"
fi
# Afficher l'enchainement de techniques
echo "${random_techniques[@]}"
}
# Demander le pattern à l'utilisateur
echo "Choisissez un pattern :"
echo "1) Défense + attaque"
echo "2) Défense + défense + attaque"
echo "3) Défense + attaque + défense + attaque"
echo "4) Défense + défense + attaque + attaque"
echo "5) Personnaliser"
read pattern_choice
# Générer l'enchainement de techniques en fonction du pattern choisi
case $pattern_choice in
1)
generate_pattern 1 "01"
;;
2)
generate_pattern 0 "010"
;;
3)
generate_pattern 0 "1010"
;;
4)
generate_pattern 0 "0011"
;;
5)
echo "Entrez le pattern (par exemple, 0101 pour une défense suivie d'une attaque répétée deux fois) :"
read pattern
generate_pattern 0 "$pattern"
;;
*)
echo "Choix invalide."
;;
esac

70
wc-pattern/wc-pattern2.sh Executable file
View file

@ -0,0 +1,70 @@
#!/bin/bash
# Lire les techniques à partir du fichier CSV
IFS=$'\n' read -d '' -r -a techniques < techniques.csv
# Fonction pour choisir une technique aléatoire d'un certain type
function choose_random_technique() {
local technique_type=$1
local filtered_techniques=()
for technique in "${techniques[@]}"; do
local name=$(echo "$technique" | cut -d ',' -f 1)
local type=$(echo "$technique" | cut -d ',' -f 2)
if [ "$type" == "$technique_type" ]; then
filtered_techniques+=("$name")
fi
done
# Choisir une technique aléatoire parmi les techniques filtrées
local random_index=$(( RANDOM % ${#filtered_techniques[@]} ))
echo "${filtered_techniques[random_index]}"
}
# Demander le choix du pattern à l'utilisateur
echo "Quel pattern souhaitez-vous choisir ?"
echo "1) Défense + attaque"
echo "2) Défense + défense + attaque"
echo "3) Défense + attaque + défense + attaque"
echo "4) Défense + défense + attaque + attaque"
echo "5) Personnaliser"
read -p "Entrez le numéro de votre choix : " pattern_choice
# Générer l'enchaînement de techniques en fonction du pattern choisi
case $pattern_choice in
1)
defense_technique=$(choose_random_technique 0)
attack_technique=$(choose_random_technique 1)
echo "$defense_technique & $attack_technique"
;;
2)
defense_technique=$(choose_random_technique 0)
echo "$defense_technique & $defense_technique & $(choose_random_technique 1)"
;;
3)
defense_technique=$(choose_random_technique 0)
attack_technique=$(choose_random_technique 1)
echo "$defense_technique & $attack_technique & $defense_technique & $attack_technique"
;;
4)
defense_technique=$(choose_random_technique 0)
echo "$defense_technique & $defense_technique & $(choose_random_technique 1) & $(choose_random_technique 1)"
;;
5)
read -p "Entrez votre propre pattern en utilisant 0 pour la défense et 1 pour l'attaque (par exemple, 0101) : " custom_pattern
pattern_output=""
for c in $(echo $custom_pattern | grep -o .); do
if [ "$c" == "0" ]; then
pattern_output+="$(choose_random_technique 0) & "
else
pattern_output+="$(choose_random_technique 1) & "
fi
done
echo "${pattern_output::-3}" # Supprimer le dernier "&" et l'espace
;;
*)
echo "Choix invalide."
;;
esac

13
wc-tech/techniques.csv Executable file
View file

@ -0,0 +1,13 @@
tan sao,0
pak sao,0
bong sao,0
gam sao,0
jam sao,0
kao sao,0
jat sao,0
lap sao,0
chun kuen,1
biu jee,1
chin chun,1
fak sao,1
chum sao,1
1 tan sao 0
2 pak sao 0
3 bong sao 0
4 gam sao 0
5 jam sao 0
6 kao sao 0
7 jat sao 0
8 lap sao 0
9 chun kuen 1
10 biu jee 1
11 chin chun 1
12 fak sao 1
13 chum sao 1

68
wc-tech/wc-tech.sh Executable file
View file

@ -0,0 +1,68 @@
#!/bin/bash
# Fonction pour choisir une technique aléatoire
choose_technique() {
local techniques_file="$1"
shuf -n 1 "$techniques_file"
}
# Fonction pour afficher les techniques en fonction du pattern
display_techniques() {
local techniques_file="$1"
local pattern="$2"
IFS='+' read -ra pattern_array <<< "$pattern"
for p in "${pattern_array[@]}"; do
technique=""
if [[ "$p" -eq 0 ]]; then
technique=$(choose_technique "$techniques_file" | cut -d',' -f1)
echo "Défensive : $technique"
elif [[ "$p" -eq 1 ]]; then
technique=$(choose_technique "$techniques_file" | cut -d',' -f2)
echo "Offensive : $technique"
fi
done
}
# Main
techniques_file="techniques.csv"
while true; do
clear
echo "Menu :"
echo "1) Défense + Attaque"
echo "2) Défense + Défense"
echo "3) Défense + Défense + Attaque"
echo "4) Défense + Attaque + Défense + Attaque"
echo "5) Pattern personnalisé"
echo "0) Quitter"
read -p "Choisissez une option : " choice
case "$choice" in
1)
display_techniques "$techniques_file" "0+1"
;;
2)
display_techniques "$techniques_file" "0+0"
;;
3)
display_techniques "$techniques_file" "0+0+1"
;;
4)
display_techniques "$techniques_file" "0+1+0+1"
;;
5)
read -p "Entrez le pattern personnalisé (par exemple '1+0+0+1') : " custom_pattern
display_techniques "$techniques_file" "$custom_pattern"
;;
0)
echo "Au revoir !"
exit 0
;;
*)
echo "Option invalide. Veuillez choisir une option valide."
;;
esac
read -p "Appuyez sur Entrée pour afficher le menu à nouveau..." input
done

35
week/week.sh Executable file
View file

@ -0,0 +1,35 @@
#!/bin/bash
# Définition des variables
date=`date +%d%m`
day=`date +%u`
heure=`date +%H`
# Définition des phrases type
non="Non."
non2="Non. Mais c'est comme si."
ferie="Non. Mais aujourd'hui, on ne travaille pas \\o/"
week="C'est le week end \\o/"
# Conditions
if [ $day -eq 7 ]
then text=$week
else
if [ $date -eq 2211 ] || [ $date -eq 2512 ] || [ $date -eq 0101 ] || [ $date -eq 0105 ] || [ $date -eq 0805 ] || [ $date -eq 1407 ] || [ $date -eq 1508 ]
then text=$ferie
else
if [ $day -eq 6 ] && [ $heure -gt 15 ] && [ $heure -le 18 ]
then text=$non2
else
if [ $day -eq 6 ] && [ $heure -gt 17 ]
then text=$week
else
text=$non
fi
fi
fi
fi
# -> rajouter lundi de paques, pentecotes, sur 20 ans lol
# Output
echo $text