Files
custum-hyprpanel/options.ts
Rubin Bhandari b88644833d feat: on hover only show actions if available on notifications (#396)
* feat: on hover only show actions if available on notifications

* feat: on hover only show actions if available on notifications

* fix: make the change configurable

* fix: remove unneeded op
2024-11-04 22:47:26 -08:00

1230 lines
47 KiB
TypeScript

import { opt, mkOptions } from 'lib/option';
import { NetstatLabelType, RateUnit, ResourceLabelType } from 'lib/types/bar';
import { KbLabelType } from 'lib/types/customModules/kbLayout';
import {
ActiveWsIndicator,
BarButtonStyles,
BarLocation,
BluetoothBatteryState,
BorderLocation,
NotificationAnchor,
OSDAnchor,
OSDOrientation,
ScalingPriority,
WindowLayer,
} from 'lib/types/options';
import { MatugenScheme, MatugenTheme, MatugenVariations } from 'lib/types/options';
import { SystrayIconMap } from 'lib/types/systray';
import { UnitType } from 'lib/types/weather';
import { Transition } from 'lib/types/widget';
import { ApplicationIcons, WorkspaceIcons, WorkspaceIconsColored } from 'lib/types/workspace';
// WARN: CHANGING THESE VALUES WILL PREVENT MATUGEN COLOR GENERATION FOR THE CHANGED VALUE
export const colors = {
rosewater: '#f5e0dc',
flamingo: '#f2cdcd',
pink: '#f5c2e7',
mauve: '#cba6f7',
red: '#f38ba8',
maroon: '#eba0ac',
peach: '#fab387',
yellow: '#f9e2af',
green: '#a6e3a1',
teal: '#94e2d5',
sky: '#89dceb',
sapphire: '#74c7ec',
blue: '#89b4fa',
lavender: '#b4befe',
text: '#cdd6f4',
subtext1: '#bac2de',
subtext2: '#a6adc8',
overlay2: '#9399b2',
overlay1: '#7f849c',
overlay0: '#6c7086',
surface2: '#585b70',
surface1: '#45475a',
surface0: '#313244',
base2: '#242438',
base: '#1e1e2e',
mantle: '#181825',
crust: '#11111b',
};
// WARN: CHANGING THESE VALUES WILL PREVENT MATUGEN COLOR GENERATION FOR THE CHANGED VALUE
const secondary_colors = {
text: '#cdd6f3',
pink: '#f5c2e6',
red: '#f38ba7',
peach: '#fab386',
mantle: '#181824',
surface1: '#454759',
surface0: '#313243',
overlay1: '#7f849b',
lavender: '#b4befd',
mauve: '#cba6f6',
green: '#a6e3a0',
sky: '#89dcea',
teal: '#94e2d4',
yellow: '#f9e2ad',
maroon: '#eba0ab',
crust: '#11111a',
surface2: '#585b69',
};
const tertiary_colors = {
pink: '#f5c2e8',
red: '#f38ba9',
mantle: '#181826',
surface0: '#313245',
overlay1: '#7f849d',
lavender: '#b4beff',
mauve: '#cba6f8',
green: '#a6e3a2',
sky: '#89dcec',
teal: '#94e2d6',
yellow: '#f9e2ae',
maroon: '#eba0ad',
crust: '#11111c',
surface2: '#585b71',
};
const options = mkOptions(OPTIONS, {
theme: {
tooltip: {
scaling: opt(100),
},
matugen: opt(false),
matugen_settings: {
mode: opt<MatugenTheme>('dark'),
scheme_type: opt<MatugenScheme>('tonal-spot'),
variation: opt<MatugenVariations>('standard_1'),
contrast: opt(0.0),
},
font: {
size: opt('1.2rem'),
name: opt('Ubuntu Nerd Font'),
weight: opt(600),
},
notification: {
scaling: opt(100),
background: opt(tertiary_colors.mantle),
opacity: opt(100),
actions: {
background: opt(secondary_colors.lavender),
text: opt(colors.mantle),
},
label: opt(colors.lavender),
border: opt(secondary_colors.surface0),
border_radius: opt('0.6em'),
time: opt(secondary_colors.overlay1),
text: opt(colors.text),
labelicon: opt(colors.lavender),
close_button: {
background: opt(secondary_colors.red),
label: opt(colors.crust),
},
},
osd: {
scaling: opt(100),
duration: opt(2500),
enable: opt(true),
orientation: opt<OSDOrientation>('vertical'),
opacity: opt(100),
bar_container: opt(colors.crust),
icon_container: opt(tertiary_colors.lavender),
bar_color: opt(tertiary_colors.lavender),
bar_empty_color: opt(colors.surface0),
bar_overflow_color: opt(secondary_colors.red),
icon: opt(colors.crust),
label: opt(tertiary_colors.lavender),
monitor: opt(0),
active_monitor: opt(true),
radius: opt('0.4em'),
margins: opt('0px 5px 0px 0px'),
location: opt<OSDAnchor>('right'),
muted_zero: opt(false),
},
bar: {
scaling: opt(100),
floating: opt(false),
location: opt<BarLocation>('top'),
layer: opt<WindowLayer>('top'),
margin_top: opt('0.5em'),
opacity: opt(100),
margin_bottom: opt('0em'),
margin_sides: opt('0.5em'),
border_radius: opt('0.4em'),
outer_spacing: opt('1.6em'),
label_spacing: opt('0.5em'),
transparent: opt(false),
dropdownGap: opt('2.9em'),
background: opt(colors.crust),
border: {
location: opt<BorderLocation>('none'),
width: opt('0.15em'),
color: opt(colors.lavender),
},
buttons: {
style: opt<BarButtonStyles>('default'),
enableBorders: opt(false),
borderSize: opt('0.1em'),
monochrome: opt(false),
spacing: opt('0.25em'),
padding_x: opt('0.7rem'),
padding_y: opt('0.2rem'),
y_margins: opt('0.4em'),
radius: opt('0.3em'),
opacity: opt(100),
background_opacity: opt(100),
background_hover_opacity: opt(100),
background: opt(colors.base2),
icon_background: opt(colors.base2),
hover: opt(colors.surface1),
text: opt(colors.lavender),
icon: opt(colors.lavender),
dashboard: {
background: opt(colors.base2),
enableBorder: opt(false),
border: opt(colors.yellow),
icon: opt(colors.yellow),
spacing: opt('0.5em'),
},
workspaces: {
background: opt(colors.base2),
enableBorder: opt(false),
smartHighlight: opt(true),
border: opt(colors.pink),
available: opt(colors.sky),
occupied: opt(colors.flamingo),
active: opt(colors.pink),
hover: opt(colors.pink),
numbered_active_highlight_border: opt('0.2em'),
numbered_active_highlight_padding: opt('0.2em'),
numbered_active_highlighted_text_color: opt(colors.mantle),
numbered_active_underline_color: opt(colors.pink),
spacing: opt('0.5em'),
fontSize: opt('1.2em'),
},
windowtitle: {
background: opt(colors.base2),
enableBorder: opt(false),
border: opt(colors.pink),
text: opt(colors.pink),
icon: opt(colors.pink),
icon_background: opt(colors.base2),
spacing: opt('0.5em'),
},
media: {
enableBorder: opt(false),
border: opt(colors.lavender),
background: opt(colors.base2),
text: opt(colors.lavender),
icon: opt(colors.lavender),
icon_background: opt(colors.base2),
spacing: opt('0.5em'),
},
volume: {
enableBorder: opt(false),
border: opt(colors.maroon),
background: opt(colors.base2),
text: opt(colors.maroon),
icon: opt(colors.maroon),
icon_background: opt(colors.base2),
spacing: opt('0.5em'),
},
network: {
enableBorder: opt(false),
border: opt(colors.mauve),
background: opt(colors.base2),
text: opt(colors.mauve),
icon: opt(colors.mauve),
icon_background: opt(colors.base2),
spacing: opt('0.5em'),
},
bluetooth: {
enableBorder: opt(false),
border: opt(colors.sky),
background: opt(colors.base2),
text: opt(colors.sky),
icon: opt(colors.sky),
icon_background: opt(colors.base2),
spacing: opt('0.5em'),
},
systray: {
enableBorder: opt(false),
customIcon: opt(colors.text),
border: opt(colors.lavender),
background: opt(colors.base2),
spacing: opt('0.5em'),
},
battery: {
enableBorder: opt(false),
border: opt(colors.yellow),
background: opt(colors.base2),
text: opt(colors.yellow),
icon: opt(colors.yellow),
icon_background: opt(colors.base2),
spacing: opt('0.5em'),
},
clock: {
enableBorder: opt(false),
border: opt(colors.pink),
background: opt(colors.base2),
text: opt(colors.pink),
icon: opt(colors.pink),
icon_background: opt(colors.base2),
spacing: opt('0.5em'),
},
notifications: {
enableBorder: opt(false),
border: opt(colors.lavender),
background: opt(colors.base2),
icon: opt(colors.lavender),
icon_background: opt(colors.base2),
total: opt(colors.lavender),
spacing: opt('0.5em'),
},
modules: {
ram: {
enableBorder: opt(false),
border: opt(colors.yellow),
background: opt(colors.base2),
text: opt(colors.yellow),
icon: opt(colors.yellow),
icon_background: opt(colors.base2),
spacing: opt('0.45em'),
},
cpu: {
enableBorder: opt(false),
border: opt(colors.red),
background: opt(colors.base2),
text: opt(colors.red),
icon: opt(colors.red),
icon_background: opt(colors.base2),
spacing: opt('0.5em'),
},
storage: {
enableBorder: opt(false),
border: opt(colors.pink),
background: opt(colors.base2),
text: opt(colors.pink),
icon: opt(colors.pink),
icon_background: opt(colors.base2),
spacing: opt('0.45em'),
},
netstat: {
enableBorder: opt(false),
border: opt(colors.green),
background: opt(colors.base2),
text: opt(colors.green),
icon: opt(colors.green),
icon_background: opt(colors.base2),
spacing: opt('0.45em'),
},
kbLayout: {
enableBorder: opt(false),
border: opt(colors.sky),
background: opt(colors.base2),
text: opt(colors.sky),
icon: opt(colors.sky),
icon_background: opt(colors.base2),
spacing: opt('0.45em'),
},
updates: {
enableBorder: opt(false),
border: opt(colors.mauve),
background: opt(colors.base2),
text: opt(colors.mauve),
icon: opt(colors.mauve),
icon_background: opt(colors.base2),
spacing: opt('0.45em'),
},
weather: {
enableBorder: opt(false),
border: opt(colors.lavender),
background: opt(colors.base2),
text: opt(colors.lavender),
icon: opt(colors.lavender),
icon_background: opt(colors.base2),
spacing: opt('0.45em'),
},
power: {
enableBorder: opt(false),
border: opt(colors.red),
background: opt(colors.base2),
icon: opt(colors.red),
icon_background: opt(colors.base2),
spacing: opt('0.45em'),
},
submap: {
enableBorder: opt(false),
border: opt(colors.teal),
background: opt(colors.base2),
text: opt(colors.teal),
icon: opt(colors.teal),
icon_background: opt(colors.base2),
spacing: opt('0.45em'),
},
},
},
menus: {
monochrome: opt(false),
background: opt(colors.crust),
opacity: opt(100),
cards: opt(colors.base),
card_radius: opt('0.4em'),
border: {
size: opt('0.13em'),
radius: opt('0.7em'),
color: opt(colors.surface0),
},
text: opt(colors.text),
dimtext: opt(colors.surface2),
feinttext: opt(colors.surface0),
label: opt(colors.lavender),
popover: {
text: opt(colors.lavender),
background: opt(secondary_colors.mantle),
border: opt(secondary_colors.mantle),
},
listitems: {
passive: opt(colors.text),
active: opt(secondary_colors.lavender),
},
icons: {
passive: opt(colors.surface2),
active: opt(colors.lavender),
},
switch: {
enabled: opt(colors.lavender),
disabled: opt(tertiary_colors.surface0),
puck: opt(secondary_colors.surface1),
radius: opt('0.2em'),
slider_radius: opt('0.2em'),
},
check_radio_button: {
background: opt(colors.surface1),
active: opt(tertiary_colors.lavender),
},
buttons: {
default: opt(colors.lavender),
active: opt(secondary_colors.pink),
disabled: opt(tertiary_colors.surface2),
text: opt(secondary_colors.mantle),
},
iconbuttons: {
passive: opt(secondary_colors.text),
active: opt(tertiary_colors.lavender),
},
progressbar: {
foreground: opt(colors.lavender),
background: opt(colors.surface1),
},
slider: {
primary: opt(colors.lavender),
background: opt(tertiary_colors.surface2),
backgroundhover: opt(colors.surface1),
puck: opt(colors.overlay0),
slider_radius: opt('0.3rem'),
progress_radius: opt('0.3rem'),
},
dropdownmenu: {
background: opt(colors.crust),
text: opt(colors.text),
divider: opt(colors.base),
},
tooltip: {
background: opt(colors.crust),
text: opt(tertiary_colors.lavender),
},
menu: {
media: {
scaling: opt(100),
song: opt(tertiary_colors.lavender),
artist: opt(tertiary_colors.teal),
album: opt(tertiary_colors.pink),
background: {
color: opt(colors.crust),
},
card: {
color: opt(colors.base),
tint: opt(85),
},
border: {
color: opt(colors.surface0),
},
buttons: {
inactive: opt(colors.surface2),
enabled: opt(secondary_colors.teal),
background: opt(tertiary_colors.lavender),
text: opt(colors.crust),
},
slider: {
primary: opt(colors.pink),
background: opt(tertiary_colors.surface2),
backgroundhover: opt(colors.surface1),
puck: opt(colors.overlay0),
},
},
volume: {
scaling: opt(100),
card: {
color: opt(colors.base),
},
background: {
color: opt(colors.crust),
},
border: {
color: opt(colors.surface0),
},
label: {
color: opt(colors.maroon),
},
text: opt(colors.text),
listitems: {
passive: opt(colors.text),
active: opt(secondary_colors.maroon),
},
iconbutton: {
passive: opt(colors.text),
active: opt(colors.maroon),
},
icons: {
passive: opt(colors.overlay2),
active: opt(colors.maroon),
},
audio_slider: {
primary: opt(colors.maroon),
background: opt(tertiary_colors.surface2),
backgroundhover: opt(colors.surface1),
puck: opt(colors.surface2),
},
input_slider: {
primary: opt(colors.maroon),
background: opt(tertiary_colors.surface2),
backgroundhover: opt(colors.surface1),
puck: opt(colors.surface2),
},
},
network: {
scaling: opt(100),
card: {
color: opt(colors.base),
},
background: {
color: opt(colors.crust),
},
border: {
color: opt(colors.surface0),
},
label: {
color: opt(colors.mauve),
},
text: opt(colors.text),
status: {
color: opt(colors.overlay0),
},
listitems: {
passive: opt(colors.text),
active: opt(secondary_colors.mauve),
},
icons: {
passive: opt(colors.overlay2),
active: opt(colors.mauve),
},
iconbuttons: {
passive: opt(colors.text),
active: opt(colors.mauve),
},
switch: {
enabled: opt(colors.mauve),
disabled: opt(tertiary_colors.surface0),
puck: opt(secondary_colors.surface1),
},
},
bluetooth: {
scaling: opt(100),
card: {
color: opt(colors.base),
},
background: {
color: opt(colors.crust),
},
border: {
color: opt(colors.surface0),
},
label: {
color: opt(colors.sky),
},
text: opt(colors.text),
status: opt(colors.overlay0),
switch_divider: opt(colors.surface1),
switch: {
enabled: opt(colors.sky),
disabled: opt(tertiary_colors.surface0),
puck: opt(secondary_colors.surface1),
},
listitems: {
passive: opt(colors.text),
active: opt(secondary_colors.sky),
},
icons: {
passive: opt(colors.overlay2),
active: opt(colors.sky),
},
iconbutton: {
passive: opt(colors.text),
active: opt(colors.sky),
},
},
systray: {
dropdownmenu: {
background: opt(colors.crust),
text: opt(colors.text),
divider: opt(colors.base),
},
},
battery: {
scaling: opt(100),
card: {
color: opt(colors.base),
},
background: {
color: opt(colors.crust),
},
border: {
color: opt(colors.surface0),
},
label: {
color: opt(colors.yellow),
},
text: opt(colors.text),
listitems: {
passive: opt(secondary_colors.text),
active: opt(colors.yellow),
},
icons: {
passive: opt(colors.overlay2),
active: opt(colors.yellow),
},
slider: {
primary: opt(colors.yellow),
background: opt(tertiary_colors.surface2),
backgroundhover: opt(colors.surface1),
puck: opt(colors.overlay0),
},
},
clock: {
scaling: opt(100),
card: {
color: opt(colors.base),
},
background: {
color: opt(colors.crust),
},
border: {
color: opt(colors.surface0),
},
text: opt(colors.text),
time: {
time: opt(colors.pink),
timeperiod: opt(colors.teal),
},
calendar: {
yearmonth: opt(colors.teal),
weekdays: opt(colors.pink),
paginator: opt(secondary_colors.pink),
currentday: opt(colors.pink),
days: opt(colors.text),
contextdays: opt(colors.surface2),
},
weather: {
icon: opt(colors.pink),
temperature: opt(colors.text),
status: opt(colors.teal),
stats: opt(colors.pink),
thermometer: {
extremelyhot: opt(colors.red),
hot: opt(colors.peach),
moderate: opt(colors.lavender),
cold: opt(colors.blue),
extremelycold: opt(colors.sky),
},
hourly: {
time: opt(colors.pink),
icon: opt(colors.pink),
temperature: opt(colors.pink),
},
},
},
dashboard: {
scaling: opt(100),
confirmation_scaling: opt(100),
card: {
color: opt(colors.base),
},
background: {
color: opt(colors.crust),
},
border: {
color: opt(colors.surface0),
},
profile: {
name: opt(colors.pink),
size: opt('8.5em'),
radius: opt('0.4em'),
},
powermenu: {
shutdown: opt(colors.red),
restart: opt(colors.peach),
logout: opt(colors.green),
sleep: opt(colors.sky),
confirmation: {
card: opt(colors.base),
background: opt(colors.crust),
border: opt(colors.surface0),
label: opt(colors.lavender),
body: opt(colors.text),
confirm: opt(colors.green),
deny: opt(colors.red),
button_text: opt(secondary_colors.crust),
},
},
shortcuts: {
background: opt(colors.lavender),
text: opt(secondary_colors.mantle),
recording: opt(colors.green),
},
controls: {
disabled: opt(colors.surface2),
wifi: {
background: opt(colors.mauve),
text: opt(secondary_colors.mantle),
},
bluetooth: {
background: opt(colors.sky),
text: opt(secondary_colors.mantle),
},
notifications: {
background: opt(colors.yellow),
text: opt(secondary_colors.mantle),
},
volume: {
background: opt(colors.maroon),
text: opt(secondary_colors.mantle),
},
input: {
background: opt(colors.pink),
text: opt(secondary_colors.mantle),
},
},
directories: {
left: {
top: {
color: opt(colors.pink),
},
middle: {
color: opt(colors.yellow),
},
bottom: {
color: opt(colors.maroon),
},
},
right: {
top: {
color: opt(colors.teal),
},
middle: {
color: opt(colors.mauve),
},
bottom: {
color: opt(colors.lavender),
},
},
},
monitors: {
bar_background: opt(colors.surface1),
cpu: {
icon: opt(colors.maroon),
bar: opt(tertiary_colors.maroon),
label: opt(colors.maroon),
},
ram: {
icon: opt(colors.yellow),
bar: opt(tertiary_colors.yellow),
label: opt(colors.yellow),
},
gpu: {
icon: opt(colors.green),
bar: opt(tertiary_colors.green),
label: opt(colors.green),
},
disk: {
icon: opt(colors.pink),
bar: opt(tertiary_colors.pink),
label: opt(colors.pink),
},
},
},
power: {
scaling: opt(90),
radius: opt('0.4em'),
background: {
color: opt(colors.crust),
},
border: {
color: opt(colors.surface0),
},
buttons: {
shutdown: {
background: opt(colors.base),
icon_background: opt(secondary_colors.red),
text: opt(colors.red),
icon: opt(secondary_colors.mantle),
},
restart: {
background: opt(colors.base),
icon_background: opt(secondary_colors.peach),
text: opt(colors.peach),
icon: opt(secondary_colors.mantle),
},
logout: {
background: opt(colors.base),
icon_background: opt(secondary_colors.green),
text: opt(colors.green),
icon: opt(secondary_colors.mantle),
},
sleep: {
background: opt(colors.base),
icon_background: opt(secondary_colors.sky),
text: opt(colors.sky),
icon: opt(secondary_colors.mantle),
},
},
},
notifications: {
scaling: opt(100),
height: opt('58em'),
label: opt(colors.lavender),
no_notifications_label: opt(colors.surface0),
background: opt(colors.crust),
card: opt(colors.base),
border: opt(colors.surface0),
switch_divider: opt(colors.surface1),
clear: opt(colors.red),
switch: {
enabled: opt(colors.lavender),
disabled: opt(tertiary_colors.surface0),
puck: opt(secondary_colors.surface1),
},
pager: {
show: opt(true),
background: opt(colors.crust),
button: opt(colors.lavender),
label: opt(colors.overlay2),
},
scrollbar: {
color: opt(colors.lavender),
width: opt('0.35em'),
radius: opt('0.2em'),
},
},
},
},
},
},
bar: {
scrollSpeed: opt(5),
layouts: opt({
'1': {
left: ['dashboard', 'workspaces', 'windowtitle'],
middle: ['media'],
right: ['volume', 'clock', 'notifications'],
},
'2': {
left: ['dashboard', 'workspaces', 'windowtitle'],
middle: ['media'],
right: ['volume', 'clock', 'notifications'],
},
'0': {
left: ['dashboard', 'workspaces', 'windowtitle'],
middle: ['media'],
right: ['volume', 'network', 'bluetooth', 'battery', 'systray', 'clock', 'notifications'],
},
}),
launcher: {
icon: opt('󰣇'),
rightClick: opt(''),
middleClick: opt(''),
scrollUp: opt(''),
scrollDown: opt(''),
},
windowtitle: {
custom_title: opt(true),
title_map: opt([]),
class_name: opt(true),
label: opt(true),
icon: opt(true),
truncation: opt(true),
truncation_size: opt(50),
leftClick: opt(''),
rightClick: opt(''),
middleClick: opt(''),
scrollUp: opt(''),
scrollDown: opt(''),
},
workspaces: {
show_icons: opt(false),
showAllActive: opt(true),
ignored: opt(''),
show_numbered: opt(false),
showWsIcons: opt(false),
showApplicationIcons: opt(false),
applicationIconOncePerWorkspace: opt(true),
applicationIconMap: opt<ApplicationIcons>({}),
applicationIconFallback: opt('󰣆'),
applicationIconEmptyWorkspace: opt(''),
numbered_active_indicator: opt<ActiveWsIndicator>('underline'),
icons: {
available: opt(''),
active: opt(''),
occupied: opt(''),
},
workspaceIconMap: opt<WorkspaceIcons | WorkspaceIconsColored>({}),
workspaces: opt(5),
spacing: opt(1),
monitorSpecific: opt(true),
hideUnoccupied: opt(true),
workspaceMask: opt(false),
reverse_scroll: opt(false),
scroll_speed: opt(5),
},
volume: {
label: opt(true),
rightClick: opt(''),
middleClick: opt(''),
scrollUp: opt('pactl set-sink-volume @DEFAULT_SINK@ +5%'),
scrollDown: opt('pactl set-sink-volume @DEFAULT_SINK@ -5%'),
},
network: {
truncation: opt(true),
showWifiInfo: opt(false),
truncation_size: opt(7),
label: opt(true),
rightClick: opt(''),
middleClick: opt(''),
scrollUp: opt(''),
scrollDown: opt(''),
},
bluetooth: {
label: opt(true),
rightClick: opt(''),
middleClick: opt(''),
scrollUp: opt(''),
scrollDown: opt(''),
},
battery: {
label: opt(true),
hideLabelWhenFull: opt(false),
rightClick: opt(''),
middleClick: opt(''),
scrollUp: opt(''),
scrollDown: opt(''),
},
systray: {
ignore: opt<string[]>([]),
customIcons: opt<SystrayIconMap>({}),
},
clock: {
icon: opt('󰸗'),
showIcon: opt(true),
showTime: opt(true),
format: opt('%a %b %d %I:%M:%S %p'),
rightClick: opt(''),
middleClick: opt(''),
scrollUp: opt(''),
scrollDown: opt(''),
},
media: {
format: opt('{artist: - }{title}'),
truncation: opt(true),
show_label: opt(true),
truncation_size: opt(30),
show_active_only: opt(false),
rightClick: opt(''),
middleClick: opt(''),
},
notifications: {
show_total: opt(false),
hideCountWhenZero: opt(false),
rightClick: opt(''),
middleClick: opt(''),
scrollUp: opt(''),
scrollDown: opt(''),
},
customModules: {
scrollSpeed: opt(5),
ram: {
icon: opt(''),
label: opt(true),
labelType: opt<ResourceLabelType>('percentage'),
round: opt(true),
pollingInterval: opt(2000),
leftClick: opt(''),
rightClick: opt(''),
middleClick: opt(''),
},
cpu: {
icon: opt(''),
label: opt(true),
round: opt(true),
pollingInterval: opt(2000),
leftClick: opt(''),
rightClick: opt(''),
middleClick: opt(''),
scrollUp: opt(''),
scrollDown: opt(''),
},
storage: {
label: opt(true),
icon: opt('󰋊'),
round: opt(false),
labelType: opt<ResourceLabelType>('percentage'),
pollingInterval: opt(2000),
leftClick: opt(''),
rightClick: opt(''),
middleClick: opt(''),
},
netstat: {
label: opt(true),
networkInterface: opt(''),
dynamicIcon: opt(false),
icon: opt('󰖟'),
round: opt(true),
labelType: opt<NetstatLabelType>('full'),
rateUnit: opt<RateUnit>('auto'),
pollingInterval: opt(2000),
leftClick: opt(''),
rightClick: opt(''),
middleClick: opt(''),
},
kbLayout: {
label: opt(true),
labelType: opt<KbLabelType>('code'),
icon: opt('󰌌'),
leftClick: opt(''),
rightClick: opt(''),
middleClick: opt(''),
scrollUp: opt(''),
scrollDown: opt(''),
},
updates: {
updateCommand: opt('$HOME/.config/ags/scripts/checkUpdates.sh -arch'),
label: opt(true),
padZero: opt(true),
icon: opt('󰏖'),
pollingInterval: opt(1000 * 60 * 60 * 6),
leftClick: opt(''),
rightClick: opt(''),
middleClick: opt(''),
scrollUp: opt(''),
scrollDown: opt(''),
},
submap: {
label: opt(true),
showSubmapName: opt(true),
enabledIcon: opt('󰌐'),
disabledIcon: opt('󰌌'),
enabledText: opt('Submap On'),
disabledText: opt('Submap off'),
leftClick: opt(''),
rightClick: opt(''),
middleClick: opt(''),
scrollUp: opt(''),
scrollDown: opt(''),
},
weather: {
label: opt(true),
unit: opt<UnitType>('imperial'),
leftClick: opt(''),
rightClick: opt(''),
middleClick: opt(''),
scrollUp: opt(''),
scrollDown: opt(''),
},
power: {
icon: opt(''),
showLabel: opt(true),
leftClick: opt('menu:powerdropdown'),
rightClick: opt(''),
middleClick: opt(''),
scrollUp: opt(''),
scrollDown: opt(''),
},
},
},
menus: {
transition: opt<Transition>('crossfade'),
transitionTime: opt(200),
media: {
hideAuthor: opt(false),
hideAlbum: opt(false),
},
bluetooth: {
showBattery: opt(false),
batteryState: opt<BluetoothBatteryState>('connected'),
batteryIcon: opt('󰥉'),
},
volume: {
raiseMaximumVolume: opt(false),
},
power: {
showLabel: opt(true),
confirmation: opt(true),
sleep: opt('systemctl suspend'),
reboot: opt('systemctl reboot'),
logout: opt('hyprctl dispatch exit'),
shutdown: opt('systemctl poweroff'),
},
dashboard: {
powermenu: {
confirmation: opt(true),
sleep: opt('systemctl suspend'),
reboot: opt('systemctl reboot'),
logout: opt('hyprctl dispatch exit'),
shutdown: opt('systemctl poweroff'),
avatar: {
image: opt('$HOME/.face.icon'),
name: opt<'system' | string>('system'),
},
},
stats: {
enabled: opt(true),
interval: opt(2000),
enable_gpu: opt(false),
},
controls: {
enabled: opt(true),
},
shortcuts: {
enabled: opt(true),
left: {
shortcut1: {
icon: opt('󰇩'),
tooltip: opt('Microsoft Edge'),
command: opt('microsoft-edge-stable'),
},
shortcut2: {
icon: opt(''),
tooltip: opt('Spotify'),
command: opt('spotify-launcher'),
},
shortcut3: {
icon: opt(''),
tooltip: opt('Discord'),
command: opt('discord'),
},
shortcut4: {
icon: opt(''),
tooltip: opt('Search Apps'),
command: opt('rofi -show drun'),
},
},
right: {
shortcut1: {
icon: opt(''),
tooltip: opt('Color Picker'),
command: opt('hyprpicker -a'),
},
shortcut3: {
icon: opt('󰄀'),
tooltip: opt('Screenshot'),
command: opt('bash -c "$HOME/.config/ags/services/snapshot.sh"'),
},
},
},
directories: {
enabled: opt(true),
left: {
directory1: {
label: opt('󰉍 Downloads'),
command: opt('bash -c "xdg-open $HOME/Downloads/"'),
},
directory2: {
label: opt('󰉏 Videos'),
command: opt('bash -c "xdg-open $HOME/Videos/"'),
},
directory3: {
label: opt('󰚝 Projects'),
command: opt('bash -c "xdg-open $HOME/Projects/"'),
},
},
right: {
directory1: {
label: opt('󱧶 Documents'),
command: opt('bash -c "xdg-open $HOME/Documents/"'),
},
directory2: {
label: opt('󰉏 Pictures'),
command: opt('bash -c "xdg-open $HOME/Pictures/"'),
},
directory3: {
label: opt('󱂵 Home'),
command: opt('bash -c "xdg-open $HOME/"'),
},
},
},
},
clock: {
time: {
military: opt(false),
hideSeconds: opt(false),
},
weather: {
enabled: opt(true),
interval: opt(60000),
unit: opt<UnitType>('imperial'),
location: opt('Los Angeles'),
key: opt<string>(
JSON.parse(Utils.readFile(`${App.configDir}/.weather.json`) || '{}')?.weather_api_key || '',
),
},
},
},
scalingPriority: opt<ScalingPriority>('gdk'),
terminal: opt('$TERM'),
tear: opt(false),
wallpaper: {
enable: opt(true),
image: opt(''),
pywal: opt(false),
},
notifications: {
position: opt<NotificationAnchor>('top right'),
ignore: opt<string[]>([]),
displayedTotal: opt(10),
monitor: opt(0),
active_monitor: opt(true),
showActionsOnHover: opt(false),
timeout: opt(7000),
cache_actions: opt(true),
clearDelay: opt(100),
},
hyprpanel: {
restartAgs: opt(true),
restartCommand: opt('ags -q; ags'),
},
dummy: opt(true),
});
globalThis['options'] = options;
export default options;