From 847c651c2b3bcab6c6d5f30e9dfa17aa54b856b8 Mon Sep 17 00:00:00 2001 From: Christian Ratzenhofer Date: Tue, 28 Jul 2026 14:36:59 +0200 Subject: [PATCH] Add RGB_BACKLIGHT capability --- README.md | 1 + src/scripts/lib/utils.js | 5 +++++ test/spec/lib/clay-config.js | 8 ++++++++ 3 files changed, 14 insertions(+) diff --git a/README.md b/README.md index f420d4b..b15e7f5 100755 --- a/README.md +++ b/README.md @@ -670,6 +670,7 @@ Below is the full list of capabilities | COLOR | Running on hardware that supports 64 colors. | | COMPASS | Running on hardware that includes a compass. | | MICROPHONE | Running on hardware that includes a microphone. | +| RGB_BACKLIGHT | Running on hardware that includes a RGB backlight. | | SMARTSTRAP | Running on hardware that includes a smartstrap connector. | | SMARTSTRAP_POWER | Running on hardware that includes a powered smartstrap connector. | | SPEAKER | Running on hardware that includes a speaker. | diff --git a/src/scripts/lib/utils.js b/src/scripts/lib/utils.js index 2af9c05..45fe2f5 100644 --- a/src/scripts/lib/utils.js +++ b/src/scripts/lib/utils.js @@ -74,6 +74,11 @@ module.exports.capabilityMap = { minFwMajor: 0, minFwMinor: 0 }, + RGB_BACKLIGHT: { + platforms: ['emery'], + minFwMajor: 4, + minFwMinor: 9 + }, SMARTSTRAP: { platforms: ['basalt', 'chalk', 'diorite', 'emery'], minFwMajor: 3, diff --git a/test/spec/lib/clay-config.js b/test/spec/lib/clay-config.js index e501cf7..95740aa 100644 --- a/test/spec/lib/clay-config.js +++ b/test/spec/lib/clay-config.js @@ -80,6 +80,7 @@ describe('ClayConfig', function() { testCapabilities('aplite', 2, 9, ['COLOR'], 0); testCapabilities('aplite', 2, 9, ['COMPASS'], 1); testCapabilities('aplite', 2, 9, ['MICROPHONE'], 0); + testCapabilities('aplite', 2, 9, ['RGB_BACKLIGHT'], 0); testCapabilities('aplite', 2, 9, ['SMARTSTRAP'], 0); testCapabilities('aplite', 2, 9, ['SMARTSTRAP_POWER'], 0); testCapabilities('aplite', 2, 9, ['SPEAKER'], 0); @@ -103,6 +104,7 @@ describe('ClayConfig', function() { testCapabilities('aplite', 3, 10, ['COLOR'], 0); testCapabilities('aplite', 3, 10, ['COMPASS'], 1); testCapabilities('aplite', 3, 10, ['MICROPHONE'], 0); + testCapabilities('aplite', 3, 10, ['RGB_BACKLIGHT'], 0); testCapabilities('aplite', 3, 10, ['SMARTSTRAP'], 0); testCapabilities('aplite', 3, 4, ['SMARTSTRAP'], 0); testCapabilities('aplite', 3, 3, ['SMARTSTRAP'], 0); @@ -129,6 +131,7 @@ describe('ClayConfig', function() { testCapabilities('basalt', 3, 10, ['COLOR'], 1); testCapabilities('basalt', 3, 10, ['COMPASS'], 1); testCapabilities('basalt', 3, 10, ['MICROPHONE'], 1); + testCapabilities('basalt', 3, 3, ['RGB_BACKLIGHT'], 0); testCapabilities('basalt', 3, 10, ['SMARTSTRAP'], 1); testCapabilities('basalt', 3, 4, ['SMARTSTRAP'], 1); testCapabilities('basalt', 3, 3, ['SMARTSTRAP'], 0); @@ -157,6 +160,7 @@ describe('ClayConfig', function() { testCapabilities('chalk', 3, 10, ['COLOR'], 1); testCapabilities('chalk', 3, 10, ['COMPASS'], 1); testCapabilities('chalk', 3, 10, ['MICROPHONE'], 1); + testCapabilities('chalk', 3, 3, ['RGB_BACKLIGHT'], 0); testCapabilities('chalk', 3, 10, ['SMARTSTRAP'], 1); testCapabilities('chalk', 3, 4, ['SMARTSTRAP'], 1); testCapabilities('chalk', 3, 3, ['SMARTSTRAP'], 0); @@ -185,6 +189,7 @@ describe('ClayConfig', function() { testCapabilities('diorite', 3, 10, ['COLOR'], 0); testCapabilities('diorite', 3, 10, ['COMPASS'], 0); testCapabilities('diorite', 3, 10, ['MICROPHONE'], 1); + testCapabilities('diorite', 3, 3, ['RGB_BACKLIGHT'], 0); testCapabilities('diorite', 3, 10, ['SMARTSTRAP'], 1); testCapabilities('diorite', 3, 4, ['SMARTSTRAP'], 1); testCapabilities('diorite', 3, 3, ['SMARTSTRAP'], 0); @@ -213,6 +218,7 @@ describe('ClayConfig', function() { testCapabilities('emery', 3, 10, ['COLOR'], 1); testCapabilities('emery', 3, 10, ['COMPASS'], 1); testCapabilities('emery', 3, 10, ['MICROPHONE'], 1); + testCapabilities('emery', 4, 10, ['RGB_BACKLIGHT'], 1); testCapabilities('emery', 3, 10, ['SMARTSTRAP'], 1); testCapabilities('emery', 3, 4, ['SMARTSTRAP'], 1); testCapabilities('emery', 3, 3, ['SMARTSTRAP'], 0); @@ -241,6 +247,7 @@ describe('ClayConfig', function() { testCapabilities('flint', 3, 10, ['COLOR'], 0); testCapabilities('flint', 3, 10, ['COMPASS'], 1); testCapabilities('flint', 3, 10, ['MICROPHONE'], 1); + testCapabilities('flint', 3, 3, ['RGB_BACKLIGHT'], 0); testCapabilities('flint', 3, 10, ['SMARTSTRAP'], 0); testCapabilities('flint', 3, 4, ['SMARTSTRAP'], 0); testCapabilities('flint', 3, 3, ['SMARTSTRAP'], 0); @@ -269,6 +276,7 @@ describe('ClayConfig', function() { testCapabilities('gabbro', 3, 10, ['COLOR'], 1); testCapabilities('gabbro', 3, 10, ['COMPASS'], 1); testCapabilities('gabbro', 3, 10, ['MICROPHONE'], 1); + testCapabilities('gabbro', 3, 10, ['RGB_BACKLIGHT'], 0); testCapabilities('gabbro', 3, 10, ['SMARTSTRAP'], 0); testCapabilities('gabbro', 3, 10, ['SMARTSTRAP_POWER'], 0); testCapabilities('gabbro', 3, 10, ['SPEAKER'], 0);