From 473e5a6b8afe024598b0850259bc7acb38c35ede Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Wed, 2 Apr 2025 19:48:18 +1100 Subject: notifpopups: fix clicking opening sidebar --- app.tsx | 5 +++- src/modules/bar.tsx | 68 +++++++++++++++++++++++-------------------- src/modules/notifpopups.tsx | 28 +++++++++++------- src/modules/sidebar/index.tsx | 2 +- 4 files changed, 59 insertions(+), 44 deletions(-) diff --git a/app.tsx b/app.tsx index b28369d..83bd378 100644 --- a/app.tsx +++ b/app.tsx @@ -15,6 +15,7 @@ import { execAsync, idle, timeout, writeFileAsync } from "astal"; import { App } from "astal/gtk3"; import { style } from "config"; import { initConfig, updateConfig } from "config/funcs"; +import AstalHyprland from "gi://AstalHyprland?version=0.1"; const isLayer = (name: string) => ["base", "mantle", "crust"].includes(name) || name.startsWith("surface") || name.startsWith("overlay"); @@ -75,9 +76,9 @@ App.start({ Palette.get_default().connect("notify::mode", () => loadStyleAsync().catch(console.error)); ; - ; ; ; + Monitors.get_default().forEach(m => ); Monitors.get_default().forEach(m => ); Monitors.get_default().forEach(m => ); Monitors.get_default().forEach(m => ); @@ -99,6 +100,8 @@ App.start({ if (request === "reload-css") loadStyleAsync().catch(console.error); else if (request === "reload-config") updateConfig(); else if (request.startsWith("show")) App.get_window(request.split(" ")[1])?.show(); + else if (request.startsWith("toggle")) + App.toggle_window(request.split(" ")[1] + AstalHyprland.get_default().focusedMonitor.id); else if (request === "media play-pause") Players.get_default().lastPlayer?.play_pause(); else if (request === "media next") Players.get_default().lastPlayer?.next(); else if (request === "media previous") Players.get_default().lastPlayer?.previous(); diff --git a/src/modules/bar.tsx b/src/modules/bar.tsx index 02fc609..386a1ba 100644 --- a/src/modules/bar.tsx +++ b/src/modules/bar.tsx @@ -25,6 +25,10 @@ interface SpacerClassNameProps { afterSpacer?: boolean; } +interface ModuleProps extends SpacerClassNameProps { + monitor: Monitor; +} + const hyprland = AstalHyprland.get_default(); const getBatteryIcon = (perc: number) => { @@ -70,8 +74,8 @@ const hookFocusedClientProp = ( callback(lastClient); }; -const switchPane = (name: string) => { - const sidebar = App.get_window("sidebar") as SideBar | null; +const switchPane = (monitor: Monitor, name: string) => { + const sidebar = App.get_window(`sidebar${monitor.id}`) as SideBar | null; if (sidebar) { if (sidebar.visible && sidebar.shown.get() === name) sidebar.hide(); else sidebar.show(); @@ -82,17 +86,17 @@ const switchPane = (name: string) => { const spacerClassName = ({ beforeSpacer, afterSpacer }: SpacerClassNameProps) => `${beforeSpacer ? "before-spacer" : ""} ${afterSpacer ? "after-spacer" : ""}`; -const OSIcon = (props: SpacerClassNameProps) => ( +const OSIcon = ({ monitor, ...props }: ModuleProps) => ( ); -const ActiveWindow = (props: SpacerClassNameProps) => ( +const ActiveWindow = ({ monitor, ...props }: ModuleProps) => ( ( ); -const MediaPlaying = (props: SpacerClassNameProps) => { +const MediaPlaying = ({ monitor, ...props }: ModuleProps) => { const players = Players.get_default(); const getLabel = (fallback = "") => players.lastPlayer ? `${players.lastPlayer.title} - ${players.lastPlayer.artist}` : fallback; @@ -142,7 +146,7 @@ const MediaPlaying = (props: SpacerClassNameProps) => { ); -const NotifCount = (props: SpacerClassNameProps) => ( +const NotifCount = ({ monitor, ...props }: ModuleProps) => ( ); -const Battery = (props: SpacerClassNameProps) => { +const Battery = ({ monitor, ...props }: ModuleProps) => { const visible = Variable.derive( [config.modules.battery.enabled, bind(AstalBattery.get_default(), "isBattery")], (e, i) => e && i @@ -553,10 +557,10 @@ const DateTimeVertical = (props: SpacerClassNameProps) => ( ); -const DateTime = (props: SpacerClassNameProps) => ( +const DateTime = ({ monitor, ...props }: ModuleProps) => ( ); -const Power = (props: SpacerClassNameProps) => ( +const Power = ({ monitor, ...props }: ModuleProps) => (