forked from Shinonome/dots-hyprland
ags: implement per-monitor brightness control (#453)
This commit is contained in:
@@ -38,6 +38,16 @@ let configOptions = {
|
||||
'warnTitles': ["Low battery", "Very low battery", 'Critical Battery'],
|
||||
'warnMessages': ["Plug in the charger", "You there?", 'PLUG THE CHARGER ALREADY'],
|
||||
},
|
||||
'brightness': {
|
||||
// Object of controller names for each monitor, either "brightnessctl" or "ddcutil" or "auto"
|
||||
// 'default' one will be used if unspecified
|
||||
// Examples
|
||||
// 'eDP-1': "brightnessctl",
|
||||
// 'DP-1': "ddcutil",
|
||||
'controllers': {
|
||||
'default': "auto",
|
||||
},
|
||||
},
|
||||
'music': {
|
||||
'preferredPlayer': "plasma-browser-integration",
|
||||
},
|
||||
@@ -159,4 +169,4 @@ function overrideConfigRecursive(userOverrides, configOptions = {}) {
|
||||
overrideConfigRecursive(userOverrides, configOptions);
|
||||
|
||||
globalThis['userOptions'] = configOptions;
|
||||
export default configOptions;
|
||||
export default configOptions;
|
||||
|
||||
@@ -46,7 +46,7 @@ export const Bar = async (monitor = 0) => {
|
||||
const minHeight = styleContext.get_property('min-height', Gtk.StateFlags.NORMAL);
|
||||
// execAsync(['bash', '-c', `hyprctl keyword monitor ,addreserved,${minHeight},0,0,0`]).catch(print);
|
||||
},
|
||||
startWidget: (await WindowTitle()),
|
||||
startWidget: (await WindowTitle(monitor)),
|
||||
centerWidget: Widget.Box({
|
||||
className: 'spacing-h-4',
|
||||
children: [
|
||||
|
||||
@@ -39,16 +39,16 @@ const WindowTitle = async () => {
|
||||
}
|
||||
|
||||
|
||||
export default async () => {
|
||||
export default async (monitor = 0) => {
|
||||
const optionalWindowTitleInstance = await WindowTitle();
|
||||
return Widget.EventBox({
|
||||
onScrollUp: () => {
|
||||
Indicator.popup(1); // Since the brightness and speaker are both on the same window
|
||||
Brightness.screen_value += 0.05;
|
||||
Brightness[monitor].screen_value += 0.05;
|
||||
},
|
||||
onScrollDown: () => {
|
||||
Indicator.popup(1); // Since the brightness and speaker are both on the same window
|
||||
Brightness.screen_value -= 0.05;
|
||||
Brightness[monitor].screen_value -= 0.05;
|
||||
},
|
||||
onPrimaryClick: () => {
|
||||
App.toggleWindow('sideleft');
|
||||
@@ -75,4 +75,4 @@ export default async () => {
|
||||
]
|
||||
})
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,16 +49,16 @@ const OsdValue = ({
|
||||
});
|
||||
}
|
||||
|
||||
export default () => {
|
||||
export default (monitor = 0) => {
|
||||
const brightnessIndicator = OsdValue({
|
||||
name: 'Brightness',
|
||||
extraClassName: 'osd-brightness',
|
||||
extraProgressClassName: 'osd-brightness-progress',
|
||||
labelSetup: (self) => self.hook(Brightness, self => {
|
||||
self.label = `${Math.round(Brightness.screen_value * 100)}`;
|
||||
labelSetup: (self) => self.hook(Brightness[monitor], self => {
|
||||
self.label = `${Math.round(Brightness[monitor].screen_value * 100)}`;
|
||||
}, 'notify::screen-value'),
|
||||
progressSetup: (self) => self.hook(Brightness, (progress) => {
|
||||
const updateValue = Brightness.screen_value;
|
||||
progressSetup: (self) => self.hook(Brightness[monitor], (progress) => {
|
||||
const updateValue = Brightness[monitor].screen_value;
|
||||
progress.value = updateValue;
|
||||
}, 'notify::screen-value'),
|
||||
});
|
||||
@@ -109,4 +109,4 @@ export default () => {
|
||||
]
|
||||
})
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ export default (monitor = 0) => Widget.Window({
|
||||
className: 'osd-window',
|
||||
css: 'min-height: 2px;',
|
||||
children: [
|
||||
IndicatorValues(),
|
||||
IndicatorValues(monitor),
|
||||
MusicControls(),
|
||||
NotificationPopups(),
|
||||
ColorScheme(),
|
||||
@@ -30,4 +30,3 @@ export default (monitor = 0) => Widget.Window({
|
||||
})
|
||||
}),
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user