mirror of
https://github.com/Theaninova/TheaninovOS.git
synced 2025-12-11 02:56:27 +00:00
244 lines
6.4 KiB
TypeScript
244 lines
6.4 KiB
TypeScript
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<import("service/wallpaper").Resolution>(1920),
|
|
market: opt<import("service/wallpaper").Market>("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<Array<import("widget/bar/Bar").BarWidget>>([
|
|
"launcher",
|
|
"workspaces",
|
|
"taskbar",
|
|
"expander",
|
|
"messages",
|
|
]),
|
|
center: opt<Array<import("widget/bar/Bar").BarWidget>>([
|
|
"date",
|
|
]),
|
|
end: opt<Array<import("widget/bar/Bar").BarWidget>>([
|
|
"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<string>(
|
|
JSON.parse(Utils.readFile(`${App.configDir}/.weather`) || "{}")?.key || "",
|
|
),
|
|
cities: opt<Array<number>>(
|
|
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<Array<"top" | "bottom" | "left" | "right">>(["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
|