Update Media widget

Now Media widget will search symbolic icons! It looks great!
This commit is contained in:
Mephisto
2025-06-14 12:32:49 +03:00
committed by GitHub
parent 2a9404929c
commit d67fd5fc03
+9 -14
View File
@@ -1,16 +1,12 @@
import { bind } from "astal"; import { bind } from "astal";
import { Gtk, Widget } from "astal/gtk3"; import { Gtk, Widget } from "astal/gtk3";
import AstalMpris from "gi://AstalMpris"; import AstalMpris from "gi://AstalMpris";
import { getSymbolicIcon } from "../../scripts/apps";
import { getPlayers } from "../../scripts/player";
import { Separator, SeparatorProps } from "../Separator"; import { Separator, SeparatorProps } from "../Separator";
import { Windows } from "../../windows"; import { Windows } from "../../windows";
import { Clipboard } from "../../scripts/clipboard"; import { Clipboard } from "../../scripts/clipboard";
import { Sliders } from "../control-center/Sliders";
const playerIcons = {
spotify: "spotify-symbolic",
mpv: "mpv-symbolic",
Clapper: "com.github.rafostar.Clapper-symbolic"
}
export function Media(): Gtk.Widget { export function Media(): Gtk.Widget {
@@ -92,13 +88,12 @@ export function Media(): Gtk.Widget {
players[0] ? [ players[0] ? [
new Widget.Icon({ new Widget.Icon({
icon: bind(players[0], "busName").as((busName: string) => { icon: bind(players[0], "busName").as((busName: string) => {
const splitName = busName.split('.').filter(str => str !== ""); const splitName = busName.split('.').filter(str => str !== "" && !str.toLowerCase().includes('instance'));
if (getSymbolicIcon(splitName[splitName.length - 1])) {
return playerIcons[ return getSymbolicIcon(splitName[splitName.length - 1]);
Object.keys(playerIcons).filter(icon => } else {
splitName[splitName.length - 1].includes(icon))?.[0] as keyof typeof playerIcons return "folder-music-symbolic"
] };
?? "folder-music-symbolic";
}) })
} as Widget.IconProps), } as Widget.IconProps),
new Widget.Label({ new Widget.Label({