forked from Shinonome/dots-hyprland
fix the issue with the keyboard layout indicator not showing up on all monitors.
This commit is contained in:
@@ -277,15 +277,24 @@ const OptionalKeyboardLayout = async () => {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const optionalKeyboardLayoutInstance = await OptionalKeyboardLayout();
|
const createKeyboardLayoutInstances = async () => {
|
||||||
|
const Hyprland = (await import('resource:///com/github/Aylur/ags/service/hyprland.js')).default;
|
||||||
|
const monitorsCount = Hyprland.monitors.length
|
||||||
|
const instances = await Promise.all(
|
||||||
|
Array.from({ length: monitorsCount }, () => OptionalKeyboardLayout())
|
||||||
|
);
|
||||||
|
|
||||||
export const StatusIcons = (props = {}) => Widget.Box({
|
return instances;
|
||||||
|
};
|
||||||
|
const optionalKeyboardLayoutInstances = await createKeyboardLayoutInstances()
|
||||||
|
|
||||||
|
export const StatusIcons = (props = {}, monitor = 0) => Widget.Box({
|
||||||
...props,
|
...props,
|
||||||
child: Widget.Box({
|
child: Widget.Box({
|
||||||
className: 'spacing-h-15',
|
className: 'spacing-h-15',
|
||||||
children: [
|
children: [
|
||||||
MicMuteIndicator(),
|
MicMuteIndicator(),
|
||||||
optionalKeyboardLayoutInstance,
|
optionalKeyboardLayoutInstances[monitor],
|
||||||
NotificationIndicator(),
|
NotificationIndicator(),
|
||||||
NetworkIndicator(),
|
NetworkIndicator(),
|
||||||
Widget.Box({
|
Widget.Box({
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ export const Bar = async (monitor = 0) => {
|
|||||||
SideModule([System()]),
|
SideModule([System()]),
|
||||||
]
|
]
|
||||||
}),
|
}),
|
||||||
endWidget: Indicators(),
|
endWidget: Indicators(monitor),
|
||||||
});
|
});
|
||||||
const focusedBarContent = Widget.CenterBox({
|
const focusedBarContent = Widget.CenterBox({
|
||||||
className: 'bar-bg-focus',
|
className: 'bar-bg-focus',
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ const SeparatorDot = () => Widget.Revealer({
|
|||||||
,
|
,
|
||||||
});
|
});
|
||||||
|
|
||||||
export default () => {
|
export default (monitor = 0) => {
|
||||||
const barTray = Tray();
|
const barTray = Tray();
|
||||||
const barStatusIcons = StatusIcons({
|
const barStatusIcons = StatusIcons({
|
||||||
className: 'bar-statusicons',
|
className: 'bar-statusicons',
|
||||||
@@ -38,7 +38,7 @@ export default () => {
|
|||||||
self.toggleClassName('bar-statusicons-active', visible);
|
self.toggleClassName('bar-statusicons-active', visible);
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
});
|
}, monitor);
|
||||||
const SpaceRightDefaultClicks = (child) => Widget.EventBox({
|
const SpaceRightDefaultClicks = (child) => Widget.EventBox({
|
||||||
onHover: () => { barStatusIcons.toggleClassName('bar-statusicons-hover', true) },
|
onHover: () => { barStatusIcons.toggleClassName('bar-statusicons-hover', true) },
|
||||||
onHoverLost: () => { barStatusIcons.toggleClassName('bar-statusicons-hover', false) },
|
onHoverLost: () => { barStatusIcons.toggleClassName('bar-statusicons-hover', false) },
|
||||||
|
|||||||
Reference in New Issue
Block a user