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), wallpaper: { resolution: opt(1920), market: opt("random"), }, theme: { dark: { primary: { bg: opt("#51a4e7"), fg: opt("#141414"), }, error: { bg: opt("#e55f86"), fg: opt("#141414"), }, bg: opt("#171717"), fg: opt("#eeeeee"), widget: opt("#eeeeee"), border: opt("#eeeeee"), }, light: { primary: { bg: opt("#426ede"), fg: opt("#eeeeee"), }, error: { bg: opt("#b13558"), fg: opt("#eeeeee"), }, bg: opt("#fffffa"), fg: opt("#080808"), widget: opt("#080808"), border: opt("#080808"), }, blur: opt(0), scheme: opt<"dark" | "light">("dark"), widget: { opacity: opt(94) }, border: { width: opt(1), opacity: opt(96), }, shadows: opt(true), padding: opt(7), spacing: opt(12), radius: opt(11), }, transition: opt(200), font: { size: opt(13), name: opt("Ubuntu Nerd Font"), }, bar: { flatButtons: opt(true), position: opt<"top" | "bottom">("top"), corners: opt(true), layout: { start: opt>([ "launcher", "workspaces", "taskbar", "expander", "messages", ]), center: opt>([ "date", ]), end: opt>([ "media", "expander", "systray", "colorpicker", "screenrecord", "system", "battery", "powermenu", ]), }, 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), width: opt(50), low: opt(30), }, workspaces: { workspaces: opt(7), }, 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")), }, }, launcher: { width: opt(0), margin: opt(80), nix: { pkgs: opt("nixpkgs/nixos-unstable"), max: opt(8), }, sh: { max: opt(16), }, apps: { iconSize: opt(62), max: opt(6), favorites: opt([ [ "firefox", "org.gnome.Nautilus", "org.gnome.Calendar", "obsidian", "discord", "spotify", ], ]), }, }, 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), }, width: opt(380), position: opt<"left" | "center" | "right">("right"), networkSettings: opt("gtk-launch gnome-control-center"), media: { monochromeIcon: opt(true), coverSize: opt(100), }, }, datemenu: { 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 || "", ), cities: opt>( JSON.parse(Utils.readFile(`${App.configDir}/.weather`) || "{}")?.cities || [], ), }, }, 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"]), width: opt(440), }, hyprland: { gaps: opt(2.4), inactiveBorder: opt("333333ff"), gapsWhenOnly: opt(false), }, }) globalThis["options"] = options export default options