From 26a0e34b8be2ee0e22d74207049a660e33f4722c Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Fri, 5 Jan 2024 08:22:39 +0700 Subject: [PATCH] music controls actions (#172) --- .config/ags/widgets/bar/music.js | 4 ++-- .config/ags/widgets/indicators/musiccontrols.js | 10 ++++++---- .config/ags/widgets/sideright/quicktoggles.js | 2 ++ 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.config/ags/widgets/bar/music.js b/.config/ags/widgets/bar/music.js index f72be6a9..7ffecfe9 100644 --- a/.config/ags/widgets/bar/music.js +++ b/.config/ags/widgets/bar/music.js @@ -30,12 +30,12 @@ const TrackProgress = () => { }) } -export const ModuleMusic = () => Widget.EventBox({ +export const ModuleMusic = () => Widget.EventBox({ // TODO: use cairo to make button bounce smaller on click onScrollUp: () => Hyprland.sendMessage(`dispatch workspace -1`), onScrollDown: () => Hyprland.sendMessage(`dispatch workspace +1`), onPrimaryClickRelease: () => showMusicControls.setValue(!showMusicControls.value), onSecondaryClickRelease: () => execAsync(['bash', '-c', 'playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"` &']), - onMiddleClickRelease: () => Mpris.getPlayer('')?.playPause(), + onMiddleClickRelease: () => execAsync('playerctl play-pause').catch(print), child: Widget.Box({ className: 'bar-group-margin bar-sides', children: [ diff --git a/.config/ags/widgets/indicators/musiccontrols.js b/.config/ags/widgets/indicators/musiccontrols.js index 1c7a65e3..e772868c 100644 --- a/.config/ags/widgets/indicators/musiccontrols.js +++ b/.config/ags/widgets/indicators/musiccontrols.js @@ -200,6 +200,7 @@ const TrackControls = ({ player, ...rest }) => Widget.Revealer({ children: [ Button({ className: 'osd-music-controlbtn', + onClicked: () => execAsync('playerctl previous').catch(print), child: Label({ className: 'icon-material osd-music-controlbtn-txt', label: 'skip_previous', @@ -207,6 +208,9 @@ const TrackControls = ({ player, ...rest }) => Widget.Revealer({ }), Button({ className: 'osd-music-controlbtn', + onClicked: () => execAsync(['bash', '-c', 'playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"`']) + .catch(print) + , child: Label({ className: 'icon-material osd-music-controlbtn-txt', label: 'skip_next', @@ -297,9 +301,7 @@ const PlayState = ({ player }) => { overlays: [ Widget.Button({ className: 'osd-music-playstate-btn', - onClicked: () => { - Mpris.getPlayer().playPause() - }, + onClicked: () => { console.log('uwu'); execAsync('playerctl play-pause').catch(print) }, child: Widget.Label({ justification: 'center', hpack: 'fill', @@ -380,7 +382,7 @@ export default () => MarginRevealer({ }), connections: [ [showMusicControls, (revealer) => { - if(showMusicControls.value) revealer._show(); + if (showMusicControls.value) revealer._show(); else revealer._hide(); }], ], diff --git a/.config/ags/widgets/sideright/quicktoggles.js b/.config/ags/widgets/sideright/quicktoggles.js index 8281f39e..f7e7e1a0 100644 --- a/.config/ags/widgets/sideright/quicktoggles.js +++ b/.config/ags/widgets/sideright/quicktoggles.js @@ -23,6 +23,7 @@ export const ToggleIconWifi = (props = {}) => Widget.Button({ onClicked: Network.toggleWifi, onSecondaryClickRelease: () => { execAsync(['bash', '-c', 'XDG_CURRENT_DESKTOP="gnome" gnome-control-center wifi', '&']); + App.closeWindow('sideright'); }, child: NetworkIndicator(), connections: [ @@ -49,6 +50,7 @@ export const ToggleIconBluetooth = (props = {}) => Widget.Button({ }, onSecondaryClickRelease: () => { execAsync(['bash', '-c', 'blueberry &']); + App.closeWindow('sideright'); }, child: BluetoothIndicator(), connections: [