aboutsummaryrefslogtreecommitdiff
path: root/.config/ags/service/colorpicker.ts
diff options
context:
space:
mode:
Diffstat (limited to '.config/ags/service/colorpicker.ts')
-rw-r--r--.config/ags/service/colorpicker.ts56
1 files changed, 0 insertions, 56 deletions
diff --git a/.config/ags/service/colorpicker.ts b/.config/ags/service/colorpicker.ts
deleted file mode 100644
index 5918f31..0000000
--- a/.config/ags/service/colorpicker.ts
+++ /dev/null
@@ -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