refactor start

This commit is contained in:
Spectre 2025-02-18 11:19:45 +01:00
parent bd49791e06
commit e46d25f0b7
16699 changed files with 2 additions and 1484887 deletions

View file

@ -1,56 +0,0 @@
import icons from "lib/icons"
import { bash, dependencies } from "lib/utils"
const COLORS_CACHE = Utils.CACHE_DIR + "/colorpicker.json"
const MAX_NUM_COLORS = 10
class ColorPicker extends Service {
static {
Service.register(this, {}, {
"colors": ["jsobject"],
})
}
#notifID = 0
#colors = JSON.parse(Utils.readFile(COLORS_CACHE) || "[]") as string[]
get colors() { return [...this.#colors] }
set colors(colors) {
this.#colors = colors
this.changed("colors")
}
// TODO: doesn't work?
async wlCopy(color: string) {
if (dependencies("wl-copy"))
bash(`wl-copy ${color}`)
}
readonly pick = async () => {
if (!dependencies("hyprpicker"))
return
const color = await bash("hyprpicker -a -r")
if (!color)
return
this.wlCopy(color)
const list = this.colors
if (!list.includes(color)) {
list.push(color)
if (list.length > MAX_NUM_COLORS)
list.shift()
this.colors = list
Utils.writeFile(JSON.stringify(list, null, 2), COLORS_CACHE)
}
this.#notifID = await Utils.notify({
id: this.#notifID,
iconName: icons.ui.colorpicker,
summary: color,
})
}
}
export default new ColorPicker