mirror of
https://github.com/Theaninova/TheaninovOS.git
synced 2025-12-12 03:26:17 +00:00
feat: monitor brightness control
This commit is contained in:
@@ -56,8 +56,7 @@ export default () =>
|
||||
children: [
|
||||
Row([Volume()], [SinkSelector(), AppMixer()]),
|
||||
Microhone(),
|
||||
/*Brightness()*/
|
||||
,
|
||||
Brightness(),
|
||||
],
|
||||
}),
|
||||
Row(
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
import Widget from "resource:///com/github/Aylur/ags/widget.js";
|
||||
import icons from "../../icons.js";
|
||||
import Brightness from "../../services/brightness.js";
|
||||
import * as Utils from "resource:///com/github/Aylur/ags/utils.js";
|
||||
|
||||
const CanSupportBrightness = () => Utils.exec("which gbmonctl");
|
||||
|
||||
const BrightnessSlider = () =>
|
||||
Widget.Slider({
|
||||
|
||||
@@ -42,13 +42,18 @@ class Brightness extends Service {
|
||||
}
|
||||
|
||||
set screen(percent) {
|
||||
if (!dependencies(["brightnessctl"])) return;
|
||||
if (!dependencies(["gbmonctl"])) return;
|
||||
|
||||
if (percent < 0) percent = 0;
|
||||
|
||||
if (percent > 1) percent = 1;
|
||||
|
||||
Utils.execAsync(`brightnessctl s ${percent * 100}% -q`)
|
||||
Utils.execAsync(
|
||||
`gbmonctl --prop brightness -val ${Math.min(
|
||||
Math.max(Math.floor(percent * 100), 0),
|
||||
100,
|
||||
)}`,
|
||||
)
|
||||
.then(() => {
|
||||
this.#screen = percent;
|
||||
this.changed("screen");
|
||||
|
||||
Reference in New Issue
Block a user