mirror of
https://github.com/end-4/dots-hyprland.git
synced 2026-06-06 07:19:27 -05:00
brightness controller: per-name config; add "auto"
This commit is contained in:
@@ -39,7 +39,14 @@ let configOptions = {
|
||||
'warnMessages': ["Plug in the charger", "You there?", 'PLUG THE CHARGER ALREADY'],
|
||||
},
|
||||
'brightness': {
|
||||
'controller': "brightnessctl", // "brightnessctl" or "ddcutil"
|
||||
// Object of controller names for each monitor, either "brightnessctl" or "ddcutil" or "auto"
|
||||
// "default" will be used if unspecified
|
||||
// Examples
|
||||
// 'eDP-1': "brightnessctl",
|
||||
// 'DP-1': "ddcutil",
|
||||
'controllers': {
|
||||
'default': "auto",
|
||||
},
|
||||
},
|
||||
'music': {
|
||||
'preferredPlayer': "plasma-browser-integration",
|
||||
|
||||
@@ -89,20 +89,33 @@ class BrightnessDdcService extends BrightnessServiceBase {
|
||||
}
|
||||
}
|
||||
|
||||
// the singleton instance
|
||||
// Service instance
|
||||
const numMonitors = Hyprland.monitors.length;
|
||||
const service = Array(numMonitors);
|
||||
switch (userOptions.brightness.controller) {
|
||||
case "brightnessctl":
|
||||
service.fill(new BrightnessCtlService());
|
||||
break;
|
||||
case "ddcutil":
|
||||
for (let i = 0; i < numMonitors; i++) {
|
||||
service[i] = new BrightnessDdcService(i);
|
||||
for (let i = 0; i < service.length; i++) {
|
||||
const monitorName = Hyprland.monitors[i].name;
|
||||
const preferredController = userOptions.brightness.controllers[monitorName]
|
||||
|| userOptions.brightness.controllers.default || "auto";
|
||||
if (preferredController) {
|
||||
switch (preferredController) {
|
||||
case "brightnessctl":
|
||||
service[i] = new BrightnessCtlService();
|
||||
break;
|
||||
case "ddcutil":
|
||||
service[i] = new BrightnessDdcService(i);
|
||||
break;
|
||||
case "auto":
|
||||
if (monitorName.startsWith("eDP-"))
|
||||
service[i] = new BrightnessCtlService();
|
||||
else if (monitorName.startsWith("DP-"))
|
||||
service[i] = new BrightnessDdcService(i);
|
||||
else
|
||||
service[i] = new BrightnessCtlService();
|
||||
break;
|
||||
default:
|
||||
throw new Error(`Unknown brightness controller ${preferredController}`);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
throw new Error(`Unknown brightness controller ${userOptions.brightness.controller}`);
|
||||
}
|
||||
}
|
||||
|
||||
// make it global for easy use with cli
|
||||
|
||||
Reference in New Issue
Block a user