From 80017cbeb91c37865f02b160c91f54d4b4fba39c Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Sun, 13 Apr 2025 23:11:12 +1000 Subject: navbar: add mediadisplay toggle Also better error message for visualiser --- src/modules/mediadisplay/visualiser.tsx | 2 +- src/modules/navbar.tsx | 42 ++++++++++++++++++++++++++++++++- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/src/modules/mediadisplay/visualiser.tsx b/src/modules/mediadisplay/visualiser.tsx index fa1adc6..9eacd44 100644 --- a/src/modules/mediadisplay/visualiser.tsx +++ b/src/modules/mediadisplay/visualiser.tsx @@ -33,7 +33,7 @@ export default () => ( // Show error text if cava unavailable const fg = self.get_style_context().get_color(Gtk.StateFlags.NORMAL); cr.setSourceRGBA(fg.red, fg.green, fg.blue, fg.alpha); - const layout = self.create_pango_layout("Visualiser unavailable"); + const layout = self.create_pango_layout("Visualiser module requires Cava"); const [w, h] = layout.get_pixel_size(); cr.moveTo((width - w) / 2, (height - h) / 2); cr.setAntialias(cairo.Antialias.BEST); diff --git a/src/modules/navbar.tsx b/src/modules/navbar.tsx index 3e2b1c9..35d3900 100644 --- a/src/modules/navbar.tsx +++ b/src/modules/navbar.tsx @@ -2,12 +2,15 @@ import type { Monitor } from "@/services/monitors"; import { capitalize } from "@/utils/strings"; import type { AstalWidget } from "@/utils/types"; import { bind, execAsync, Variable } from "astal"; -import { Astal, Gtk } from "astal/gtk3"; +import { App, Astal, Gtk } from "astal/gtk3"; import { navbar as config } from "config"; import AstalHyprland from "gi://AstalHyprland"; import Pango from "gi://Pango"; import SideBar, { awaitSidebar, paneNames, switchPane, type PaneName } from "./sidebar"; +const layerNames = ["mediadisplay"] as const; +type LayerName = `${(typeof layerNames)[number]}${number}`; + const specialWsNames = ["sysmon", "communication", "music", "todo"] as const; type SpecialWsName = (typeof specialWsNames)[number]; @@ -20,6 +23,10 @@ const getPaneIcon = (name: PaneName) => { return "date_range"; }; +const getLayerIcon = (name: LayerName) => { + return "graphic_eq"; +}; + const getSpecialWsIcon = (name: SpecialWsName) => { if (name === "sysmon") return "speed"; if (name === "communication") return "communication"; @@ -76,6 +83,36 @@ const PaneButton = ({ ); +const LayerButton = ({ name }: { name: LayerName }) => ( + +); + const SpecialWsButton = ({ name }: { name: SpecialWsName }) => { const revealChild = Variable.derive( [config.showLabels, bind(AstalHyprland.get_default(), "focusedClient")], @@ -152,6 +189,9 @@ export default ({ monitor }: { monitor: Monitor }) => { {paneNames.map(n => ( ))} + {layerNames.map(n => ( + + ))} {specialWsNames.map(n => ( -- cgit v1.2.3-freya