import { opt, mkOptions } from "lib/option" import { distro } from "lib/variables" import { icon } from "lib/utils" import icons from "lib/icons" const options = mkOptions(OPTIONS, { autotheme: opt(false), theme: { primary: { bg: opt("#51a4e7"), fg: opt("#141414"), }, error: { bg: opt("#e55f86"), fg: opt("#141414"), }, bg: opt("#171717"), fg: opt("#eeeeee"), blur: opt(0), widget: { opacity: opt(94) }, border: { width: opt(1), opacity: opt(96), }, }, font: { size: opt(13), name: opt("Ubuntu Nerd Font"), }, bar: { flatButtons: opt(true), position: opt<"top" | "bottom">("top"), corners: opt(true), transparent: opt(false), layout: { start: opt>([ "dashboard", "workspaces", "windowtitle" ]), center: opt>([ "media" ]), end: opt>([ "volume", "network", "bluetooth", "systray", "clock", "notifications" ]), }, launcher: { icon: { colored: opt(true), icon: opt(icon(distro.logo, icons.ui.search)), }, label: { colored: opt(false), label: opt(" Applications"), }, action: opt(() => App.toggleWindow("launcher")), }, date: { format: opt("%H:%M - %A %e."), action: opt(() => App.toggleWindow("datemenu")), }, battery: { bar: opt<"hidden" | "regular" | "whole">("regular"), charging: opt("#00D787"), percentage: opt(true), blocks: opt(7), low: opt(30), }, workspaces: { workspaces: opt(7), monitorSpecific: opt(true), }, taskbar: { iconSize: opt(0), monochrome: opt(true), exclusive: opt(false), }, messages: { action: opt(() => App.toggleWindow("datemenu")), }, systray: { ignore: opt([ "KDE Connect Indicator", "spotify-client", ]), }, media: { monochrome: opt(true), preferred: opt("spotify"), direction: opt<"left" | "right">("right"), format: opt("{artists} - {title}"), length: opt(40), }, powermenu: { monochrome: opt(false), action: opt(() => App.toggleWindow("powermenu")), }, }, overview: { scale: opt(9), workspaces: opt(7), monochromeIcon: opt(true), }, powermenu: { sleep: opt("systemctl suspend"), reboot: opt("systemctl reboot"), logout: opt("pkill Hyprland"), shutdown: opt("shutdown now"), layout: opt<"line" | "box">("line"), labels: opt(true), }, quicksettings: { avatar: { image: opt(`/var/lib/AccountsService/icons/${Utils.USER}`), size: opt(70), name: opt("Linux User") }, }, calendarmenu: { position: opt<"left" | "center" | "right">("center"), weather: { interval: opt(60_000), unit: opt<"metric" | "imperial" | "standard">("metric"), key: opt( JSON.parse(Utils.readFile(`${App.configDir}/.weather`) || "{}")?.key || "", ), }, }, osd: { progress: { vertical: opt(true), pack: { h: opt<"start" | "center" | "end">("end"), v: opt<"start" | "center" | "end">("center"), }, }, microphone: { pack: { h: opt<"start" | "center" | "end">("center"), v: opt<"start" | "center" | "end">("end"), }, }, }, notifications: { position: opt>(["top", "right"]), blacklist: opt(["Spotify"]), }, }) globalThis["options"] = options export default options