.linx-env v1

This commit is contained in:
valere
2025-10-07 09:34:46 +02:00
parent a356f4c003
commit 323af82393
6 changed files with 92 additions and 51 deletions

View File

@@ -1,46 +1,77 @@
#!/bin/bash
set -e
SERVICE_NAME="gamecube-pad.service"
SERVICE_PATH="$HOME/.config/systemd/user/gamecube-pad.service"
PYTHON_SCRIPT="/home/$USER/.local/bin/gamecube-pad.py"
PYTHON_SCRIPT="$HOME/.local/bin/gamecube-pad.py"
AUTOSTART_DIR="$HOME/.config/autostart"
AUTOSTART_FILE="$AUTOSTART_DIR/gamecube-pad.desktop"
install_service() {
echo "[+] Installation des dépendances..."
sudo apt install -y python3-evdev python3-uinput xdotool wmctrl
SILENT=false
if [[ "$1" == "silent" ]]; then
SILENT=true
fi
echo "[+] Copie du script Python..."
mkdir -p "$(dirname "$PYTHON_SCRIPT")"
cp gamecube-pad.py "$PYTHON_SCRIPT"
chmod +x "$PYTHON_SCRIPT"
echo "[+] Copie du fichier systemd utilisateur..."
mkdir -p "$HOME/.config/systemd/user"
cp gamecube-pad.service "$SERVICE_PATH"
echo "[+] Activation du service..."
systemctl --user daemon-reload
systemctl --user enable gamecube-pad.service
systemctl --user restart gamecube-pad.service
echo "[✓] Installation terminée. Consultez les logs avec : journalctl --user -u gamecube-pad.service -f"
log() {
if [ "$SILENT" = false ]; then
echo "$@"
fi
}
uninstall_service() {
echo "[+] Arrêt et suppression du service..."
systemctl --user stop gamecube-pad.service || true
systemctl --user disable gamecube-pad.service || true
rm -f "$SERVICE_PATH"
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 linstaller 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"
systemctl --user daemon-reload
echo "[✓] Désinstallation terminée."
rm -f "$AUTOSTART_FILE"
log "[✓] Désinstallation terminée."
}
case "$1" in
uninstall)
uninstall_service
uninstall_script
;;
silent)
SILENT=true
uninstall_script &>/dev/null
install_script &>/dev/null
;;
*)
install_service
install_script
;;
esac