78 lines
1.7 KiB
Bash
Executable File
78 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
||
set -e
|
||
|
||
PYTHON_SCRIPT="$HOME/.local/bin/gamecube-pad.py"
|
||
AUTOSTART_DIR="$HOME/.config/autostart"
|
||
AUTOSTART_FILE="$AUTOSTART_DIR/gamecube-pad.desktop"
|
||
|
||
SILENT=false
|
||
if [[ "$1" == "silent" ]]; then
|
||
SILENT=true
|
||
fi
|
||
|
||
log() {
|
||
if [ "$SILENT" = false ]; then
|
||
echo "$@"
|
||
fi
|
||
}
|
||
|
||
check_and_install_deps() {
|
||
for pkg in evdev uinput; do
|
||
if ! python3 -c "import $pkg" &>/dev/null; then
|
||
log "[!] Dépendance manquante : $pkg. Installation avec pip..."
|
||
python3 -m pip install --user "$pkg" &>/dev/null
|
||
fi
|
||
done
|
||
|
||
for cmd in xdotool wmctrl; do
|
||
if ! command -v "$cmd" &>/dev/null; then
|
||
log "[!] Commande manquante : $cmd. Merci de l’installer via votre gestionnaire de paquets."
|
||
fi
|
||
done
|
||
}
|
||
|
||
install_script() {
|
||
check_and_install_deps
|
||
|
||
log "[+] Copie du script Python..."
|
||
mkdir -p "$(dirname "$PYTHON_SCRIPT")"
|
||
cp "$HOME/.linux-env/gamecube-pad/gamecube-pad.py" "$PYTHON_SCRIPT"
|
||
chmod +x "$PYTHON_SCRIPT"
|
||
|
||
log "[+] Création du fichier autostart..."
|
||
mkdir -p "$AUTOSTART_DIR"
|
||
cat > "$AUTOSTART_FILE" <<EOF
|
||
[Desktop Entry]
|
||
Type=Application
|
||
Exec=$PYTHON_SCRIPT
|
||
Hidden=false
|
||
NoDisplay=false
|
||
X-GNOME-Autostart-enabled=true
|
||
Name=GameCube Pad
|
||
Comment=Lance le script GameCube Pad au démarrage
|
||
EOF
|
||
|
||
log "[✓] Installation terminée. Le script se lancera automatiquement à l'ouverture de session."
|
||
}
|
||
|
||
uninstall_script() {
|
||
log "[+] Suppression du script Python et autostart..."
|
||
rm -f "$PYTHON_SCRIPT"
|
||
rm -f "$AUTOSTART_FILE"
|
||
log "[✓] Désinstallation terminée."
|
||
}
|
||
|
||
case "$1" in
|
||
uninstall)
|
||
uninstall_script
|
||
;;
|
||
silent)
|
||
SILENT=true
|
||
uninstall_script &>/dev/null
|
||
install_script &>/dev/null
|
||
;;
|
||
*)
|
||
install_script
|
||
;;
|
||
esac
|