sideright: hide night light button when unavailable

This commit is contained in:
end-4
2024-05-11 09:09:52 +07:00
parent f56f8c250c
commit e6b9c1ae38
2 changed files with 36 additions and 33 deletions
+35 -32
View File
@@ -78,38 +78,41 @@ export const HyprToggleIcon = async (icon, name, hyprlandConfigValue, props = {}
}
}
export const ModuleNightLight = (props = {}) => Widget.Button({
attribute: {
enabled: false,
},
className: 'txt-small sidebar-iconbutton',
tooltipText: 'Night Light',
onClicked: (self) => {
self.attribute.enabled = !self.attribute.enabled;
self.toggleClassName('sidebar-button-active', self.attribute.enabled);
if (self.attribute.enabled) Utils.execAsync('gammastep').catch(print)
else Utils.execAsync('pkill gammastep')
.then(() => {
// disable the button until fully terminated to avoid race
self.sensitive = false;
const source = setInterval(() => {
Utils.execAsync('pkill -0 gammastep')
.catch(() => {
self.sensitive = true;
source.destroy();
});
}, 500);
})
.catch(print);
},
child: MaterialIcon('nightlight', 'norm'),
setup: (self) => {
setupCursorHover(self);
self.attribute.enabled = !!exec('pidof gammastep');
self.toggleClassName('sidebar-button-active', self.attribute.enabled);
},
...props,
});
export const ModuleNightLight = async (props = {}) => {
if (!exec(`bash -c 'command -v gammastep'`)) return null;
return Widget.Button({
attribute: {
enabled: false,
},
className: 'txt-small sidebar-iconbutton',
tooltipText: 'Night Light',
onClicked: (self) => {
self.attribute.enabled = !self.attribute.enabled;
self.toggleClassName('sidebar-button-active', self.attribute.enabled);
if (self.attribute.enabled) Utils.execAsync('gammastep').catch(print)
else Utils.execAsync('pkill gammastep')
.then(() => {
// disable the button until fully terminated to avoid race
self.sensitive = false;
const source = setInterval(() => {
Utils.execAsync('pkill -0 gammastep')
.catch(() => {
self.sensitive = true;
source.destroy();
});
}, 500);
})
.catch(print);
},
child: MaterialIcon('nightlight', 'norm'),
setup: (self) => {
setupCursorHover(self);
self.attribute.enabled = !!exec('pidof gammastep');
self.toggleClassName('sidebar-button-active', self.attribute.enabled);
},
...props,
});
}
export const ModuleInvertColors = async (props = {}) => {
try {
+1 -1
View File
@@ -90,7 +90,7 @@ const togglesBox = Widget.Box({
ToggleIconBluetooth(),
await ModuleRawInput(),
await HyprToggleIcon('touchpad_mouse', 'No touchpad while typing', 'input:touchpad:disable_while_typing', {}),
ModuleNightLight(),
await ModuleNightLight(),
await ModuleInvertColors(),
ModuleIdleInhibitor(),
]