diff --git a/src/components/bar/exports.ts b/src/components/bar/exports.ts
index f57dcca..530078d 100644
--- a/src/components/bar/exports.ts
+++ b/src/components/bar/exports.ts
@@ -27,6 +27,8 @@ import { Hypridle } from '../../components/bar/modules/hypridle/index';
import { Cava } from '../../components/bar/modules/cava/index';
import { WorldClock } from '../../components/bar/modules/worldclock/index';
+import { ModuleSeparator } from './modules/separator';
+
export {
Menu,
Workspaces,
@@ -56,4 +58,5 @@ export {
Hypridle,
Cava,
WorldClock,
+ ModuleSeparator,
};
diff --git a/src/components/bar/index.tsx b/src/components/bar/index.tsx
index 233ee75..f2527e8 100644
--- a/src/components/bar/index.tsx
+++ b/src/components/bar/index.tsx
@@ -25,6 +25,7 @@ import {
Hypridle,
Cava,
WorldClock,
+ ModuleSeparator,
} from './exports';
import { WidgetContainer } from './shared/WidgetContainer';
@@ -42,32 +43,33 @@ const { location } = options.theme.bar;
const { location: borderLocation } = options.theme.bar.border;
let widgets: WidgetMap = {
- battery: (): JSX.Element => WidgetContainer(BatteryLabel()),
- dashboard: (): JSX.Element => WidgetContainer(Menu()),
- workspaces: (monitor: number): JSX.Element => WidgetContainer(Workspaces(monitor)),
- windowtitle: (): JSX.Element => WidgetContainer(ClientTitle()),
- media: (): JSX.Element => WidgetContainer(Media()),
- notifications: (): JSX.Element => WidgetContainer(Notifications()),
- volume: (): JSX.Element => WidgetContainer(Volume()),
- network: (): JSX.Element => WidgetContainer(Network()),
- bluetooth: (): JSX.Element => WidgetContainer(Bluetooth()),
- clock: (): JSX.Element => WidgetContainer(Clock()),
- systray: (): JSX.Element => WidgetContainer(SysTray()),
- microphone: (): JSX.Element => WidgetContainer(Microphone()),
- ram: (): JSX.Element => WidgetContainer(Ram()),
- cpu: (): JSX.Element => WidgetContainer(Cpu()),
- cputemp: (): JSX.Element => WidgetContainer(CpuTemp()),
- storage: (): JSX.Element => WidgetContainer(Storage()),
- netstat: (): JSX.Element => WidgetContainer(Netstat()),
- kbinput: (): JSX.Element => WidgetContainer(KbInput()),
- updates: (): JSX.Element => WidgetContainer(Updates()),
- submap: (): JSX.Element => WidgetContainer(Submap()),
- weather: (): JSX.Element => WidgetContainer(Weather()),
- power: (): JSX.Element => WidgetContainer(Power()),
- hyprsunset: (): JSX.Element => WidgetContainer(Hyprsunset()),
- hypridle: (): JSX.Element => WidgetContainer(Hypridle()),
- cava: (): JSX.Element => WidgetContainer(Cava()),
- worldclock: (): JSX.Element => WidgetContainer(WorldClock()),
+ battery: () => WidgetContainer(BatteryLabel()),
+ dashboard: () => WidgetContainer(Menu()),
+ workspaces: (monitor: number) => WidgetContainer(Workspaces(monitor)),
+ windowtitle: () => WidgetContainer(ClientTitle()),
+ media: () => WidgetContainer(Media()),
+ notifications: () => WidgetContainer(Notifications()),
+ volume: () => WidgetContainer(Volume()),
+ network: () => WidgetContainer(Network()),
+ bluetooth: () => WidgetContainer(Bluetooth()),
+ clock: () => WidgetContainer(Clock()),
+ systray: () => WidgetContainer(SysTray()),
+ microphone: () => WidgetContainer(Microphone()),
+ ram: () => WidgetContainer(Ram()),
+ cpu: () => WidgetContainer(Cpu()),
+ cputemp: () => WidgetContainer(CpuTemp()),
+ storage: () => WidgetContainer(Storage()),
+ netstat: () => WidgetContainer(Netstat()),
+ kbinput: () => WidgetContainer(KbInput()),
+ updates: () => WidgetContainer(Updates()),
+ submap: () => WidgetContainer(Submap()),
+ weather: () => WidgetContainer(Weather()),
+ power: () => WidgetContainer(Power()),
+ hyprsunset: () => WidgetContainer(Hyprsunset()),
+ hypridle: () => WidgetContainer(Hypridle()),
+ cava: () => WidgetContainer(Cava()),
+ worldclock: () => WidgetContainer(WorldClock()),
+ separator: () => ModuleSeparator(),
};
const gdkMonitorMapper = new GdkMonitorMapper();
diff --git a/src/components/bar/modules/separator/index.tsx b/src/components/bar/modules/separator/index.tsx
new file mode 100644
index 0000000..42968bc
--- /dev/null
+++ b/src/components/bar/modules/separator/index.tsx
@@ -0,0 +1,5 @@
+import Separator from 'src/components/shared/Separator';
+
+export const ModuleSeparator = (): JSX.Element => {
+ return ;
+};
diff --git a/src/components/settings/pages/config/bar/index.tsx b/src/components/settings/pages/config/bar/index.tsx
index a46addb..145390e 100644
--- a/src/components/settings/pages/config/bar/index.tsx
+++ b/src/components/settings/pages/config/bar/index.tsx
@@ -140,6 +140,11 @@ export const BarSettings = (): JSX.Element => {
type="number"
/>
+ {/* Separator Section */}
+
+
+
+
{/* Dashboard Section */}
diff --git a/src/components/settings/pages/theme/bar/index.tsx b/src/components/settings/pages/theme/bar/index.tsx
index 95b3b35..9487e7f 100644
--- a/src/components/settings/pages/theme/bar/index.tsx
+++ b/src/components/settings/pages/theme/bar/index.tsx
@@ -35,7 +35,7 @@ export const BarTheme = (): JSX.Element => {
+
{/* Dashboard Button Section */}
diff --git a/src/options.ts b/src/options.ts
index 2ade04c..7ec9eab 100644
--- a/src/options.ts
+++ b/src/options.ts
@@ -309,6 +309,11 @@ const options = mkOptions({
total: opt(colors.lavender),
spacing: opt('0.5em'),
},
+ separator: {
+ color: opt(colors.surface2),
+ margins: opt('0.15em'),
+ width: opt('0.1em'),
+ },
modules: {
microphone: {
enableBorder: opt(false),
diff --git a/src/scss/main.scss b/src/scss/main.scss
index 3b182a0..0e9bc30 100644
--- a/src/scss/main.scss
+++ b/src/scss/main.scss
@@ -53,3 +53,6 @@
//settings dialog
@import 'style/settings/dialog';
+
+//bar separator
+@import 'style/bar/module-separator';
diff --git a/src/scss/style/bar/module-separator.scss b/src/scss/style/bar/module-separator.scss
new file mode 100644
index 0000000..fcaee9f
--- /dev/null
+++ b/src/scss/style/bar/module-separator.scss
@@ -0,0 +1,6 @@
+.bar-module-separator {
+ background-color: $bar-buttons-separator-color;
+ opacity: $bar-buttons-opacity * 0.01;
+ margin: $bar-buttons-separator-margins;
+ min-width: $bar-buttons-separator-width;
+}