Files
custum-hyprpanel/widget/settings/pages/config/notifications/index.ts
Rubin Bhandari 3bc8c0d2e1 feature: remove delay when clearing all notifications (#342)
* feat: add setting option to control delay

* Update widget/settings/pages/config/notifications/index.ts

* Update widget/settings/pages/config/notifications/index.ts

* Update widget/settings/pages/config/notifications/index.ts

---------

Co-authored-by: Jas Singh <jaskiratpal.singh@outlook.com>
2024-10-21 01:50:49 -07:00

105 lines
4.4 KiB
TypeScript

import { Option } from 'widget/settings/shared/Option';
import { Header } from 'widget/settings/shared/Header';
import options from 'options';
import Scrollable from 'types/widgets/scrollable';
import { Attribute, Child } from 'lib/types/widget';
export const NotificationSettings = (): Scrollable<Child, Attribute> => {
return Widget.Scrollable({
vscroll: 'automatic',
child: Widget.Box({
class_name: 'bar-theme-page paged-container',
vertical: true,
children: [
Header('Notification Settings'),
Option({
opt: options.notifications.ignore,
title: 'Ignored Applications',
subtitle:
'Applications to ignore.\n' +
'Wiki: https://hyprpanel.com/configuration/notifications.html#ignored-applications',
subtitleLink: 'https://hyprpanel.com/configuration/notifications.html#ignored-applications',
type: 'object',
}),
Option({
opt: options.notifications.position,
title: 'Notification Location',
type: 'enum',
enums: ['top left', 'top', 'top right', 'right', 'bottom right', 'bottom', 'bottom left', 'left'],
}),
Option({
opt: options.theme.notification.border_radius,
title: 'Border Radius',
type: 'string',
}),
Option({
opt: options.notifications.monitor,
title: 'Monitor',
subtitle: 'The ID of the monitor on which to display the notification',
type: 'number',
}),
Option({
opt: options.notifications.active_monitor,
title: 'Follow Cursor',
subtitle: 'The notification will follow the monitor of your cursor',
type: 'boolean',
}),
Option({
opt: options.notifications.clearDelay,
title: 'Clear Delay',
subtitle:
'The delay in milliseconds before a notification is cleared' +
'\nWARNING: Setting this value too low may crash AGS depending on your system.',
type: 'number',
increment: 20,
}),
Option({
opt: options.notifications.timeout,
title: 'Notification Timeout',
subtitle: 'How long notification popups will last (in milliseconds).',
type: 'number',
}),
Option({
opt: options.notifications.cache_actions,
title: 'Preserve Actions',
subtitle: 'This will persist the action buttons of a notification after rebooting.',
type: 'boolean',
}),
Header('Notification Menu Settings'),
Option({
opt: options.theme.bar.menus.menu.notifications.height,
title: 'Notification Menu Height',
type: 'string',
}),
Option({
opt: options.notifications.displayedTotal,
title: 'Displayed Total',
subtitle:
'How many notifications to show in the menu at once.\n' +
'Newer notifications will display towards the top.',
type: 'number',
min: 1,
}),
Option({
opt: options.theme.bar.menus.menu.notifications.pager.show,
title: 'Show Pager',
subtitle: 'Shows the pagination footer at the bottom of the menu.',
type: 'boolean',
}),
Option({
opt: options.theme.bar.menus.menu.notifications.scrollbar.width,
title: 'Scrollbar Width',
type: 'string',
}),
Option({
opt: options.theme.bar.menus.menu.notifications.scrollbar.radius,
title: 'Scrollbar Radius',
type: 'string',
}),
],
}),
});
};