fix the issue with the keyboard layout indicator not showing up on all monitors.

This commit is contained in:
Hossein Motahari
2024-07-30 12:57:43 +03:00
parent 95c31b5692
commit 01dab4fdfc
3 changed files with 15 additions and 6 deletions
@@ -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({
+1 -1
View File
@@ -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',
+2 -2
View File
@@ -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) },