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) => {