feat: Forçage état RGB au boot + correction couleurs GNOME + presets ronds
## 🔧 Correctifs critiques ### Forçage de l'état RGB au démarrage (résout clavier éteint au boot) - **Problème résolu**: Clavier parfois éteint au redémarrage, impossible à rallumer - Suppression vérification `if (brightness == 0)` dans writeRGB() - _applyCurrentState() force TOUJOURS brightness + RGB au boot - Logs explicites pour diagnostic - Fichiers: backend.js, ui.js - Documentation: docs/ANALYSE_PERSISTANCE.md ### Correction couleurs GNOME officielles - 7 des 9 presets utilisaient de mauvaises valeurs RGB - Correction basée sur les valeurs hex officielles GNOME: * Turquoise #2190a4: (33,144,164) ✅ * Vert #3a944a: (58,148,74) ✅ * Jaune #c88800: (200,136,0) ✅ * Orange #ed5b00: (237,91,0) ✅ * Rouge #e62d42: (230,45,66) ✅ * Rose #d56199: (213,97,153) ✅ * Ardoise #6f8396: (111,131,150) ✅ - Fichiers: schemas/gschema.xml, ui.js (_rgbToGnomeAccent) ## ✨ Améliorations UI ### Presets en cercles avec surbrillance - Presets affichés en cercles parfaits (border-radius: 50%) - Cercle blanc épais (3px) + box-shadow sur preset actif - Fonction _updatePresetSelection() avec tolérance RGB ±10 - Mise à jour automatique à chaque changement de couleur ### Synchronisation thème universelle - Correction: sync thème GNOME fonctionne maintenant depuis: * ✅ Roue chromatique * ✅ Sliders RGB * ✅ Presets (corrigé!) * ✅ Slider Master - Refactorisation _onPresetClicked() pour utiliser _onRGBChanged() ## 📚 Documentation et outils - docs/ANALYSE_PERSISTANCE.md: Analyse technique complète du problème de persistance - docs/RESULTAT_TEST_PERSISTANCE.md: Résultats des tests de validation - tools/test-persistance.sh: Script de test automatisé pour diagnostic ## 🧪 Tests effectués ✅ Initialisation au démarrage GNOME Shell ✅ Forçage RGB même avec brightness=0 ✅ Couleurs GNOME corrigées dans les logs ✅ Presets ronds avec surbrillance fonctionnelle ✅ Synchronisation thème depuis tous les modes Test au redémarrage PC: À valider par l'utilisateur 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -178,12 +178,9 @@ export function writeRGB(r, g, b, masterGain = 100) {
|
||||
// Appliquer le master gain
|
||||
const adjusted = applyMasterGain(r, g, b, masterGain);
|
||||
|
||||
// Vérifier si brightness est > 0, sinon ne pas écrire
|
||||
const currentBrightness = readBrightness();
|
||||
if (currentBrightness === 0) {
|
||||
console.log('Brightness est 0, RGB mémorisé mais non appliqué');
|
||||
return true; // On considère cela comme un succès
|
||||
}
|
||||
// TOUJOURS écrire RGB, même si brightness = 0
|
||||
// Cela garantit que le contrôleur RGB est dans un état connu
|
||||
// Particulièrement important au démarrage pour contrer les réinitialisations firmware
|
||||
|
||||
// Format: "1 0 R G B 0\n"
|
||||
const file = Gio.File.new_for_path(RGB_MODE_PATH);
|
||||
|
||||
@@ -42,51 +42,51 @@
|
||||
<description>Incrément lors de l'utilisation des sliders RGB</description>
|
||||
</key>
|
||||
|
||||
<!-- Presets couleur (9 presets GNOME officiels, stockés comme "R,G,B") -->
|
||||
<key name="preset-1" type="s">
|
||||
<default>"53,132,228"</default>
|
||||
<summary>Preset 1 - Bleu GNOME</summary>
|
||||
</key>
|
||||
<!-- Presets couleur (9 presets GNOME officiels, stockés comme "R,G,B") -->
|
||||
<key name="preset-1" type="s">
|
||||
<default>"53,132,228"</default>
|
||||
<summary>Preset 1 - Bleu GNOME (#3584e4)</summary>
|
||||
</key>
|
||||
|
||||
<key name="preset-2" type="s">
|
||||
<default>"51,209,122"</default>
|
||||
<summary>Preset 2 - Turquoise</summary>
|
||||
</key>
|
||||
<key name="preset-2" type="s">
|
||||
<default>"33,144,164"</default>
|
||||
<summary>Preset 2 - Turquoise (#2190a4)</summary>
|
||||
</key>
|
||||
|
||||
<key name="preset-3" type="s">
|
||||
<default>"87,227,137"</default>
|
||||
<summary>Preset 3 - Vert</summary>
|
||||
</key>
|
||||
<key name="preset-3" type="s">
|
||||
<default>"58,148,74"</default>
|
||||
<summary>Preset 3 - Vert (#3a944a)</summary>
|
||||
</key>
|
||||
|
||||
<key name="preset-4" type="s">
|
||||
<default>"246,211,45"</default>
|
||||
<summary>Preset 4 - Jaune</summary>
|
||||
</key>
|
||||
<key name="preset-4" type="s">
|
||||
<default>"200,136,0"</default>
|
||||
<summary>Preset 4 - Jaune (#c88800)</summary>
|
||||
</key>
|
||||
|
||||
<key name="preset-5" type="s">
|
||||
<default>"255,120,0"</default>
|
||||
<summary>Preset 5 - Orange</summary>
|
||||
</key>
|
||||
<key name="preset-5" type="s">
|
||||
<default>"237,91,0"</default>
|
||||
<summary>Preset 5 - Orange (#ed5b00)</summary>
|
||||
</key>
|
||||
|
||||
<key name="preset-6" type="s">
|
||||
<default>"237,51,59"</default>
|
||||
<summary>Preset 6 - Rouge</summary>
|
||||
</key>
|
||||
<key name="preset-6" type="s">
|
||||
<default>"230,45,66"</default>
|
||||
<summary>Preset 6 - Rouge (#e62d42)</summary>
|
||||
</key>
|
||||
|
||||
<key name="preset-7" type="s">
|
||||
<default>"246,97,81"</default>
|
||||
<summary>Preset 7 - Rose</summary>
|
||||
</key>
|
||||
<key name="preset-7" type="s">
|
||||
<default>"213,97,153"</default>
|
||||
<summary>Preset 7 - Rose (#d56199)</summary>
|
||||
</key>
|
||||
|
||||
<key name="preset-8" type="s">
|
||||
<default>"145,65,172"</default>
|
||||
<summary>Preset 8 - Violet</summary>
|
||||
</key>
|
||||
<key name="preset-8" type="s">
|
||||
<default>"145,65,172"</default>
|
||||
<summary>Preset 8 - Violet (#9141ac)</summary>
|
||||
</key>
|
||||
|
||||
<key name="preset-9" type="s">
|
||||
<default>"119,118,123"</default>
|
||||
<summary>Preset 9 - Gris ardoise</summary>
|
||||
</key>
|
||||
<key name="preset-9" type="s">
|
||||
<default>"111,131,150"</default>
|
||||
<summary>Preset 9 - Gris ardoise (#6f8396)</summary>
|
||||
</key>
|
||||
|
||||
<!-- Mode master slider (pour évolutions futures) -->
|
||||
<key name="master-mode" type="s">
|
||||
|
||||
@@ -521,18 +521,19 @@ class KeyboardRGBIndicator extends PanelMenu.Button {
|
||||
|
||||
/**
|
||||
* Trouve la couleur accent GNOME la plus proche d'une couleur RGB
|
||||
* Couleurs officielles GNOME (version corrigée)
|
||||
*/
|
||||
_rgbToGnomeAccent(r, g, b) {
|
||||
const colors = {
|
||||
blue: { r: 53, g: 132, b: 228 }, // Bleu GNOME
|
||||
teal: { r: 51, g: 209, b: 122 }, // Turquoise
|
||||
green: { r: 87, g: 227, b: 137 }, // Vert
|
||||
yellow: { r: 246, g: 211, b: 45 }, // Jaune
|
||||
orange: { r: 255, g: 120, b: 0 }, // Orange
|
||||
red: { r: 237, g: 51, b: 59 }, // Rouge
|
||||
pink: { r: 246, g: 97, b: 81 }, // Rose
|
||||
purple: { r: 145, g: 65, b: 172 }, // Violet
|
||||
slate: { r: 119, g: 118, b: 123 } // Gris ardoise
|
||||
blue: { r: 53, g: 132, b: 228 }, // Bleu GNOME #3584e4
|
||||
teal: { r: 33, g: 144, b: 164 }, // Turquoise #2190a4
|
||||
green: { r: 58, g: 148, b: 74 }, // Vert #3a944a
|
||||
yellow: { r: 200, g: 136, b: 0 }, // Jaune #c88800
|
||||
orange: { r: 237, g: 91, b: 0 }, // Orange #ed5b00
|
||||
red: { r: 230, g: 45, b: 66 }, // Rouge #e62d42
|
||||
pink: { r: 213, g: 97, b: 153 }, // Rose #d56199
|
||||
purple: { r: 145, g: 65, b: 172 }, // Violet #9141ac
|
||||
slate: { r: 111, g: 131, b: 150 } // Gris ardoise #6f8396
|
||||
};
|
||||
|
||||
let minDistance = Infinity;
|
||||
@@ -835,11 +836,17 @@ class KeyboardRGBIndicator extends PanelMenu.Button {
|
||||
* Applique l'état actuel au matériel (au démarrage)
|
||||
*/
|
||||
_applyCurrentState() {
|
||||
log('[ASUS RGB] Initialisation au démarrage - forçage de l\'état sauvegardé');
|
||||
|
||||
// Toujours écrire brightness
|
||||
Backend.writeBrightness(this._currentBrightnessLevel);
|
||||
|
||||
if (this._currentBrightnessLevel > 0) {
|
||||
Backend.writeRGB(this._currentR, this._currentG, this._currentB, this._currentMasterGain);
|
||||
}
|
||||
// TOUJOURS écrire RGB, même si brightness = 0
|
||||
// Cela garantit que le contrôleur RGB est initialisé dans un état connu
|
||||
// Particulièrement important pour contrer les réinitialisations firmware au boot
|
||||
Backend.writeRGB(this._currentR, this._currentG, this._currentB, this._currentMasterGain);
|
||||
|
||||
log(`[ASUS RGB] État initial appliqué : Brightness=${this._currentBrightnessLevel}, RGB=(${this._currentR},${this._currentG},${this._currentB}), Master=${this._currentMasterGain}%`);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user