Files
gnome-asus-kbd-rgb/tools/install-local.sh
2025-12-21 06:55:49 +01:00

166 lines
6.4 KiB
Bash
Executable File

#!/bin/bash
# install-local.sh - Script d'installation locale pour l'extension ASUS Keyboard RGB
set -e # Arrêter en cas d'erreur
# Couleurs pour l'affichage
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Configuration
EXTENSION_UUID="asus-kbd-rgb@gilles"
EXTENSION_DIR="$HOME/.local/share/gnome-shell/extensions/$EXTENSION_UUID"
SOURCE_DIR="$(cd "$(dirname "$0")/.." && pwd)/extension"
echo -e "${BLUE}=== Installation de l'extension ASUS Keyboard RGB ===${NC}\n"
# Vérifier que le dossier source existe
if [ ! -d "$SOURCE_DIR" ]; then
echo -e "${RED}Erreur: Dossier source non trouvé: $SOURCE_DIR${NC}"
exit 1
fi
# Vérifier GNOME Shell
if ! command -v gnome-shell &> /dev/null; then
echo -e "${RED}Erreur: GNOME Shell n'est pas installé${NC}"
exit 1
fi
GNOME_VERSION=$(gnome-shell --version | grep -oP '\d+' | head -1)
echo -e "${GREEN}${NC} GNOME Shell version: $GNOME_VERSION"
if [ "$GNOME_VERSION" != "48" ]; then
echo -e "${YELLOW}⚠ Attention: Cette extension est conçue pour GNOME Shell 48${NC}"
echo -e "${YELLOW} Votre version: $GNOME_VERSION${NC}"
read -p "Continuer quand même ? (o/N) " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Oo]$ ]]; then
exit 1
fi
fi
# Vérifier le support matériel
echo -e "\n${BLUE}Vérification du support matériel...${NC}"
if [ ! -d "/sys/class/leds/asus::kbd_backlight" ]; then
echo -e "${RED}✗ Clavier ASUS RGB non détecté${NC}"
echo -e "${YELLOW} Les fichiers sysfs sont absents: /sys/class/leds/asus::kbd_backlight/${NC}"
echo -e "${YELLOW} L'extension s'installera mais ne fonctionnera pas sur ce système.${NC}"
read -p "Continuer quand même ? (o/N) " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Oo]$ ]]; then
exit 1
fi
else
echo -e "${GREEN}${NC} Clavier ASUS RGB détecté"
fi
# Vérifier les permissions
echo -e "\n${BLUE}Vérification des permissions...${NC}"
if [ -w "/sys/class/leds/asus::kbd_backlight/brightness" ]; then
echo -e "${GREEN}${NC} Permissions d'écriture OK"
# Vérifier que le groupe est bien kbdled
BRIGHTNESS_GROUP=$(stat -c '%G' /sys/class/leds/asus::kbd_backlight/brightness 2>/dev/null)
if [ "$BRIGHTNESS_GROUP" = "kbdled" ]; then
echo -e "${GREEN}${NC} Groupe kbdled configuré correctement"
fi
else
echo -e "${YELLOW}⚠ Permissions insuffisantes${NC}"
echo -e "${YELLOW} Vous devez configurer les règles udev pour utiliser l'extension.${NC}"
echo -e "${YELLOW} Voir: docs/INSTALL.md section 'Configuration des permissions'${NC}"
echo -e ""
echo -e "${BLUE}Commandes rapides :${NC}"
echo -e " sudo tee /etc/udev/rules.d/99-asus-kbd.rules > /dev/null << 'EOF'"
echo -e " ACTION==\"add\", SUBSYSTEM==\"leds\", KERNEL==\"asus::kbd_backlight\", TAG+=\"uaccess\", RUN+=\"/bin/sh -c 'chgrp kbdled /sys/class/leds/asus::kbd_backlight/brightness && chmod g+w /sys/class/leds/asus::kbd_backlight/brightness'\""
echo -e " ACTION==\"add\", SUBSYSTEM==\"leds\", KERNEL==\"asus::kbd_backlight\", TAG+=\"uaccess\", RUN+=\"/bin/sh -c 'chgrp kbdled /sys/class/leds/asus::kbd_backlight/kbd_rgb_mode && chmod g+w /sys/class/leds/asus::kbd_backlight/kbd_rgb_mode'\""
echo -e " EOF"
echo -e " sudo groupadd -f kbdled"
echo -e " sudo usermod -aG kbdled \$USER"
echo -e " sudo udevadm control --reload-rules"
echo -e " sudo modprobe -r asus_nb_wmi && sudo modprobe asus_nb_wmi"
echo -e ""
fi
# Désactiver l'extension si elle est active
if gnome-extensions list | grep -q "$EXTENSION_UUID"; then
echo -e "\n${BLUE}Désactivation de l'extension existante...${NC}"
gnome-extensions disable "$EXTENSION_UUID" 2>/dev/null || true
echo -e "${GREEN}${NC} Extension désactivée"
fi
# Créer le dossier de destination
echo -e "\n${BLUE}Création du dossier d'installation...${NC}"
mkdir -p "$EXTENSION_DIR"
echo -e "${GREEN}${NC} Dossier créé: $EXTENSION_DIR"
# Copier les fichiers
echo -e "\n${BLUE}Copie des fichiers...${NC}"
cp -v "$SOURCE_DIR/extension.js" "$EXTENSION_DIR/"
cp -v "$SOURCE_DIR/ui.js" "$EXTENSION_DIR/"
cp -v "$SOURCE_DIR/backend.js" "$EXTENSION_DIR/"
cp -v "$SOURCE_DIR/metadata.json" "$EXTENSION_DIR/"
cp -v "$SOURCE_DIR/stylesheet.css" "$EXTENSION_DIR/"
# Copier le schéma GSettings
echo -e "\n${BLUE}Copie du schéma GSettings...${NC}"
mkdir -p "$EXTENSION_DIR/schemas"
cp -v "$SOURCE_DIR/schemas/org.gnome.shell.extensions.asuskbdrgb.gschema.xml" "$EXTENSION_DIR/schemas/"
# Compiler le schéma
echo -e "\n${BLUE}Compilation du schéma GSettings...${NC}"
if command -v glib-compile-schemas &> /dev/null; then
glib-compile-schemas "$EXTENSION_DIR/schemas/"
echo -e "${GREEN}${NC} Schéma compilé"
else
echo -e "${RED}✗ glib-compile-schemas non trouvé${NC}"
echo -e "${YELLOW} Installez glib-2.0-dev ou libglib2.0-bin${NC}"
exit 1
fi
# Vérifier l'installation
echo -e "\n${BLUE}Vérification de l'installation...${NC}"
if [ -f "$EXTENSION_DIR/extension.js" ] && [ -f "$EXTENSION_DIR/schemas/gschemas.compiled" ]; then
echo -e "${GREEN}${NC} Installation réussie"
else
echo -e "${RED}✗ Installation incomplète${NC}"
exit 1
fi
# Activer l'extension
echo -e "\n${BLUE}Activation de l'extension...${NC}"
gnome-extensions enable "$EXTENSION_UUID"
echo -e "${GREEN}${NC} Extension activée"
# Instructions finales
echo -e "\n${GREEN}=== Installation terminée ===${NC}\n"
echo -e "${BLUE}Prochaines étapes :${NC}"
# Vérifier le type de session
if [ "$XDG_SESSION_TYPE" = "wayland" ]; then
echo -e " 1. ${YELLOW}Déconnectez-vous et reconnectez-vous${NC} (session Wayland)"
else
echo -e " 1. Rechargez GNOME Shell : ${YELLOW}Alt+F2${NC}, tapez ${YELLOW}r${NC}, appuyez sur Entrée"
fi
echo -e " 2. L'icône devrait apparaître dans la barre supérieure"
echo -e " 3. Cliquez sur l'icône pour contrôler le rétroéclairage\n"
if [ ! -w "/sys/class/leds/asus::kbd_backlight/brightness" ]; then
echo -e "${YELLOW}⚠ IMPORTANT :${NC}"
echo -e " Vous devez configurer les permissions udev avant utilisation."
echo -e " Consultez ${BLUE}docs/INSTALL.md${NC} pour les instructions.\n"
fi
echo -e "${BLUE}Logs en temps réel :${NC}"
echo -e " journalctl -f -o cat /usr/bin/gnome-shell | grep -i asus\n"
echo -e "${BLUE}Désinstallation :${NC}"
echo -e " gnome-extensions disable $EXTENSION_UUID"
echo -e " rm -rf $EXTENSION_DIR\n"
echo -e "${GREEN}Profitez de votre clavier RGB ! 🎨${NC}"