Added ags to hyprland
This commit is contained in:
39
home/desktops/hyprland/ags/services/darkmode.js
Normal file
39
home/desktops/hyprland/ags/services/darkmode.js
Normal file
@@ -0,0 +1,39 @@
|
||||
const { Gio, GLib } = imports.gi;
|
||||
import Service from 'resource:///com/github/Aylur/ags/service.js';
|
||||
import * as Utils from 'resource:///com/github/Aylur/ags/utils.js';
|
||||
import { darkMode } from '../modules/.miscutils/system.js';
|
||||
const { exec, execAsync } = Utils;
|
||||
|
||||
const timeBefore = (time1, time2) => { // Arrays of [hour, minute]
|
||||
if (time1[0] == time2[0]) return time1[1] < time2[1];
|
||||
return time1[0] < time2[0];
|
||||
}
|
||||
|
||||
const timeSame = (time1, time2) => // Arrays of [hour, minute]
|
||||
(time1[0] == time2[0] && time1[1] == time2[1]);
|
||||
|
||||
const timeBeforeOrSame = (time1, time2) => // Arrays of [hour, minute]
|
||||
(timeBefore(time1, time2) || timeSame(time1, time2));
|
||||
|
||||
const timeInRange = (time, rangeStart, rangeEnd) => { // Arrays of [hour, minute]
|
||||
if (timeBefore(rangeStart, rangeEnd))
|
||||
return (timeBeforeOrSame(rangeStart, time) && timeBeforeOrSame(time, rangeEnd))
|
||||
else { // rangeEnd < rangeStart, meaning it ends the following day
|
||||
rangeEnd[0] += 24;
|
||||
if (timeBefore(time, rangeStart)) time[0] += 24;
|
||||
return (timeBeforeOrSame(rangeStart, time) && timeBeforeOrSame(time, rangeEnd))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export async function startAutoDarkModeService() {
|
||||
Utils.interval(userOptions.time.interval, () => {
|
||||
if ((!userOptions.appearance.autoDarkMode.enabled)) return;
|
||||
const fromTime = (userOptions.appearance.autoDarkMode.from).split(':').map(Number);
|
||||
const toTime = (userOptions.appearance.autoDarkMode.to).split(':').map(Number);
|
||||
if (fromTime == toTime) return;
|
||||
const currentDateTime = GLib.DateTime.new_now_local();
|
||||
const currentTime = [currentDateTime.get_hour(), currentDateTime.get_minute()];
|
||||
darkMode.value = timeInRange(currentTime, fromTime, toTime);
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user