Files
gnome-night-theme-switcher/src/modules/CommandsSwitcher.js
T

42 lines
1.1 KiB
JavaScript

// SPDX-FileCopyrightText: Night Theme Switcher Contributors
// SPDX-License-Identifier: GPL-3.0-or-later
import GLib from "gi://GLib";
import * as debug from "../debug.js";
import { Time } from "../enums/Time.js";
import { Switcher } from "./Switcher.js";
/**
* The Commands Switcher spawns commands according to the time.
*/
export class CommandsSwitcher extends Switcher {
#settings;
/**
* @param {object} params Params object.
* @param {import("./Timer.js").Timer} params.timer Timer to listen to.
*/
constructor({ timer }) {
const settings = NTS.getSettings(`${NTS.metadata["settings-schema"]}.commands`);
super({
name: "Command",
timer,
settings,
callback: (time) => this.#onTimeChanged(time),
disableable: true,
});
this.#settings = settings;
}
#onTimeChanged(time) {
if (time === Time.UNKNOWN) return;
const command = this.#settings.get_string(time === Time.DAY ? "sunrise" : "sunset");
if (!command) return;
GLib.spawn_async(null, ["sh", "-c", command], null, GLib.SpawnFlags.SEARCH_PATH, null);
debug.message(`Spawned ${time} command.`);
}
}