ajout wallpaper

This commit is contained in:
2025-12-28 09:35:23 +01:00
parent f94ba663f8
commit 7bd522ad01
8 changed files with 535 additions and 1 deletions

3
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,3 @@
{
"editor.fontSize": 14
}

View File

@@ -4,6 +4,32 @@ Ce fichier documente l'évolution du développement de l'extension pour facilite
## [Non publié] - En cours de développement
### 📅 2025-12-23
#### 🆕 Nouvelles Améliorations (Session 4 - suite)
**Amélioration 9: Changement automatique de fond d'écran**
- **Fonctionnalité**: L'extension change automatiquement le fond d'écran GNOME selon la couleur sélectionnée
- **Système de nommage**: 9 wallpapers nommés `ec_v_<couleur>.jpg` (ex: `ec_v_blue.jpg`, `ec_v_orange.jpg`)
- **Implémentation**:
- Nouvelle fonction `_changeWallpaper(accentColor)` dans ui.js
- Intégration dans `_syncGnomeTheme()` pour changement automatique
- Vérification d'existence du fichier avant application
- Support mode clair ET mode sombre (picture-uri + picture-uri-dark)
- **Installation**:
- Dossier `wallpapers/` créé dans le projet
- Script `install-local.sh` modifié pour copier automatiquement les wallpapers
- Comptage et affichage du nombre de wallpapers installés
- **Documentation**: docs/WALLPAPERS.md avec guide complet
- **Fichiers modifiés**:
- ui.js ligne 558-587 : Fonction _changeWallpaper()
- ui.js ligne 619 : Intégration dans _syncGnomeTheme()
- tools/install-local.sh ligne 112-128 : Copie des wallpapers
- **Comportement**:
- Si wallpaper absent → log informatif (pas d'erreur)
- Si présent → changement automatique en même temps que couleur thème
- **Résultat**: Synchronisation complète : couleur clavier + thème GNOME + fond d'écran
### 📅 2025-12-21
#### 🆕 Nouvelles Améliorations (Session 4)

View File

@@ -0,0 +1,219 @@
# 🎨 Récapitulatif : Changement automatique de fond d'écran
## ✅ Fonctionnalité implémentée
L'extension change maintenant automatiquement le fond d'écran GNOME en fonction de la couleur d'accentuation sélectionnée.
## 📊 État actuel de vos wallpapers
### Wallpapers installés : 10/9 ✅
Vous avez **10 fichiers** dans le dossier `wallpapers/` :
| Fichier | Taille | Correspond à |
|---------|--------|--------------|
| `ec_v_blue.jpg` | 3.3 Mo | ✅ Bleu GNOME |
| `ec_v_green.jpg` | 3.2 Mo | ✅ Vert GNOME |
| `ec_v_orange.jpg` | 4.8 Mo | ✅ Orange GNOME |
| `ec_v_pink.jpg` | 4.9 Mo | ✅ Rose GNOME |
| `ec_v_purple.jpg` | 3.2 Mo | ✅ Violet GNOME |
| `ec_v_red.jpg` | 4.6 Mo | ✅ Rouge GNOME |
| `ec_v_slate.jpg` | 4.2 Mo | ✅ Ardoise GNOME |
| `ec_v_teal.jpg` | 5.0 Mo | ✅ Turquoise GNOME |
| `ec_v_yellow.jpg` | 4.8 Mo | ✅ Jaune GNOME |
| `ec_v_turquoise.jpg` | 4.8 Mo | ⚠️ Doublon (teal = turquoise) |
### ⚠️ Remarque
Vous avez **2 fichiers** pour la turquoise :
- `ec_v_teal.jpg`**Utilisé par l'extension**
- `ec_v_turquoise.jpg` → Non utilisé (doublon)
**Action recommandée** : Vous pouvez supprimer `ec_v_turquoise.jpg` car l'extension utilise le nom interne GNOME `teal`.
## 🚀 Comment utiliser
### Activation
1. **Rechargez GNOME Shell** après l'installation :
- Appuyez sur `Alt+F2`
- Tapez `r`
- Appuyez sur `Entrée`
2. **Activez la synchronisation** :
- Cliquez sur l'icône de l'extension dans le panneau
- Cochez "Synchroniser thème GNOME"
3. **Changez de couleur** :
- Via les presets (9 cercles de couleur)
- Via la roue chromatique
- Via les sliders RGB
### Résultat attendu
Quand vous sélectionnez une couleur, **3 choses changent automatiquement** :
1. 🎹 **Couleur du clavier RGB**
2. 🎨 **Couleur d'accentuation GNOME**
3. 🖼️ **Fond d'écran GNOME**
## 🔍 Vérification
### 1. Vérifier que les wallpapers sont installés
```bash
ls -lh ~/.local/share/gnome-shell/extensions/asus-kbd-rgb@gilles/wallpapers/
```
Vous devriez voir vos 10 fichiers copiés.
### 2. Tester le changement de wallpaper
1. Activer "Synchroniser thème GNOME"
2. Cliquer sur un preset (ex: orange)
3. Observer que :
- Le clavier change de couleur
- La couleur GNOME change (fenêtres, menus)
- **Le fond d'écran change** → `ec_v_orange.jpg`
### 3. Voir les logs de changement
```bash
journalctl -f -o cat /usr/bin/gnome-shell | grep -i "fond\|wallpaper"
```
Vous devriez voir :
```
[ASUS RGB] Fond d'écran changé → orange (/home/gilles/.local/share/gnome-shell/extensions/asus-kbd-rgb@gilles/wallpapers/ec_v_orange.jpg)
```
## 📝 Correspondance couleur ↔ wallpaper
| Preset | Nom GNOME | Fichier utilisé | Hex | RGB |
|--------|-----------|-----------------|-----|-----|
| 1 | blue | `ec_v_blue.jpg` | #3584e4 | (53, 132, 228) |
| 2 | teal | `ec_v_teal.jpg` | #2190a4 | (33, 144, 164) |
| 3 | green | `ec_v_green.jpg` | #3a944a | (58, 148, 74) |
| 4 | yellow | `ec_v_yellow.jpg` | #c88800 | (200, 136, 0) |
| 5 | orange | `ec_v_orange.jpg` | #ed5b00 | (237, 91, 0) |
| 6 | red | `ec_v_red.jpg` | #e62d42 | (230, 45, 66) |
| 7 | pink | `ec_v_pink.jpg` | #d56199 | (213, 97, 153) |
| 8 | purple | `ec_v_purple.jpg` | #9141ac | (145, 65, 172) |
| 9 | slate | `ec_v_slate.jpg` | #6f8396 | (111, 131, 150) |
## 🛠️ Comportement en cas de wallpaper manquant
Si un fichier wallpaper n'existe pas (par exemple, si vous supprimez `ec_v_blue.jpg`), l'extension :
- ✅ Change quand même la couleur du clavier
- ✅ Change quand même la couleur GNOME
- ⚠️ N'applique pas de wallpaper (log informatif dans journalctl)
- ❌ N'affiche PAS d'erreur à l'utilisateur
**Log** :
```
[ASUS RGB] Fond d'écran non trouvé : /home/.../.../ec_v_blue.jpg
```
## 🎯 Désactiver uniquement le changement de wallpaper
Si vous voulez garder la synchronisation thème mais **sans** changer le fond d'écran :
### Option 1 : Supprimer les fichiers wallpapers
```bash
rm ~/.local/share/gnome-shell/extensions/asus-kbd-rgb@gilles/wallpapers/ec_v_*.jpg
```
### Option 2 : Modifier le code
1. Ouvrir `extension/ui.js`
2. Ligne 619, commenter :
```javascript
// this._changeWallpaper(accentColor);
```
3. Réinstaller : `./tools/install-local.sh`
## 📦 Fichiers créés/modifiés
### Nouveaux fichiers
1. `wallpapers/` - Dossier pour les fonds d'écran
2. `wallpapers/README.md` - Documentation du système de nommage
3. `wallpapers/.gitignore` - Ignore les .jpg (pas commités dans git)
4. `docs/WALLPAPERS.md` - Guide complet d'utilisation
5. `docs/RECAPITULATIF_WALLPAPERS.md` - Ce fichier
### Fichiers modifiés
1. `extension/ui.js` :
- Nouvelle fonction `_changeWallpaper(accentColor)` (ligne 558-587)
- Appel dans `_syncGnomeTheme()` (ligne 619)
2. `tools/install-local.sh` :
- Ajout variable `PROJECT_DIR` (ligne 16)
- Copie automatique des wallpapers (ligne 112-128)
- Comptage et affichage du nombre de wallpapers
3. `CHANGELOG.md` :
- Ajout "Amélioration 9: Changement automatique de fond d'écran"
## 🎨 Optimisation des wallpapers (optionnel)
Vos wallpapers font entre 3.2 Mo et 5.0 Mo chacun. Pour optimiser :
```bash
cd wallpapers/
# Optimiser tous les .jpg (qualité 85%)
for img in ec_v_*.jpg; do
convert "$img" -quality 85 "${img%.jpg}_opt.jpg"
done
# Vérifier la taille
ls -lh ec_v_*_opt.jpg
# Si satisfait, remplacer
for img in ec_v_*_opt.jpg; do
mv "$img" "${img%_opt.jpg}.jpg"
done
```
## ✅ Prochaines étapes
1. **Recharger GNOME Shell** : `Alt+F2` → `r`
2. **Activer "Synchroniser thème GNOME"** dans l'extension
3. **Tester** en cliquant sur différents presets
4. **Optionnel** : Supprimer `ec_v_turquoise.jpg` (doublon)
5. **Optionnel** : Optimiser la taille des wallpapers si vous voulez
## 🐛 En cas de problème
### Le fond d'écran ne change pas
**Vérifier** :
```bash
# 1. Extension activée
gnome-extensions list --enabled | grep asus
# 2. Synchronisation activée (via l'interface)
# 3. Wallpapers présents
ls ~/.local/share/gnome-shell/extensions/asus-kbd-rgb@gilles/wallpapers/
# 4. Logs
journalctl -f -o cat /usr/bin/gnome-shell | grep "ASUS RGB"
```
### Permissions
```bash
# Vérifier que les fichiers sont lisibles
ls -la ~/.local/share/gnome-shell/extensions/asus-kbd-rgb@gilles/wallpapers/
```
Tous les fichiers doivent être en mode `rw-` (lecture/écriture pour vous).
## 📖 Documentation complète
Consultez `docs/WALLPAPERS.md` pour :
- Guide de création de wallpapers personnalisés
- Exemples avec ImageMagick
- Conseils de design
- Dépannage avancé

193
docs/WALLPAPERS.md Normal file
View File

@@ -0,0 +1,193 @@
# Configuration des fonds d'écran par couleur
Cette extension peut changer automatiquement votre fond d'écran GNOME en fonction de la couleur d'accentuation sélectionnée.
## 📋 Prérequis
Vous devez créer 9 fonds d'écran correspondant aux 9 couleurs d'accentuation GNOME.
## 📁 Emplacement des fichiers
Placez vos images dans le dossier : `wallpapers/`
## 🏷️ Convention de nommage
Les fichiers **doivent** être nommés selon ce format : `ec_v_<couleur>.jpg`
| Nom du fichier | Couleur GNOME | Hex | RGB |
|----------------|---------------|-----|-----|
| `ec_v_blue.jpg` | Bleu | #3584e4 | (53, 132, 228) |
| `ec_v_teal.jpg` | Turquoise | #2190a4 | (33, 144, 164) |
| `ec_v_green.jpg` | Vert | #3a944a | (58, 148, 74) |
| `ec_v_yellow.jpg` | Jaune | #c88800 | (200, 136, 0) |
| `ec_v_orange.jpg` | Orange | #ed5b00 | (237, 91, 0) |
| `ec_v_red.jpg` | Rouge | #e62d42 | (230, 45, 66) |
| `ec_v_pink.jpg` | Rose | #d56199 | (213, 97, 153) |
| `ec_v_purple.jpg` | Violet | #9141ac | (145, 65, 172) |
| `ec_v_slate.jpg` | Ardoise | #6f8396 | (111, 131, 150) |
## 🎨 Format des images
- **Format** : JPG (recommandé pour la taille)
- **Résolution** : Adaptée à votre écran (ex: 1920×1080, 2560×1440, 3840×2160)
- **Taille de fichier** : Optimisée (< 1 Mo par image si possible)
## 📦 Installation
1. **Placez vos 9 images** dans le dossier `wallpapers/` :
```bash
cd /home/gilles/Documents/vscode/gnome-asus-kbd-rgb/wallpapers/
# Copiez vos 9 fichiers ec_v_*.jpg ici
```
2. **Vérifiez les noms** :
```bash
ls -1 ec_v_*.jpg
```
Vous devriez voir :
```
ec_v_blue.jpg
ec_v_green.jpg
ec_v_orange.jpg
ec_v_pink.jpg
ec_v_purple.jpg
ec_v_red.jpg
ec_v_slate.jpg
ec_v_teal.jpg
ec_v_yellow.jpg
```
3. **Installez l'extension** :
```bash
./tools/install-local.sh
```
Le script copiera automatiquement les wallpapers dans :
`~/.local/share/gnome-shell/extensions/asus-kbd-rgb@gilles/wallpapers/`
## 🚀 Utilisation
1. **Activez la synchronisation du thème** dans l'extension
- Cliquez sur l'icône de l'extension dans le panneau
- Cochez "Synchroniser thème GNOME"
2. **Changez de couleur** (via presets, roue, ou sliders)
- Le fond d'écran changera automatiquement pour correspondre à la couleur
3. **Comportement** :
- Si le fichier wallpaper n'existe pas, un message apparaît dans les logs (pas d'erreur)
- Le fond d'écran s'applique en mode clair ET sombre
## 🔍 Vérification
### Vérifier que les wallpapers sont installés
```bash
ls ~/.local/share/gnome-shell/extensions/asus-kbd-rgb@gilles/wallpapers/
```
### Vérifier les logs de changement de wallpaper
```bash
journalctl -f -o cat /usr/bin/gnome-shell | grep -i wallpaper
```
Vous devriez voir :
```
[ASUS RGB] Fond d'écran changé → blue (/home/gilles/.local/share/gnome-shell/extensions/asus-kbd-rgb@gilles/wallpapers/ec_v_blue.jpg)
```
### Vérifier le wallpaper actuel
```bash
gsettings get org.gnome.desktop.background picture-uri
```
## 🎯 Conseils pour créer vos wallpapers
### Option 1 : Wallpapers unis avec dégradé
- Créez un dégradé avec la couleur GNOME comme couleur dominante
- Utilisez un outil comme GIMP ou Inkscape
### Option 2 : Wallpapers existants avec overlay de couleur
- Prenez une image de base
- Appliquez un overlay semi-transparent avec la couleur GNOME
- Ajustez l'opacité pour que la couleur soit visible mais pas trop forte
### Option 3 : Wallpapers thématiques
- Bleu : ciel, océan
- Vert : forêt, nature
- Orange : coucher de soleil
- Rouge : feu, passion
- etc.
### Exemple avec ImageMagick
Créer un dégradé simple :
```bash
# Bleu
convert -size 1920x1080 gradient:#1a3b66-#3584e4 ec_v_blue.jpg
# Orange
convert -size 1920x1080 gradient:#6b2d00-#ed5b00 ec_v_orange.jpg
# Etc. pour chaque couleur
```
Appliquer un overlay de couleur sur une image existante :
```bash
# Base image + overlay bleu semi-transparent
convert base_wallpaper.jpg -fill "#3584e4" -colorize 30% ec_v_blue.jpg
```
## 🐛 Dépannage
### "Fond d'écran non trouvé" dans les logs
**Cause** : Le fichier n'existe pas ou le nom est incorrect
**Solution** :
1. Vérifiez le nom exact : `ec_v_<couleur>.jpg` (tout en minuscules)
2. Vérifiez que le fichier est dans `wallpapers/`
3. Réinstallez l'extension : `./tools/install-local.sh`
### Le fond d'écran ne change pas
**Cause** : Synchronisation du thème désactivée
**Solution** : Activez "Synchroniser thème GNOME" dans l'extension
### Les wallpapers ne sont pas copiés lors de l'installation
**Vérifications** :
```bash
# Vérifier que le dossier existe
ls -la wallpapers/
# Vérifier qu'il y a des fichiers .jpg
ls wallpapers/ec_v_*.jpg
# Réinstaller
./tools/install-local.sh
```
## 📝 Notes
- Les wallpapers **ne sont pas** commités dans Git (fichier `.gitignore`)
- Vous devez créer ou fournir vos propres images
- Les images sont copiées localement, pas référencées depuis le projet
- Vous pouvez utiliser des formats PNG en modifiant l'extension (changez `.jpg` en `.png` dans `ui.js`)
## 🔄 Désactiver le changement de fond d'écran
Si vous voulez garder la synchronisation du thème GNOME mais **sans** changer le fond d'écran :
1. Ouvrez `extension/ui.js`
2. Dans la fonction `_syncGnomeTheme()`, commentez cette ligne :
```javascript
// this._changeWallpaper(accentColor);
```
3. Réinstallez l'extension
Ou supprimez simplement tous les fichiers wallpapers du dossier `wallpapers/`.

View File

@@ -3,6 +3,7 @@ import St from 'gi://St';
import Clutter from 'gi://Clutter';
import GObject from 'gi://GObject';
import Gio from 'gi://Gio';
import GLib from 'gi://GLib';
import * as PanelMenu from 'resource:///org/gnome/shell/ui/panelMenu.js';
import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
import * as Slider from 'resource:///org/gnome/shell/ui/slider.js';
@@ -555,6 +556,37 @@ class KeyboardRGBIndicator extends PanelMenu.Button {
return closestColor;
}
/**
* Change le fond d'écran en fonction de la couleur GNOME
*/
_changeWallpaper(accentColor) {
try {
// Construire le chemin absolu du wallpaper
const homeDir = GLib.get_home_dir();
const absolutePath = `${homeDir}/.local/share/gnome-shell/extensions/asus-kbd-rgb@gilles/wallpapers/ec_v_${accentColor}.jpg`;
// Vérifier si le fichier existe
const wallpaperFile = Gio.File.new_for_path(absolutePath);
if (!wallpaperFile.query_exists(null)) {
log(`[ASUS RGB] Fond d'écran non trouvé : ${absolutePath}`);
return;
}
// Appliquer le fond d'écran
const backgroundSettings = new Gio.Settings({
schema: 'org.gnome.desktop.background'
});
const uri = `file://${absolutePath}`;
backgroundSettings.set_string('picture-uri', uri);
backgroundSettings.set_string('picture-uri-dark', uri); // Pour le mode sombre
log(`[ASUS RGB] Fond d'écran changé → ${accentColor} (${absolutePath})`);
} catch (error) {
logError(error, '[ASUS RGB] Erreur lors du changement de fond d\'écran');
}
}
/**
* Synchronise la couleur du clavier avec le thème GNOME
*/
@@ -579,6 +611,9 @@ class KeyboardRGBIndicator extends PanelMenu.Button {
interfaceSettings.set_string('accent-color', accentColor);
log(`[ASUS RGB] Thème GNOME synchronisé → ${accentColor} (RGB: ${this._currentR}, ${this._currentG}, ${this._currentB})`);
// Changer le fond d'écran correspondant
this._changeWallpaper(accentColor);
} catch (error) {
logError(error, '[ASUS RGB] Erreur lors de la synchronisation du thème GNOME');
}

View File

@@ -13,7 +13,8 @@ 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"
PROJECT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
SOURCE_DIR="$PROJECT_DIR/extension"
echo -e "${BLUE}=== Installation de l'extension ASUS Keyboard RGB ===${NC}\n"
@@ -109,6 +110,24 @@ 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/"
# Copier les wallpapers (si présents)
if [ -d "$PROJECT_DIR/wallpapers" ]; then
echo -e "\n${BLUE}Copie des fonds d'écran...${NC}"
mkdir -p "$EXTENSION_DIR/wallpapers"
# Compter les fichiers .jpg
wallpaper_count=$(find "$PROJECT_DIR/wallpapers" -maxdepth 1 -name "ec_v_*.jpg" 2>/dev/null | wc -l)
if [ "$wallpaper_count" -gt 0 ]; then
cp -v "$PROJECT_DIR/wallpapers"/ec_v_*.jpg "$EXTENSION_DIR/wallpapers/" 2>/dev/null || true
echo -e "${GREEN}${NC} $wallpaper_count fond(s) d'écran copié(s)"
else
echo -e "${YELLOW}${NC} Aucun fond d'écran trouvé (ec_v_*.jpg)"
echo -e "${YELLOW} Placez vos wallpapers dans: $PROJECT_DIR/wallpapers/${NC}"
echo -e "${YELLOW} Format attendu: ec_v_blue.jpg, ec_v_teal.jpg, etc.${NC}"
fi
fi
# Compiler le schéma
echo -e "\n${BLUE}Compilation du schéma GSettings...${NC}"
if command -v glib-compile-schemas &> /dev/null; then

7
wallpapers/.gitignore vendored Normal file
View File

@@ -0,0 +1,7 @@
# Ignorer toutes les images wallpapers
*.jpg
*.jpeg
*.png
# Mais garder le README
!README.md

32
wallpapers/README.md Normal file
View File

@@ -0,0 +1,32 @@
# Fonds d'écran par couleur GNOME
Ce dossier contient les fonds d'écran correspondant aux 9 couleurs d'accentuation GNOME.
## Convention de nommage
Les fichiers doivent être nommés selon le format : `ec_v_<couleur>.jpg`
`<couleur>` correspond au nom interne GNOME :
| Nom fichier | Couleur GNOME | Hex | RGB |
|------------|---------------|-----|-----|
| `ec_v_blue.jpg` | Bleu | #3584e4 | (53, 132, 228) |
| `ec_v_teal.jpg` | Turquoise | #2190a4 | (33, 144, 164) |
| `ec_v_green.jpg` | Vert | #3a944a | (58, 148, 74) |
| `ec_v_yellow.jpg` | Jaune | #c88800 | (200, 136, 0) |
| `ec_v_orange.jpg` | Orange | #ed5b00 | (237, 91, 0) |
| `ec_v_red.jpg` | Rouge | #e62d42 | (230, 45, 66) |
| `ec_v_pink.jpg` | Rose | #d56199 | (213, 97, 153) |
| `ec_v_purple.jpg` | Violet | #9141ac | (145, 65, 172) |
| `ec_v_slate.jpg` | Ardoise | #6f8396 | (111, 131, 150) |
## Utilisation
Lorsque vous activez la synchronisation du thème GNOME dans l'extension, le fond d'écran correspondant à la couleur sélectionnée sera automatiquement appliqué.
## Emplacement d'installation
Ces fichiers seront copiés dans :
`~/.local/share/gnome-shell/extensions/asus-kbd-rgb@gilles/wallpapers/`
Lors de l'installation de l'extension via `./tools/install-local.sh`