Hyprland scaling updates are now properly reflected without having to restart ags. (#113)

This commit is contained in:
Jas Singh
2024-08-11 20:38:50 -07:00
committed by GitHub
parent c9e3a29edc
commit 79bf05d9c9

View File

@@ -1,6 +1,8 @@
const hyprland = await Service.import("hyprland"); const hyprland = await Service.import("hyprland");
import { globalMousePos } from "globals"; import { globalMousePos } from "globals";
import { Exclusivity } from "lib/types/widget"; import { Exclusivity } from "lib/types/widget";
import { bash } from "lib/utils";
import { Monitor } from "types/service/hyprland";
export const Padding = (name: string) => export const Padding = (name: string) =>
Widget.EventBox({ Widget.EventBox({
@@ -16,11 +18,23 @@ const moveBoxToCursor = (self: any, fixed: boolean) => {
return; return;
} }
globalMousePos.connect("changed", ({ value }) => { globalMousePos.connect("changed", async ({ value }) => {
const curHyprlandMonitor = hyprland.monitors.find(m => m.id === hyprland.active.monitor.id); const curHyprlandMonitor = hyprland.monitors.find(m => m.id === hyprland.active.monitor.id);
const dropdownWidth = self.child.get_allocation().width; const dropdownWidth = self.child.get_allocation().width;
const hyprScaling = curHyprlandMonitor?.scale; let hyprScaling = 1;
try {
const monitorInfo = await bash('hyprctl monitors -j');
const parsedMonitorInfo = JSON.parse(monitorInfo);
const foundMonitor = parsedMonitorInfo.find((monitor: Monitor) =>
monitor.id === hyprland.active.monitor.id
);
hyprScaling = foundMonitor?.scale || 1;
} catch (error) {
console.error(`Error parsing hyprland monitors: ${error}`);
}
let monWidth = curHyprlandMonitor?.width; let monWidth = curHyprlandMonitor?.width;
let monHeight = curHyprlandMonitor?.height; let monHeight = curHyprlandMonitor?.height;