From e56b945469a264bc1c24c014f526f671c1e9d254 Mon Sep 17 00:00:00 2001 From: retrozinndev Date: Sat, 1 Mar 2025 14:29:16 -0300 Subject: [PATCH] :boom: fix(ags/media): copy media link to clipboard freezing the whole shell --- ags/widget/bar/Media.ts | 4 ++-- ags/widget/center-window/BigMedia.ts | 9 ++------- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/ags/widget/bar/Media.ts b/ags/widget/bar/Media.ts index ef15ed1..154b13e 100644 --- a/ags/widget/bar/Media.ts +++ b/ags/widget/bar/Media.ts @@ -1,4 +1,4 @@ -import { bind, GLib, Process } from "astal"; +import { bind, execAsync, GLib } from "astal"; import { Gtk, Widget } from "astal/gtk3"; import AstalMpris from "gi://AstalMpris"; import { Separator, SeparatorProps } from "../Separator"; @@ -35,7 +35,7 @@ export function Media(): Gtk.Widget { tooltipText: "Copy link to Clipboard", visible: bind(players[0], "metadata").as((_metadata: GLib.HashTable) => players[0].get_meta("xesam:url") === null), - onClick: () => Process.exec(`wl-copy ${players[0].get_meta("xesam:url")?.get_string()[0]}`) + onClick: () => execAsync(`sh -c "wl-copy \\"$(playerctl metadata 'xesam:url')\\""`) } as Widget.ButtonProps), new Widget.Button({ className: "previous nf", diff --git a/ags/widget/center-window/BigMedia.ts b/ags/widget/center-window/BigMedia.ts index c289aa5..8a66c12 100644 --- a/ags/widget/center-window/BigMedia.ts +++ b/ags/widget/center-window/BigMedia.ts @@ -1,4 +1,4 @@ -import { AstalIO, bind, Binding, GLib, Process, timeout } from "astal"; +import { AstalIO, bind, Binding, execAsync, GLib, timeout } from "astal"; import { Gtk, Widget } from "astal/gtk3"; import AstalMpris from "gi://AstalMpris"; @@ -51,11 +51,6 @@ export const BigMedia: Gtk.Widget = new Widget.Box({ hexpand: true, visible: bind(players[0], "canSeek"), children: [ - /*new Widget.Label({ - className: "elapsed", - label: bind(players[0], "position").as((position: number) => - Math.floor(position).toString()) - }),*/ new Widget.Slider({ min: 0, hexpand: true, @@ -100,7 +95,7 @@ export const BigMedia: Gtk.Widget = new Widget.Box({ tooltipText: "Copy link to Clipboard", visible: bind(players[0], "metadata").as((_meta: GLib.HashTable) => players[0].get_meta("xesam:url") === null), - onClick: () => Process.exec(`wl-copy ${players[0].get_meta("xesam:url")?.get_string()[0]}`) + onClick: () => execAsync(`sh -c "wl-copy \\"$(playerctl metadata 'xesam:url')\\""`) } as Widget.ButtonProps), new Widget.Button({ className: "shuffle nf",