diff --git a/quickshell/Modules/DankBar/CenterSection.qml b/quickshell/Modules/DankBar/CenterSection.qml index fbaab9a87..0149a0532 100644 --- a/quickshell/Modules/DankBar/CenterSection.qml +++ b/quickshell/Modules/DankBar/CenterSection.qml @@ -29,6 +29,8 @@ Item { property var centerWidgets: [] property int totalWidgets: 0 property real totalSize: 0 + property real contentStart: 0 + property real contentSize: 0 function updateLayout() { if (SettingsData.centeringMode === "geometric") { @@ -36,6 +38,25 @@ Item { } else { applyIndexLayout(); } + updateContentExtent(); + } + + function updateContentExtent() { + if (centerWidgets.length === 0) { + contentStart = 0; + contentSize = 0; + return; + } + let start = Infinity; + let end = -Infinity; + for (const widget of centerWidgets) { + const pos = isVertical ? widget.y : widget.x; + const size = isVertical ? widget.height : widget.width; + start = Math.min(start, pos); + end = Math.max(end, pos + size); + } + contentStart = start; + contentSize = end - start; } function applyGeometricLayout() { diff --git a/quickshell/Modules/DankBar/DankBarWindow.qml b/quickshell/Modules/DankBar/DankBarWindow.qml index 2a6eb16e2..ff8efc643 100644 --- a/quickshell/Modules/DankBar/DankBarWindow.qml +++ b/quickshell/Modules/DankBar/DankBarWindow.qml @@ -833,16 +833,30 @@ PanelWindow { const pos = section.mapToItem(barWindow.contentItem, 0, 0); const implW = section.implicitWidth || 0; const implH = section.implicitHeight || 0; + const contentSize = isCenter ? (section.contentSize || 0) : 0; - const offsetX = isCenter && !barWindow.isVertical ? (section.width - implW) / 2 : 0; - const offsetY = !barWindow.isVertical ? (section.height - implH) / 2 : (isCenter ? (section.height - implH) / 2 : 0); + let offsetX = isCenter && !barWindow.isVertical ? (section.width - implW) / 2 : 0; + let offsetY = !barWindow.isVertical ? (section.height - implH) / 2 : (isCenter ? (section.height - implH) / 2 : 0); + let w = implW; + let h = implH; + + // index centering lays content out asymmetrically; use the real extent + if (contentSize > 0) { + if (barWindow.isVertical) { + offsetY = section.contentStart; + h = contentSize; + } else { + offsetX = section.contentStart; + w = contentSize; + } + } const edgePad = 2; return { "x": pos.x + offsetX - edgePad, "y": pos.y + offsetY - edgePad, - "w": implW + edgePad * 2, - "h": implH + edgePad * 2 + "w": w + edgePad * 2, + "h": h + edgePad * 2 }; } diff --git a/quickshell/Modules/Settings/AutoStartTab.qml b/quickshell/Modules/Settings/AutoStartTab.qml index 1e388bd53..f981d0696 100644 --- a/quickshell/Modules/Settings/AutoStartTab.qml +++ b/quickshell/Modules/Settings/AutoStartTab.qml @@ -375,6 +375,8 @@ Item { visible: DesktopService.autostartAvailable SettingsCard { + settingKey: "autostartAddEntry" + tags: ["autostart", "add", "entry", "command", "startup"] width: parent.width iconName: "add_circle" title: I18n.tr("Add Entry") @@ -764,6 +766,8 @@ Item { } SettingsCard { + settingKey: "autostartTrayIconFix" + tags: ["tray", "icons", "fix", "systemd"] width: parent.width iconName: "handyman" title: I18n.tr("Tray Icon Fix") diff --git a/quickshell/Modules/Settings/DankBarTab.qml b/quickshell/Modules/Settings/DankBarTab.qml index 1d0bbf2ee..2ff0a72fd 100644 --- a/quickshell/Modules/Settings/DankBarTab.qml +++ b/quickshell/Modules/Settings/DankBarTab.qml @@ -463,6 +463,7 @@ Item { } SettingsCard { + settingKey: "barEnable" iconName: selectedBarConfig?.enabled ? "visibility" : "visibility_off" title: I18n.tr("Enable Bar") visible: !dankBarTab.appearanceOnly && selectedBarId !== "default" @@ -651,6 +652,8 @@ Item { visible: !dankBarTab.appearanceOnly && selectedBarConfig?.enabled SettingsToggleRow { + settingKey: "barAutoHide" + tags: ["autohide", "auto-hide", "reveal", "intellihide"] text: I18n.tr("Auto-hide") description: I18n.tr("Automatically hide the bar when the pointer moves away") checked: selectedBarConfig?.autoHide ?? false @@ -700,6 +703,8 @@ Item { } SettingsToggleRow { + settingKey: "barAutoHideStrict" + tags: ["autohide", "strict", "popout"] width: parent.width - parent.leftPadding text: I18n.tr("Strict auto-hide", "Dank bar setting: hide the bar when the pointer leaves even if a menu or bar popover is still open") description: I18n.tr("Hide the bar when the pointer leaves even if a popout is still open") @@ -713,6 +718,8 @@ Item { } SettingsToggleRow { + settingKey: "barHideWhenWindowsOpen" + tags: ["hide", "windows", "empty", "workspace"] width: parent.width - parent.leftPadding visible: CompositorService.isNiri || CompositorService.isHyprland || CompositorService.isMango text: I18n.tr("Hide When Windows Open") @@ -734,6 +741,8 @@ Item { } SettingsToggleRow { + settingKey: "barManualVisibility" + tags: ["manual", "show", "hide", "ipc", "toggle"] text: I18n.tr("Manual Show/Hide") description: I18n.tr("Toggle bar visibility manually via IPC") checked: selectedBarConfig?.visible ?? true @@ -753,6 +762,8 @@ Item { } SettingsToggleRow { + settingKey: "barClickThrough" + tags: ["clickthrough", "click", "through", "mouse", "input", "mask", "passthrough"] text: I18n.tr("Click Through") description: I18n.tr("Mouse clicks pass through the bar to windows behind it") checked: selectedBarConfig?.clickThrough ?? false @@ -910,6 +921,8 @@ Item { SettingsSliderRow { id: exclusiveZoneSlider + settingKey: "barExclusiveZone" + tags: ["exclusive", "zone", "reserved", "offset"] visible: !SettingsData.frameEnabled text: I18n.tr("Exclusive Zone Offset") description: I18n.tr("Fine-tune the space reserved for the bar from the screen edge") @@ -933,6 +946,8 @@ Item { SettingsSliderRow { id: sizeSlider + settingKey: "barSize" + tags: ["size", "thickness", "height", "inner"] visible: !SettingsData.frameEnabled text: I18n.tr("Size") description: I18n.tr("Adjust the bar height via inner padding") @@ -1154,6 +1169,8 @@ Item { } SettingsToggleRow { + settingKey: "barSquareCorners" + tags: ["square", "corners", "rounding"] text: I18n.tr("Square Corners") description: I18n.tr("Remove corner rounding from the bar") visible: !SettingsData.frameEnabled @@ -1164,6 +1181,8 @@ Item { } SettingsToggleRow { + settingKey: "barNoBackground" + tags: ["transparent", "background", "invisible"] text: I18n.tr("No Background") description: I18n.tr("Make the bar background fully transparent") visible: !SettingsData.frameEnabled @@ -1174,6 +1193,8 @@ Item { } SettingsToggleRow { + settingKey: "barMaximizeWidgetIcons" + tags: ["maximize", "icons", "stretch"] text: I18n.tr("Maximize Widget Icons") description: I18n.tr("Stretch widget icons to fill the available bar height") checked: selectedBarConfig?.maximizeWidgetIcons ?? false @@ -1183,6 +1204,8 @@ Item { } SettingsToggleRow { + settingKey: "barMaximizeWidgetText" + tags: ["maximize", "text", "stretch"] text: I18n.tr("Maximize Widget Text") description: I18n.tr("Stretch widget text to fill the available bar height") checked: selectedBarConfig?.maximizeWidgetText ?? false @@ -1192,6 +1215,8 @@ Item { } SettingsToggleRow { + settingKey: "barRemoveWidgetPadding" + tags: ["padding", "compact", "widgets"] text: I18n.tr("Remove Widget Padding") description: I18n.tr("Remove inner padding from all widgets") checked: selectedBarConfig?.removeWidgetPadding ?? false @@ -1208,6 +1233,8 @@ Item { } SettingsToggleRow { + settingKey: "barGothCorners" + tags: ["goth", "corners", "concave", "cutout"] text: I18n.tr("Goth Corners") description: I18n.tr("Apply inverse concave corner cutouts to the bar") visible: !SettingsData.frameEnabled @@ -1302,6 +1329,8 @@ Item { } SettingsToggleCard { + settingKey: "barMaximizeDetection" + tags: ["maximize", "gaps", "border", "fullscreen"] iconName: "fit_screen" title: I18n.tr("Maximize Detection") description: I18n.tr("Remove gaps and border when windows are maximized") @@ -1847,6 +1876,8 @@ Item { SettingsToggleCard { iconName: "mouse" + settingKey: "barScrollWheel" + tags: ["scroll", "wheel", "workspace", "axis"] title: I18n.tr("Scroll Wheel") description: I18n.tr("Control workspaces and columns by scrolling on the bar") visible: !dankBarTab.appearanceOnly && selectedBarConfig?.enabled diff --git a/quickshell/Modules/Settings/DefaultAppsTab.qml b/quickshell/Modules/Settings/DefaultAppsTab.qml index dbf9895ae..3a47d39d2 100644 --- a/quickshell/Modules/Settings/DefaultAppsTab.qml +++ b/quickshell/Modules/Settings/DefaultAppsTab.qml @@ -267,6 +267,8 @@ Item { spacing: Theme.spacingXL SettingsCard { + settingKey: "defaultAppsInternet" + tags: ["browser", "mail", "email", "web"] title: I18n.tr("Internet", "Internet") iconName: "public" @@ -293,6 +295,8 @@ Item { } SettingsCard { + settingKey: "defaultAppsUtilities" + tags: ["file", "manager", "terminal", "editor"] title: I18n.tr("Utilities", "Utilities") iconName: "terminal" @@ -317,6 +321,8 @@ Item { } SettingsCard { + settingKey: "defaultAppsDocuments" + tags: ["pdf", "text", "reader", "office"] title: I18n.tr("Documents", "Documents") iconName: "edit_document" @@ -335,6 +341,8 @@ Item { } SettingsCard { + settingKey: "defaultAppsMultimedia" + tags: ["image", "video", "music", "viewer", "player"] title: I18n.tr("Multimedia", "Multimedia") iconName: "movie" AppSelector { diff --git a/quickshell/Modules/Settings/DesktopWidgetsTab.qml b/quickshell/Modules/Settings/DesktopWidgetsTab.qml index 31f982108..465707946 100644 --- a/quickshell/Modules/Settings/DesktopWidgetsTab.qml +++ b/quickshell/Modules/Settings/DesktopWidgetsTab.qml @@ -166,6 +166,8 @@ Item { spacing: Theme.spacingXL SettingsCard { + settingKey: "desktopWidgetsManage" + tags: ["desktop", "widgets", "clock", "conky"] width: parent.width iconName: "widgets" title: I18n.tr("Desktop Widgets") @@ -203,6 +205,8 @@ Item { } SettingsCard { + settingKey: "desktopWidgetGroups" + tags: ["groups", "profiles", "layouts"] width: parent.width iconName: "folder" title: I18n.tr("Groups") diff --git a/quickshell/Modules/Settings/DockTab.qml b/quickshell/Modules/Settings/DockTab.qml index b5ab3f196..b646ac1c6 100644 --- a/quickshell/Modules/Settings/DockTab.qml +++ b/quickshell/Modules/Settings/DockTab.qml @@ -618,6 +618,8 @@ Item { } SettingsSliderRow { + settingKey: "dockExclusiveZone" + tags: ["exclusive", "zone", "reserved", "offset"] text: I18n.tr("Exclusive Zone Offset") visible: !root.connectedFrameModeActive || root.connectedPersistentDockActive value: SettingsData.dockBottomGap diff --git a/quickshell/Modules/Settings/MediaPlayerTab.qml b/quickshell/Modules/Settings/MediaPlayerTab.qml index 868d0f709..9b86bf920 100644 --- a/quickshell/Modules/Settings/MediaPlayerTab.qml +++ b/quickshell/Modules/Settings/MediaPlayerTab.qml @@ -38,6 +38,8 @@ Item { settingKey: "mediaPlayer" SettingsToggleRow { + settingKey: "mediaWaveProgress" + tags: ["wave", "progress", "animated"] text: I18n.tr("Wave Progress Bars") description: I18n.tr("Use animated wave progress bars for media playback") checked: SettingsData.waveProgressEnabled @@ -45,6 +47,8 @@ Item { } SettingsToggleRow { + settingKey: "mediaScrollTitle" + tags: ["scroll", "title", "marquee"] text: I18n.tr("Scroll song title") description: I18n.tr("Scroll title if it doesn't fit in widget") checked: SettingsData.scrollTitleEnabled @@ -52,6 +56,8 @@ Item { } SettingsToggleRow { + settingKey: "mediaVisualizer" + tags: ["visualizer", "cava", "spectrum"] text: I18n.tr("Audio Visualizer") description: I18n.tr("Show cava audio visualizer in media widget") checked: SettingsData.audioVisualizerEnabled @@ -59,6 +65,8 @@ Item { } SettingsToggleRow { + settingKey: "mediaAdaptiveWidth" + tags: ["adaptive", "width", "shrink"] text: I18n.tr("Adaptive Media Width") description: I18n.tr("Shrink the media widget to fit shorter song titles while still respecting the configured maximum size") checked: SettingsData.mediaAdaptiveWidthEnabled @@ -66,6 +74,8 @@ Item { } SettingsToggleRow { + settingKey: "mediaAlbumArtAccent" + tags: ["album", "art", "accent", "colors"] text: I18n.tr("Use album art accent") description: I18n.tr("Use colors extracted from album art instead of system theme colors") checked: SettingsData.mediaUseAlbumArtAccent @@ -136,6 +146,8 @@ Item { } SettingsToggleRow { + settingKey: "mediaDeviceScrollVolume" + tags: ["device", "scroll", "volume"] text: I18n.tr("Device list scroll volume") description: I18n.tr("Allow adjusting device volume by scrolling on the right half of items in the device list") checked: SettingsData.audioDeviceScrollVolumeEnabled diff --git a/quickshell/Modules/Settings/MuxTab.qml b/quickshell/Modules/Settings/MuxTab.qml index 0ad90c99d..5487f04cc 100644 --- a/quickshell/Modules/Settings/MuxTab.qml +++ b/quickshell/Modules/Settings/MuxTab.qml @@ -81,6 +81,7 @@ Item { SettingsCard { tab: "mux" tags: ["mux", "session", "filter", "exclude", "hide"] + settingKey: "muxSessionFilter" title: I18n.tr("Session Filter") iconName: "filter_list" diff --git a/quickshell/Modules/Settings/SystemUpdaterTab.qml b/quickshell/Modules/Settings/SystemUpdaterTab.qml index 67dedba2b..a8c4edd81 100644 --- a/quickshell/Modules/Settings/SystemUpdaterTab.qml +++ b/quickshell/Modules/Settings/SystemUpdaterTab.qml @@ -89,6 +89,8 @@ Item { } SettingsDropdownRow { + settingKey: "systemUpdaterCheckInterval" + tags: ["interval", "poll", "frequency"] text: I18n.tr("Check interval") description: I18n.tr("How often the server polls for new updates.") options: root.intervalOptions.map(o => o.label).concat([root.customIntervalLabel]) @@ -157,6 +159,8 @@ Item { } SettingsToggleRow { + settingKey: "systemUpdaterCheckOnStart" + tags: ["startup", "check", "boot"] text: I18n.tr("Check on startup") description: I18n.tr("When enabled, checks updates on startup. When disabled, only the interval above or a manual refresh runs a check.") checked: SettingsData.updaterCheckOnStart @@ -164,6 +168,8 @@ Item { } SettingsToggleRow { + settingKey: "systemUpdaterFlatpak" + tags: ["flatpak", "include"] text: I18n.tr("Include Flatpak updates") description: I18n.tr("Apply Flatpak updates alongside system updates when running 'Update All'.") visible: (SystemUpdateService.backends || []).some(b => b.repo === "flatpak") @@ -172,6 +178,8 @@ Item { } SettingsToggleRow { + settingKey: "systemUpdaterAUR" + tags: ["aur", "paru", "yay"] text: I18n.tr("Include AUR updates") description: I18n.tr("Run paru/yay with AUR enabled when 'Update All' is clicked.") visible: (SystemUpdateService.backends || []).some(b => b.id === "paru" || b.id === "yay") @@ -328,6 +336,8 @@ Item { settingKey: "systemUpdaterAdvanced" SettingsToggleRow { + settingKey: "systemUpdaterCustomCommand" + tags: ["custom", "command", "terminal"] text: I18n.tr("Use Custom Command") description: I18n.tr("Open a terminal and run a custom command instead of the in-shell upgrade flow.") checked: SettingsData.updaterUseCustomCommand diff --git a/quickshell/translations/settings_search_index.json b/quickshell/translations/settings_search_index.json index c7a51c775..7511e6211 100644 --- a/quickshell/translations/settings_search_index.json +++ b/quickshell/translations/settings_search_index.json @@ -756,6 +756,31 @@ "icon": "keyboard", "conditionKey": "keybindsAvailable" }, + { + "section": "barAutoHide", + "label": "Auto-hide", + "tabIndex": 3, + "category": "Dank Bar", + "keywords": [ + "auto", + "auto-hide", + "autohide", + "automatically", + "away", + "bar", + "dank", + "hide", + "intellihide", + "moves", + "panel", + "pointer", + "reveal", + "statusbar", + "taskbar", + "topbar" + ], + "description": "Automatically hide the bar when the pointer moves away" + }, { "section": "barConfigurations", "label": "Bar Configurations", @@ -775,6 +800,32 @@ ], "icon": "dashboard" }, + { + "section": "barClickThrough", + "label": "Click Through", + "tabIndex": 3, + "category": "Dank Bar", + "keywords": [ + "bar", + "behind", + "click", + "clicks", + "clickthrough", + "dank", + "input", + "mask", + "mouse", + "panel", + "pass", + "passthrough", + "statusbar", + "taskbar", + "through", + "topbar", + "windows" + ], + "description": "Mouse clicks pass through the bar to windows behind it" + }, { "section": "barDisplay", "label": "Display Assignment", @@ -794,6 +845,207 @@ ], "icon": "display_settings" }, + { + "section": "barEnable", + "label": "Enable Bar", + "tabIndex": 3, + "category": "Dank Bar", + "keywords": [ + "bar", + "dank", + "enable", + "panel", + "statusbar", + "taskbar", + "topbar" + ] + }, + { + "section": "barExclusiveZone", + "label": "Exclusive Zone Offset", + "tabIndex": 3, + "category": "Dank Bar", + "keywords": [ + "bar", + "dank", + "edge", + "exclusive", + "fine", + "offset", + "panel", + "reserved", + "screen", + "space", + "statusbar", + "taskbar", + "topbar", + "tune", + "zone" + ], + "description": "Fine-tune the space reserved for the bar from the screen edge" + }, + { + "section": "barGothCorners", + "label": "Goth Corners", + "tabIndex": 3, + "category": "Dank Bar", + "keywords": [ + "apply", + "bar", + "concave", + "corner", + "corners", + "cutout", + "cutouts", + "dank", + "goth", + "inverse", + "panel", + "radius", + "round", + "rounded", + "statusbar", + "taskbar", + "topbar" + ], + "description": "Apply inverse concave corner cutouts to the bar" + }, + { + "section": "barHideWhenWindowsOpen", + "label": "Hide When Windows Open", + "tabIndex": 3, + "category": "Dank Bar", + "keywords": [ + "bar", + "dank", + "empty", + "hide", + "open", + "panel", + "show", + "statusbar", + "taskbar", + "topbar", + "windows", + "workspace" + ], + "description": "Show the bar only when no windows are open", + "conditionKey": "isNiri" + }, + { + "section": "barManualVisibility", + "label": "Manual Show/Hide", + "tabIndex": 3, + "category": "Dank Bar", + "keywords": [ + "auto-hide", + "autohide", + "bar", + "dank", + "hidden", + "hide", + "ipc", + "manual", + "manually", + "panel", + "show", + "statusbar", + "taskbar", + "toggle", + "topbar", + "visibility", + "visible" + ], + "description": "Toggle bar visibility manually via IPC" + }, + { + "section": "barMaximizeDetection", + "label": "Maximize Detection", + "tabIndex": 3, + "category": "Dank Bar", + "keywords": [ + "bar", + "border", + "dank", + "detection", + "fullscreen", + "gaps", + "maximize", + "maximized", + "panel", + "remove", + "statusbar", + "topbar", + "windows" + ], + "icon": "fit_screen", + "description": "Remove gaps and border when windows are maximized", + "conditionKey": "isNiri" + }, + { + "section": "barMaximizeWidgetIcons", + "label": "Maximize Widget Icons", + "tabIndex": 3, + "category": "Dank Bar", + "keywords": [ + "available", + "bar", + "dank", + "fill", + "height", + "icons", + "maximize", + "panel", + "statusbar", + "stretch", + "taskbar", + "topbar", + "widget" + ], + "description": "Stretch widget icons to fill the available bar height" + }, + { + "section": "barMaximizeWidgetText", + "label": "Maximize Widget Text", + "tabIndex": 3, + "category": "Dank Bar", + "keywords": [ + "available", + "bar", + "dank", + "fill", + "height", + "maximize", + "panel", + "statusbar", + "stretch", + "taskbar", + "text", + "topbar", + "widget" + ], + "description": "Stretch widget text to fill the available bar height" + }, + { + "section": "barNoBackground", + "label": "No Background", + "tabIndex": 3, + "category": "Dank Bar", + "keywords": [ + "background", + "bar", + "dank", + "fully", + "invisible", + "make", + "panel", + "statusbar", + "taskbar", + "topbar", + "transparent" + ], + "description": "Make the bar background fully transparent" + }, { "section": "barPosition", "label": "Position", @@ -809,6 +1061,55 @@ ], "icon": "vertical_align_center" }, + { + "section": "barRemoveWidgetPadding", + "label": "Remove Widget Padding", + "tabIndex": 3, + "category": "Dank Bar", + "keywords": [ + "bar", + "compact", + "components", + "dank", + "inner", + "modules", + "padding", + "panel", + "remove", + "statusbar", + "topbar", + "widget", + "widgets" + ], + "description": "Remove inner padding from all widgets" + }, + { + "section": "barScrollWheel", + "label": "Scroll Wheel", + "tabIndex": 3, + "category": "Dank Bar", + "keywords": [ + "axis", + "bar", + "columns", + "control", + "dank", + "desktop", + "desktops", + "panel", + "scroll", + "scrolling", + "statusbar", + "taskbar", + "topbar", + "virtual", + "wheel", + "workspace", + "workspaces" + ], + "icon": "mouse", + "description": "Control workspaces and columns by scrolling on the bar" + }, { "section": "_tab_3", "label": "Settings", @@ -844,6 +1145,75 @@ "description": "Show during Niri overview", "conditionKey": "isNiri" }, + { + "section": "barSize", + "label": "Size", + "tabIndex": 3, + "category": "Dank Bar", + "keywords": [ + "adjust", + "bar", + "dank", + "height", + "inner", + "padding", + "panel", + "size", + "statusbar", + "taskbar", + "thickness", + "topbar" + ], + "description": "Adjust the bar height via inner padding" + }, + { + "section": "barSquareCorners", + "label": "Square Corners", + "tabIndex": 3, + "category": "Dank Bar", + "keywords": [ + "bar", + "corner", + "corners", + "dank", + "panel", + "radius", + "remove", + "round", + "rounded", + "rounding", + "square", + "statusbar", + "taskbar", + "topbar" + ], + "description": "Remove corner rounding from the bar" + }, + { + "section": "barAutoHideStrict", + "label": "Strict auto-hide", + "tabIndex": 3, + "category": "Dank Bar", + "keywords": [ + "auto", + "autohide", + "bar", + "dank", + "even", + "hide", + "leaves", + "open", + "panel", + "pointer", + "popout", + "statusbar", + "still", + "strict", + "taskbar", + "topbar" + ], + "description": "Hide the bar when the pointer leaves even if a popout is still open" + }, { "section": "barUseOverlayLayer", "label": "Use Overlay Layer", @@ -876,14 +1246,13 @@ "away", "bar", "dank", - "frame", "hidden", "hide", + "intellihide", "moves", - "niri", - "overview", "panel", "pointer", + "reveal", "show", "statusbar", "taskbar", @@ -1532,6 +1901,21 @@ "icon": "dock_to_bottom", "description": "Display a dock with pinned and running applications" }, + { + "section": "dockExclusiveZone", + "label": "Exclusive Zone Offset", + "tabIndex": 5, + "category": "Dock", + "keywords": [ + "dock", + "exclusive", + "launcher bar", + "offset", + "reserved", + "taskbar", + "zone" + ] + }, { "section": "dockGroupByApp", "label": "Group by App", @@ -1905,14 +2289,18 @@ "category": "Dock", "keywords": [ "dock", + "exclusive", "gap", "gaps", "launcher bar", "margin", "margins", + "offset", "padding", + "reserved", "spacing", - "taskbar" + "taskbar", + "zone" ], "icon": "space_bar" }, @@ -1994,6 +2382,7 @@ "round", "rounded", "rounding", + "square", "statusbar", "taskbar", "topbar" @@ -2144,24 +2533,24 @@ "keywords": [ "bar", "between", - "corner", "dank", - "edge", "edges", - "end", + "exclusive", "gap", "gaps", - "inset", "margin", "margins", + "offset", "padding", "panel", + "reserved", "screen", "space", "spacing", "statusbar", "taskbar", - "topbar" + "topbar", + "zone" ], "icon": "space_bar", "description": "Space between the bar and screen edges" @@ -5864,6 +6253,81 @@ ], "description": "Play sound when volume is adjusted" }, + { + "section": "mediaAdaptiveWidth", + "label": "Adaptive Media Width", + "tabIndex": 16, + "category": "Media Player", + "keywords": [ + "adaptive", + "configured", + "maximum", + "media", + "mpris", + "music", + "player", + "respecting", + "shorter", + "shrink", + "size", + "song", + "spotify", + "still", + "titles", + "while", + "widget", + "width" + ], + "description": "Shrink the media widget to fit shorter song titles while still respecting the configured maximum size" + }, + { + "section": "mediaVisualizer", + "label": "Audio Visualizer", + "tabIndex": 16, + "category": "Media Player", + "keywords": [ + "audio", + "cava", + "media", + "mpris", + "music", + "player", + "show", + "spectrum", + "spotify", + "visualizer", + "widget" + ], + "description": "Show cava audio visualizer in media widget" + }, + { + "section": "mediaDeviceScrollVolume", + "label": "Device list scroll volume", + "tabIndex": 16, + "category": "Media Player", + "keywords": [ + "adjusting", + "allow", + "audio", + "device", + "half", + "items", + "list", + "loudness", + "media", + "mpris", + "music", + "player", + "right", + "scroll", + "scrolling", + "sound", + "speaker", + "spotify", + "volume" + ], + "description": "Allow adjusting device volume by scrolling on the right half of items in the device list" + }, { "section": "mediaExcludePlayers", "label": "Excluded Media Players", @@ -5916,7 +6380,6 @@ "playback", "player", "progress", - "scroll", "settings", "spotify", "statusbar", @@ -5945,6 +6408,77 @@ ], "description": "Scroll wheel behavior on media widget" }, + { + "section": "mediaScrollTitle", + "label": "Scroll song title", + "tabIndex": 16, + "category": "Media Player", + "keywords": [ + "doesn", + "marquee", + "media", + "mpris", + "music", + "player", + "scroll", + "song", + "spotify", + "title" + ], + "description": "Scroll title if it doesn" + }, + { + "section": "mediaAlbumArtAccent", + "label": "Use album art accent", + "tabIndex": 16, + "category": "Media Player", + "keywords": [ + "accent", + "album", + "appearance", + "art", + "colors", + "colour", + "colours", + "extracted", + "hue", + "look", + "media", + "mpris", + "music", + "palette", + "player", + "spotify", + "style", + "system", + "theme", + "tint" + ], + "description": "Use colors extracted from album art instead of system theme colors" + }, + { + "section": "mediaWaveProgress", + "label": "Wave Progress Bars", + "tabIndex": 16, + "category": "Media Player", + "keywords": [ + "animated", + "bars", + "media", + "mpris", + "music", + "panel", + "playback", + "player", + "progress", + "spotify", + "statusbar", + "taskbar", + "topbar", + "wave" + ], + "description": "Use animated wave progress bars for media playback" + }, { "section": "notificationBodyFontSize", "label": "Body Font Size", @@ -6981,6 +7515,52 @@ "icon": "tune", "description": "Open a terminal and run a custom command instead of the in-shell upgrade flow." }, + { + "section": "systemUpdaterCheckInterval", + "label": "Check interval", + "tabIndex": 20, + "category": "System Updater", + "keywords": [ + "check", + "frequency", + "interval", + "often", + "packages", + "poll", + "polls", + "server", + "system", + "updater", + "updates", + "upgrade" + ], + "description": "How often the server polls for new updates." + }, + { + "section": "systemUpdaterCheckOnStart", + "label": "Check on startup", + "tabIndex": 20, + "category": "System Updater", + "keywords": [ + "above", + "boot", + "check", + "checks", + "disabled", + "enabled", + "interval", + "manual", + "packages", + "refresh", + "runs", + "startup", + "system", + "updater", + "updates", + "upgrade" + ], + "description": "When enabled, checks updates on startup. When disabled, only the interval above or a manual refresh runs a check." + }, { "section": "systemUpdaterIgnoredPackages", "label": "Ignored Packages", @@ -6998,14 +7578,55 @@ ], "icon": "inventory_2" }, + { + "section": "systemUpdaterAUR", + "label": "Include AUR updates", + "tabIndex": 20, + "category": "System Updater", + "keywords": [ + "aur", + "enabled", + "include", + "packages", + "paru", + "system", + "updater", + "updates", + "upgrade", + "yay" + ], + "description": "Run paru/yay with AUR enabled when " + }, + { + "section": "systemUpdaterFlatpak", + "label": "Include Flatpak updates", + "tabIndex": 20, + "category": "System Updater", + "keywords": [ + "alongside", + "apply", + "flatpak", + "include", + "packages", + "running", + "system", + "updater", + "updates", + "upgrade" + ], + "description": "Apply Flatpak updates alongside system updates when running " + }, { "section": "systemUpdater", "label": "System Updater", "tabIndex": 20, "category": "System Updater", "keywords": [ + "frequency", + "interval", "often", "packages", + "poll", "polls", "server", "system", @@ -7016,6 +7637,25 @@ "icon": "refresh", "description": "How often the server polls for new updates." }, + { + "section": "systemUpdaterCustomCommand", + "label": "Use Custom Command", + "tabIndex": 20, + "category": "System Updater", + "keywords": [ + "command", + "custom", + "flow", + "open", + "packages", + "shell", + "system", + "terminal", + "updater", + "upgrade" + ], + "description": "Open a terminal and run a custom command instead of the in-shell upgrade flow." + }, { "section": "lockTimeout", "label": "Automatically lock after", @@ -7789,11 +8429,12 @@ "conditionKey": "dmsConnected" }, { - "section": "_tab_27", + "section": "desktopWidgetsManage", "label": "Desktop Widgets", "tabIndex": 27, "category": "Desktop Widgets", "keywords": [ + "clock", "components", "conky", "desktop", @@ -7803,6 +8444,22 @@ ], "icon": "widgets" }, + { + "section": "desktopWidgetGroups", + "label": "Groups", + "tabIndex": 27, + "category": "Desktop Widgets", + "keywords": [ + "conky", + "desktop", + "desktop clock", + "groups", + "layouts", + "profiles", + "widgets" + ], + "icon": "folder" + }, { "section": "audioInputDevices", "label": "Input Devices", @@ -8196,6 +8853,24 @@ ], "icon": "terminal" }, + { + "section": "muxSessionFilter", + "label": "Session Filter", + "tabIndex": 32, + "category": "Multiplexers", + "keywords": [ + "exclude", + "filter", + "hide", + "multiplexers", + "mux", + "session", + "terminal", + "tmux", + "zellij" + ], + "icon": "filter_list" + }, { "section": "muxUseCustomCommand", "label": "Terminal", @@ -8688,6 +9363,102 @@ ], "icon": "apps" }, + { + "section": "defaultAppsDocuments", + "label": "Documents", + "tabIndex": 34, + "category": "Default Apps", + "keywords": [ + "apps", + "browser", + "default", + "documents", + "editing", + "files", + "handlers", + "mime", + "office", + "pdf", + "plain", + "reader", + "terminal", + "text" + ], + "icon": "edit_document", + "description": "For editing plain text files" + }, + { + "section": "defaultAppsInternet", + "label": "Internet", + "tabIndex": 34, + "category": "Default Apps", + "keywords": [ + "apps", + "browser", + "default", + "email", + "files", + "handlers", + "handles", + "html", + "internet", + "links", + "mail", + "mime", + "opens", + "terminal", + "web" + ], + "icon": "public", + "description": "Handles links and opens HTML files" + }, + { + "section": "defaultAppsMultimedia", + "label": "Multimedia", + "tabIndex": 34, + "category": "Default Apps", + "keywords": [ + "apps", + "browser", + "default", + "files", + "handlers", + "image", + "mime", + "multimedia", + "music", + "opens", + "player", + "terminal", + "video", + "viewer" + ], + "icon": "movie", + "description": "Opens image files" + }, + { + "section": "defaultAppsUtilities", + "label": "Utilities", + "tabIndex": 34, + "category": "Default Apps", + "keywords": [ + "apps", + "browser", + "default", + "directories", + "editor", + "file", + "files", + "handlers", + "manager", + "manages", + "mime", + "terminal", + "utilities" + ], + "icon": "terminal", + "description": "Manages files and directories" + }, { "section": "createUserGreeter", "label": "Allow greeter login access", @@ -8776,6 +9547,26 @@ ], "icon": "manage_accounts" }, + { + "section": "autostartAddEntry", + "label": "Add Entry", + "tabIndex": 36, + "category": "Autostart", + "keywords": [ + "add", + "autostart", + "boot", + "choose", + "command", + "desktop", + "entry", + "launch", + "startup", + "whether" + ], + "icon": "add_circle", + "description": "Choose whether to launch a desktop app or a command" + }, { "section": "_tab_36", "label": "Autostart Apps", @@ -8804,6 +9595,24 @@ ], "icon": "line_start" }, + { + "section": "autostartTrayIconFix", + "label": "Tray Icon Fix", + "tabIndex": 36, + "category": "Autostart", + "keywords": [ + "autostart", + "boot", + "fix", + "icon", + "icons", + "launch", + "startup", + "systemd", + "tray" + ], + "icon": "handyman" + }, { "section": "hyprlandLayoutBorderSize", "label": "Border Size",