Workspaces now show up on their appropriate monitors. (#681)

* Workspaces now show up on their appropriate monitors.

* Fixed undefined rules showing up.
This commit is contained in:
Jas Singh
2024-12-31 01:33:40 -08:00
committed by GitHub
parent d2e02f553a
commit 5f72b4f5e1
17 changed files with 576 additions and 425 deletions

View File

@@ -140,12 +140,71 @@ export const BarSettings = (): JSX.Element => {
{/* Workspaces Section */}
<Header title="Workspaces" />
<Option opt={options.theme.bar.buttons.workspaces.enableBorder} title="Button Border" type="boolean" />
<Option
opt={options.bar.workspaces.monitorSpecific}
title="Monitor Specific"
subtitle="Only workspaces of the monitor are shown."
type="boolean"
/>
<Option opt={options.bar.workspaces.show_icons} title="Show Workspace Icons" type="boolean" />
<Option opt={options.bar.workspaces.show_numbered} title="Show Workspace Numbers" type="boolean" />
<Option
opt={options.bar.workspaces.workspaceMask}
title="Zero-Based Workspace Numbers"
subtitle={
'Start all workspace numbers from 0 on each monitor.\n' +
"Requires 'Show Workspace Numbers' to be enabled."
}
type="boolean"
/>
<Option
opt={options.bar.workspaces.showWsIcons}
title="Map Workspaces to Icons"
subtitle="https://hyprpanel.com/configuration/panel.html#show-workspace-icons"
type="boolean"
/>
<Option
opt={options.bar.workspaces.showApplicationIcons}
title="Map Workspaces to Application Icons"
subtitle="Requires 'Map Workspace to Icons' enabled. See docs."
type="boolean"
/>
<Option
opt={options.bar.workspaces.applicationIconOncePerWorkspace}
title="Hide Duplicate App Icons"
type="boolean"
/>
<Option
opt={options.bar.workspaces.showAllActive}
title="Mark Active Workspace On All Monitors"
subtitle="Marks the currently active workspace on each monitor."
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.smartHighlight}
title="Smart Highlight"
subtitle="Automatically determines highlight color for mapped icons."
type="boolean"
/>
<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.theme.bar.buttons.workspaces.pill.radius}
title="Pill Radius"
@@ -176,53 +235,9 @@ export const BarSettings = (): JSX.Element => {
subtitle="Only applicable to numbered workspaces and mapped icons. Adjust carefully."
type="string"
/>
<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.smartHighlight}
title="Smart Highlight"
subtitle="Automatically determines highlight color for mapped icons."
type="boolean"
/>
<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.showWsIcons}
title="Map Workspaces to Icons"
subtitle="https://hyprpanel.com/configuration/panel.html#show-workspace-icons"
type="boolean"
/>
<Option
opt={options.bar.workspaces.showApplicationIcons}
title="Map Workspaces to Application Icons"
subtitle="Requires 'Map Workspace to Icons' enabled. See docs."
type="boolean"
/>
<Option
opt={options.bar.workspaces.applicationIconOncePerWorkspace}
title="Hide Duplicate App Icons"
type="boolean"
/>
<Option
opt={options.bar.workspaces.applicationIconMap}
title="App Icon Mappings"
@@ -254,28 +269,10 @@ export const BarSettings = (): JSX.Element => {
/>
<Option
opt={options.bar.workspaces.workspaces}
title="Total Workspaces"
subtitle="Minimum number of workspaces to always show."
title="Persistent Workspaces"
subtitle="Requires workspace rules to be defined if 'Monitor Specific' is selected."
type="number"
/>
<Option
opt={options.bar.workspaces.monitorSpecific}
title="Monitor Specific"
subtitle="Only workspaces of the monitor are shown."
type="boolean"
/>
<Option
opt={options.bar.workspaces.hideUnoccupied}
title="Hide Unoccupied"
subtitle="Only show occupied or active workspaces"
type="boolean"
/>
<Option
opt={options.bar.workspaces.workspaceMask}
title="Mask Workspace Numbers On Monitors"
subtitle="For monitor-specific numbering"
type="boolean"
/>
<Option
opt={options.bar.workspaces.reverse_scroll}
title="Invert Scroll"

View File

@@ -1,5 +1,5 @@
import { Gtk } from 'astal/gtk3';
import FileChooserButton from 'src/components/shared/FileChooseButton';
import FileChooserButton from 'src/components/shared/FileChooserButton';
import { Opt } from 'src/lib/option';
const handleFileSet =

View File

@@ -1,4 +1,4 @@
import FileChooserButton from 'src/components/shared/FileChooseButton';
import FileChooserButton from 'src/components/shared/FileChooserButton';
import { Opt } from 'src/lib/option';
import Wallpaper from 'src/services/Wallpaper';