Added filters for notifications and system tray items. (#234)
* Added filters for notifications and systray. closes #233 * Add links to documentation.
This commit is contained in:
@@ -2,8 +2,10 @@ 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 Gtk from "types/@girs/gtk-3.0/gtk-3.0";
|
||||
|
||||
export const BarSettings = () => {
|
||||
export const BarSettings = (): Scrollable<Gtk.Widget, Gtk.Widget> => {
|
||||
return Widget.Scrollable({
|
||||
vscroll: "always",
|
||||
hscroll: "automatic",
|
||||
@@ -11,109 +13,423 @@ export const BarSettings = () => {
|
||||
child: Widget.Box({
|
||||
vertical: true,
|
||||
children: [
|
||||
Header('Layouts'),
|
||||
/*
|
||||
******************************
|
||||
* LAYOUTS *
|
||||
******************************
|
||||
*/
|
||||
Header("Layouts"),
|
||||
Option(
|
||||
{
|
||||
opt: options.bar.layouts,
|
||||
title: "Bar Layouts for Monitors",
|
||||
subtitle: "Wiki Link: https://hyprpanel.com/configuration/panel.html#layouts",
|
||||
type: "object",
|
||||
subtitleLink: "https://hyprpanel.com/configuration/panel.html#layouts",
|
||||
},
|
||||
"bar-layout-input"
|
||||
),
|
||||
|
||||
/*
|
||||
******************************
|
||||
* SPACING *
|
||||
******************************
|
||||
*/
|
||||
Header("Spacing"),
|
||||
Option({
|
||||
opt: options.bar.layouts,
|
||||
title: 'Bar Layouts for Monitors',
|
||||
subtitle: 'Wiki Link: https://hyprpanel.com/configuration/panel.html#layouts',
|
||||
type: 'object',
|
||||
subtitleLink: 'https://hyprpanel.com/configuration/panel.html#layouts'
|
||||
},
|
||||
'bar-layout-input'),
|
||||
opt: options.theme.bar.outer_spacing,
|
||||
title: "Outer Spacing",
|
||||
subtitle: "Spacing on the outer left and right edges of the bar.",
|
||||
type: "string",
|
||||
}),
|
||||
Option({
|
||||
opt: options.theme.bar.buttons.y_margins,
|
||||
title: "Vertical Margins",
|
||||
subtitle: "Spacing above/below the buttons in the bar.",
|
||||
type: "string",
|
||||
}),
|
||||
Option({
|
||||
opt: options.theme.bar.buttons.spacing,
|
||||
title: "Button Spacing",
|
||||
subtitle: "Spacing between the buttons in the bar.",
|
||||
type: "string",
|
||||
}),
|
||||
Option({
|
||||
opt: options.theme.bar.buttons.padding_x,
|
||||
title: "Button Horizontal Padding",
|
||||
type: "string",
|
||||
}),
|
||||
Option({
|
||||
opt: options.theme.bar.buttons.padding_y,
|
||||
title: "Button Vertical Padding",
|
||||
type: "string",
|
||||
}),
|
||||
Option({
|
||||
opt: options.theme.bar.buttons.radius,
|
||||
title: "Button Radius",
|
||||
type: "string",
|
||||
}),
|
||||
Option({
|
||||
opt: options.theme.bar.floating,
|
||||
title: "Floating Bar",
|
||||
type: "boolean",
|
||||
}),
|
||||
Option({
|
||||
opt: options.theme.bar.layer,
|
||||
title: "Layer",
|
||||
type: "enum",
|
||||
subtitle: "Layer determines the Z index of your bar.",
|
||||
enums: ["top", "bottom", "overlay", "background"],
|
||||
}),
|
||||
Option({
|
||||
opt: options.theme.bar.margin_top,
|
||||
title: "Margin Top",
|
||||
subtitle: "Only applies if floating is enabled",
|
||||
type: "string",
|
||||
}),
|
||||
Option({
|
||||
opt: options.theme.bar.margin_bottom,
|
||||
title: "Margin Bottom",
|
||||
subtitle: "Only applies if floating is enabled",
|
||||
type: "string",
|
||||
}),
|
||||
Option({
|
||||
opt: options.theme.bar.margin_sides,
|
||||
title: "Margin Sides",
|
||||
subtitle: "Only applies if floating is enabled",
|
||||
type: "string",
|
||||
}),
|
||||
Option({
|
||||
opt: options.theme.bar.border_radius,
|
||||
title: "Border Radius",
|
||||
subtitle: "Only applies if floating is enabled",
|
||||
type: "string",
|
||||
}),
|
||||
|
||||
Header('Spacing'),
|
||||
Option({ opt: options.theme.bar.outer_spacing, title: 'Outer Spacing', subtitle: 'Spacing on the outer left and right edges of the bar.', type: 'string' }),
|
||||
Option({ opt: options.theme.bar.buttons.y_margins, title: 'Vertical Margins', subtitle: 'Spacing above/below the buttons in the bar.', type: 'string' }),
|
||||
Option({ opt: options.theme.bar.buttons.spacing, title: 'Button Spacing', subtitle: 'Spacing between the buttons in the bar.', type: 'string' }),
|
||||
Option({ opt: options.theme.bar.buttons.padding_x, title: 'Button Horizontal Padding', type: 'string' }),
|
||||
Option({ opt: options.theme.bar.buttons.padding_y, title: 'Button Vertical Padding', type: 'string' }),
|
||||
Option({ opt: options.theme.bar.buttons.radius, title: 'Button Radius', type: 'string' }),
|
||||
Option({ opt: options.theme.bar.floating, title: 'Floating Bar', type: 'boolean' }),
|
||||
Option({ opt: options.theme.bar.layer, title: 'Layer', type: 'enum', subtitle: 'Layer determines the Z index of your bar.', enums: ["top", "bottom", "overlay", "background"] }),
|
||||
Option({ opt: options.theme.bar.margin_top, title: 'Margin Top', subtitle: 'Only applies if floating is enabled', type: 'string' }),
|
||||
Option({ opt: options.theme.bar.margin_bottom, title: 'Margin Bottom', subtitle: 'Only applies if floating is enabled', type: 'string' }),
|
||||
Option({ opt: options.theme.bar.margin_sides, title: 'Margin Sides', subtitle: 'Only applies if floating is enabled', type: 'string' }),
|
||||
Option({ opt: options.theme.bar.border_radius, title: 'Border Radius', subtitle: 'Only applies if floating is enabled', type: 'string' }),
|
||||
/*
|
||||
******************************
|
||||
* DASHBOARD *
|
||||
******************************
|
||||
*/
|
||||
Header("Dashboard"),
|
||||
Option({
|
||||
opt: options.bar.launcher.icon,
|
||||
title: "Dashboard Menu Icon",
|
||||
type: "string",
|
||||
}),
|
||||
|
||||
Header('Dashboard'),
|
||||
Option({ opt: options.bar.launcher.icon, title: 'Dashboard Menu Icon', type: 'string' }),
|
||||
|
||||
Header('Workspaces'),
|
||||
Option({ opt: options.bar.workspaces.show_icons, title: 'Show Workspace Icons', type: 'boolean' }),
|
||||
Option({ opt: options.bar.workspaces.icons.available, title: 'Workspace Available', type: 'string' }),
|
||||
Option({ opt: options.bar.workspaces.icons.active, title: 'Workspace Active', type: 'string' }),
|
||||
Option({ opt: options.bar.workspaces.icons.occupied, title: 'Workspace Occupied', type: 'string' }),
|
||||
Option({ opt: options.bar.workspaces.show_numbered, title: 'Show Workspace Numbers', type: 'boolean' }),
|
||||
Option({ opt: options.bar.workspaces.numbered_active_indicator, title: 'Numbered Workspace Identifier', subtitle: 'Only applicable if Workspace Numbers are enabled', type: 'enum', enums: ["underline", "highlight", "color"] }),
|
||||
Option({ opt: options.theme.bar.buttons.workspaces.numbered_active_highlight_border, title: 'Highlight Radius', subtitle: 'Only applicable if Workspace Numbers are enabled', type: 'string' }),
|
||||
Option({ opt: options.theme.bar.buttons.workspaces.numbered_active_highlight_padding, title: 'Highlight Padding', subtitle: 'Only applicable if Workspace Numbers are enabled', type: 'string' }),
|
||||
Option({ opt: options.bar.workspaces.spacing, title: 'Spacing', subtitle: 'Spacing between workspace icons', type: 'float' }),
|
||||
Option({ opt: options.bar.workspaces.workspaces, title: 'Total Workspaces', subtitle: 'The least amount of workspaces to always show.', type: 'number' }),
|
||||
Option({ opt: options.bar.workspaces.monitorSpecific, title: 'Monitor Specific', subtitle: 'Only workspaces applicable to the monitor will be displayed.\nWorks in conjuction with \'Total Workspaces\'.', type: 'boolean' }),
|
||||
Option({ opt: options.bar.workspaces.hideUnoccupied, title: 'Hide Unoccupied', subtitle: 'Only show workspaces that are occupied or active', type: 'boolean' }),
|
||||
/*
|
||||
******************************
|
||||
* WORKSPACES *
|
||||
******************************
|
||||
*/
|
||||
Header("Workspaces"),
|
||||
Option({
|
||||
opt: options.bar.workspaces.show_icons,
|
||||
title: "Show Workspace Icons",
|
||||
type: "boolean",
|
||||
}),
|
||||
Option({
|
||||
opt: options.bar.workspaces.icons.available,
|
||||
title: "Workspace Available",
|
||||
type: "string",
|
||||
}),
|
||||
Option({
|
||||
opt: options.bar.workspaces.icons.active,
|
||||
title: "Workspace Active",
|
||||
type: "string",
|
||||
}),
|
||||
Option({
|
||||
opt: options.bar.workspaces.icons.occupied,
|
||||
title: "Workspace Occupied",
|
||||
type: "string",
|
||||
}),
|
||||
Option({
|
||||
opt: options.bar.workspaces.show_numbered,
|
||||
title: "Show Workspace Numbers",
|
||||
type: "boolean",
|
||||
}),
|
||||
Option({
|
||||
opt: options.bar.workspaces.numbered_active_indicator,
|
||||
title: "Numbered Workspace Identifier",
|
||||
subtitle: "Only applicable if Workspace Numbers are enabled",
|
||||
type: "enum",
|
||||
enums: ["underline", "highlight", "color"],
|
||||
}),
|
||||
Option({
|
||||
opt: options.theme.bar.buttons.workspaces.numbered_active_highlight_border,
|
||||
title: "Highlight Radius",
|
||||
subtitle: "Only applicable if Workspace Numbers are enabled",
|
||||
type: "string",
|
||||
}),
|
||||
Option({
|
||||
opt: options.theme.bar.buttons.workspaces.numbered_active_highlight_padding,
|
||||
title: "Highlight Padding",
|
||||
subtitle: "Only applicable if Workspace Numbers are enabled",
|
||||
type: "string",
|
||||
}),
|
||||
Option({
|
||||
opt: options.bar.workspaces.spacing,
|
||||
title: "Spacing",
|
||||
subtitle: "Spacing between workspace icons",
|
||||
type: "float",
|
||||
}),
|
||||
Option({
|
||||
opt: options.bar.workspaces.workspaces,
|
||||
title: "Total Workspaces",
|
||||
subtitle: "The least amount of workspaces to always show.",
|
||||
type: "number",
|
||||
}),
|
||||
Option({
|
||||
opt: options.bar.workspaces.monitorSpecific,
|
||||
title: "Monitor Specific",
|
||||
subtitle:
|
||||
"Only workspaces applicable to the monitor will be displayed.\n" +
|
||||
"Works in conjuction with 'Total Workspaces'.",
|
||||
type: "boolean",
|
||||
}),
|
||||
Option({
|
||||
opt: options.bar.workspaces.hideUnoccupied,
|
||||
title: "Hide Unoccupied",
|
||||
subtitle: "Only show workspaces that are occupied or active",
|
||||
type: "boolean",
|
||||
}),
|
||||
Option({
|
||||
opt: options.bar.workspaces.workspaceMask,
|
||||
title: 'Mask Workspace Numbers On Monitors',
|
||||
|
||||
subtitle: `Only applicable if Workspace Numbers and Monitor Specific are enabled.
|
||||
Forces each Monitor's Workspace labels to start from 1.`,
|
||||
type: 'boolean'
|
||||
title: "Mask Workspace Numbers On Monitors",
|
||||
subtitle: "Only applicable if Workspace Numbers and Monitor Specific are enabled.\n" +
|
||||
"Forces each Monitor's Workspace labels to start from 1.",
|
||||
type: "boolean",
|
||||
}),
|
||||
Option({
|
||||
opt: options.bar.workspaces.reverse_scroll,
|
||||
title: "Invert Scroll",
|
||||
subtitle: "Scrolling up will go to the previous workspace rather than the next.",
|
||||
type: "boolean",
|
||||
}),
|
||||
Option({
|
||||
opt: options.bar.workspaces.scroll_speed,
|
||||
title: "Scrolling Speed",
|
||||
type: "number",
|
||||
}),
|
||||
Option({ opt: options.bar.workspaces.reverse_scroll, title: 'Invert Scroll', subtitle: 'Scrolling up will go to the previous workspace rather than the next.', type: 'boolean' }),
|
||||
Option({ opt: options.bar.workspaces.scroll_speed, title: 'Scrolling Speed', type: 'number' }),
|
||||
|
||||
Header('Window Titles'),
|
||||
Option({ opt: options.bar.windowtitle.label, title: 'Show Window Title Label', type: 'boolean' }),
|
||||
Option({ opt: options.theme.bar.buttons.windowtitle.spacing, title: 'Inner Spacing', subtitle: 'Spacing between the icon and the label inside the buttons.', type: 'string' }),
|
||||
/*
|
||||
******************************
|
||||
* WINDOW TITLES *
|
||||
******************************
|
||||
*/
|
||||
Header("Window Titles"),
|
||||
Option({
|
||||
opt: options.bar.windowtitle.label,
|
||||
title: "Show Window Title Label",
|
||||
type: "boolean",
|
||||
}),
|
||||
Option({
|
||||
opt: options.theme.bar.buttons.windowtitle.spacing,
|
||||
title: "Inner Spacing",
|
||||
subtitle: "Spacing between the icon and the label inside the buttons.",
|
||||
type: "string",
|
||||
}),
|
||||
Option({
|
||||
opt: options.bar.windowtitle.title_map,
|
||||
title: 'Window Title Mappings',
|
||||
subtitle: 'Wiki Link: https://hyprpanel.com/configuration/panel.html#window-title-mappings',
|
||||
type: 'object',
|
||||
subtitleLink: 'https://hyprpanel.com/configuration/panel.html#window-title-mappings'
|
||||
title: "Window Title Mappings",
|
||||
subtitle: "Wiki Link: https://hyprpanel.com/configuration/panel.html#window-title-mappings",
|
||||
type: "object",
|
||||
subtitleLink: "https://hyprpanel.com/configuration/panel.html#window-title-mappings",
|
||||
}),
|
||||
|
||||
Header('Volume'),
|
||||
Option({ opt: options.bar.volume.label, title: 'Show Volume Percentage', type: 'boolean' }),
|
||||
Option({ opt: options.theme.bar.buttons.volume.spacing, title: 'Inner Spacing', subtitle: 'Spacing between the icon and the label inside the buttons.', type: 'string' }),
|
||||
/*
|
||||
******************************
|
||||
* VOLUME *
|
||||
******************************
|
||||
*/
|
||||
Header("Volume"),
|
||||
Option({
|
||||
opt: options.bar.volume.label,
|
||||
title: "Show Volume Percentage",
|
||||
type: "boolean",
|
||||
}),
|
||||
Option({
|
||||
opt: options.theme.bar.buttons.volume.spacing,
|
||||
title: "Inner Spacing",
|
||||
subtitle: "Spacing between the icon and the label inside the buttons.",
|
||||
type: "string",
|
||||
}),
|
||||
|
||||
Header('Network'),
|
||||
Option({ opt: options.bar.network.label, title: 'Show Network Name', type: 'boolean' }),
|
||||
Option({ opt: options.bar.network.truncation, title: 'Truncate Network Name', subtitle: 'Will truncate the network name to the specified size below.', type: 'boolean' }),
|
||||
Option({ opt: options.bar.network.truncation_size, title: 'Truncation Size', type: 'number' }),
|
||||
Option({ opt: options.theme.bar.buttons.network.spacing, title: 'Inner Spacing', subtitle: 'Spacing between the icon and the label inside the buttons.', type: 'string' }),
|
||||
/*
|
||||
******************************
|
||||
* NETWORK *
|
||||
******************************
|
||||
*/
|
||||
Header("Network"),
|
||||
Option({
|
||||
opt: options.bar.network.label,
|
||||
title: "Show Network Name",
|
||||
type: "boolean",
|
||||
}),
|
||||
Option({
|
||||
opt: options.bar.network.truncation,
|
||||
title: "Truncate Network Name",
|
||||
subtitle: "Will truncate the network name to the specified size below.",
|
||||
type: "boolean",
|
||||
}),
|
||||
Option({
|
||||
opt: options.bar.network.truncation_size,
|
||||
title: "Truncation Size",
|
||||
type: "number",
|
||||
}),
|
||||
Option({
|
||||
opt: options.theme.bar.buttons.network.spacing,
|
||||
title: "Inner Spacing",
|
||||
subtitle: "Spacing between the icon and the label inside the buttons.",
|
||||
type: "string",
|
||||
}),
|
||||
|
||||
Header('Bluetooth'),
|
||||
Option({ opt: options.bar.bluetooth.label, title: 'Show Bluetooth Label', type: 'boolean' }),
|
||||
Option({ opt: options.theme.bar.buttons.bluetooth.spacing, title: 'Inner Spacing', subtitle: 'Spacing between the icon and the label inside the buttons.', type: 'string' }),
|
||||
/*
|
||||
******************************
|
||||
* BLUETOOTH *
|
||||
******************************
|
||||
*/
|
||||
Header("Bluetooth"),
|
||||
Option({
|
||||
opt: options.bar.bluetooth.label,
|
||||
title: "Show Bluetooth Label",
|
||||
type: "boolean",
|
||||
}),
|
||||
Option({
|
||||
opt: options.theme.bar.buttons.bluetooth.spacing,
|
||||
title: "Inner Spacing",
|
||||
subtitle: "Spacing between the icon and the label inside the buttons.",
|
||||
type: "string",
|
||||
}),
|
||||
|
||||
Header('Battery'),
|
||||
Option({ opt: options.bar.battery.label, title: 'Show Battery Percentage', type: 'boolean' }),
|
||||
Option({ opt: options.theme.bar.buttons.battery.spacing, title: 'Inner Spacing', subtitle: 'Spacing between the icon and the label inside the buttons.', type: 'string' }),
|
||||
/*
|
||||
******************************
|
||||
* BATTERY *
|
||||
******************************
|
||||
*/
|
||||
Header("Battery"),
|
||||
Option({
|
||||
opt: options.bar.battery.label,
|
||||
title: "Show Battery Percentage",
|
||||
type: "boolean",
|
||||
}),
|
||||
Option({
|
||||
opt: options.theme.bar.buttons.battery.spacing,
|
||||
title: "Inner Spacing",
|
||||
subtitle: "Spacing between the icon and the label inside the buttons.",
|
||||
type: "string",
|
||||
}),
|
||||
|
||||
// Header('System Tray'),
|
||||
// TODO: Figure out how to handle arrays
|
||||
// Option({ opt: options.bar.systray.ignore, title: 'Ignore', subtitle: 'Comma separated string of apps to ignore in the tray', type: 'string' }),
|
||||
/*
|
||||
******************************
|
||||
* SYSTEM TRAY *
|
||||
******************************
|
||||
*/
|
||||
Header("System Tray"),
|
||||
Option({
|
||||
opt: options.bar.systray.ignore,
|
||||
title: "Ignore List",
|
||||
subtitle:
|
||||
"An array of applications to prevent from showing in the system tray.\n" +
|
||||
"Wiki: https://hyprpanel.com/configuration/panel.html#system-tray",
|
||||
subtitleLink: "https://hyprpanel.com/configuration/panel.html#system-tray",
|
||||
type: "object",
|
||||
}),
|
||||
|
||||
Header('Clock'),
|
||||
Option({ opt: options.bar.clock.format, title: 'Clock Format', type: 'string' }),
|
||||
Option({ opt: options.bar.clock.icon, title: 'Icon', type: 'string' }),
|
||||
Option({ opt: options.bar.clock.showIcon, title: 'Show Icon', type: 'boolean' }),
|
||||
Option({ opt: options.bar.clock.showTime, title: 'Show Time', type: 'boolean' }),
|
||||
Option({ opt: options.theme.bar.buttons.clock.spacing, title: 'Inner Spacing', subtitle: 'Spacing between the icon and the label inside the buttons.', type: 'string' }),
|
||||
/*
|
||||
******************************
|
||||
* CLOCK *
|
||||
******************************
|
||||
*/
|
||||
Header("Clock"),
|
||||
Option({
|
||||
opt: options.bar.clock.format,
|
||||
title: "Clock Format",
|
||||
type: "string",
|
||||
}),
|
||||
Option({
|
||||
opt: options.bar.clock.icon,
|
||||
title: "Icon",
|
||||
type: "string",
|
||||
}),
|
||||
Option({
|
||||
opt: options.bar.clock.showIcon,
|
||||
title: "Show Icon",
|
||||
type: "boolean",
|
||||
}),
|
||||
Option({
|
||||
opt: options.bar.clock.showTime,
|
||||
title: "Show Time",
|
||||
type: "boolean",
|
||||
}),
|
||||
Option({
|
||||
opt: options.theme.bar.buttons.clock.spacing,
|
||||
title: "Inner Spacing",
|
||||
subtitle: "Spacing between the icon and the label inside the buttons.",
|
||||
type: "string",
|
||||
}),
|
||||
|
||||
Header('Media'),
|
||||
Option({ opt: options.theme.bar.buttons.media.spacing, title: 'Inner Spacing', subtitle: 'Spacing between the icon and the label inside the buttons.', type: 'string' }),
|
||||
Option({ opt: options.bar.media.show_artist, title: 'Show Track Artist', type: 'boolean' }),
|
||||
Option({ opt: options.bar.media.show_label, title: 'Toggle Media Label', type: 'boolean' }),
|
||||
Option({ opt: options.bar.media.truncation, title: 'Truncate Media Label', subtitle: 'Only applicable if Toggle Media Label is enabled', type: 'boolean' }),
|
||||
Option({ opt: options.bar.media.truncation_size, title: 'Truncation Size', subtitle: 'Only applicable if Toggle Media Label is enabled', type: 'number', min: 10 }),
|
||||
Option({ opt: options.bar.media.show_active_only, title: 'Auto Hide', subtitle: 'Button will automatically hide if no media is detected.', type: 'boolean' }),
|
||||
/*
|
||||
******************************
|
||||
* MEDIA *
|
||||
******************************
|
||||
*/
|
||||
Header("Media"),
|
||||
Option({
|
||||
opt: options.theme.bar.buttons.media.spacing,
|
||||
title: "Inner Spacing",
|
||||
subtitle: "Spacing between the icon and the label inside the buttons.",
|
||||
type: "string",
|
||||
}),
|
||||
Option({
|
||||
opt: options.bar.media.show_artist,
|
||||
title: "Show Track Artist",
|
||||
type: "boolean",
|
||||
}),
|
||||
Option({
|
||||
opt: options.bar.media.show_label,
|
||||
title: "Toggle Media Label",
|
||||
type: "boolean",
|
||||
}),
|
||||
Option({
|
||||
opt: options.bar.media.truncation,
|
||||
title: "Truncate Media Label",
|
||||
subtitle: "Only applicable if Toggle Media Label is enabled",
|
||||
type: "boolean",
|
||||
}),
|
||||
Option({
|
||||
opt: options.bar.media.truncation_size,
|
||||
title: "Truncation Size",
|
||||
subtitle: "Only applicable if Toggle Media Label is enabled",
|
||||
type: "number",
|
||||
min: 10,
|
||||
}),
|
||||
Option({
|
||||
opt: options.bar.media.show_active_only,
|
||||
title: "Auto Hide",
|
||||
subtitle: "Button will automatically hide if no media is detected.",
|
||||
type: "boolean",
|
||||
}),
|
||||
|
||||
Header('Notifications'),
|
||||
Option({ opt: options.bar.notifications.show_total, title: 'Show Total # of notifications', type: 'boolean' }),
|
||||
Option({ opt: options.theme.bar.buttons.notifications.spacing, title: 'Inner Spacing', subtitle: 'Spacing between the icon and the label inside the buttons.', type: 'string' }),
|
||||
]
|
||||
})
|
||||
})
|
||||
}
|
||||
/*
|
||||
******************************
|
||||
* NOTIFICATIONS *
|
||||
******************************
|
||||
*/
|
||||
Header("Notifications"),
|
||||
Option({
|
||||
opt: options.bar.notifications.show_total,
|
||||
title: "Show Total # of notifications",
|
||||
type: "boolean",
|
||||
}),
|
||||
Option({
|
||||
opt: options.theme.bar.buttons.notifications.spacing,
|
||||
title: "Inner Spacing",
|
||||
subtitle: "Spacing between the icon and the label inside the buttons.",
|
||||
type: "string",
|
||||
}),
|
||||
],
|
||||
}),
|
||||
});
|
||||
};
|
||||
|
||||
@@ -2,29 +2,94 @@ 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 Gtk from "types/@girs/gtk-3.0/gtk-3.0";
|
||||
|
||||
export const NotificationSettings = () => {
|
||||
export const NotificationSettings = (): Scrollable<Gtk.Widget, Gtk.Widget> => {
|
||||
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.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.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 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",
|
||||
enums: ["top left", "top", "top right", "right", "bottom right", "bottom", "bottom left", "left"],
|
||||
}),
|
||||
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.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",
|
||||
}),
|
||||
],
|
||||
}),
|
||||
});
|
||||
};
|
||||
|
||||
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.\nNewer 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' }),
|
||||
]
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user