From 3217f3969b6f481d957641b04d32ae443243c668 Mon Sep 17 00:00:00 2001 From: Josh Rahm Date: Fri, 3 Feb 2023 12:29:07 -0700 Subject: Add ability to seek media with shift+next/prev. --- extras/HOME/.local/bin/media-control | 12 +++++++++++- src/Rahm/Desktop/Keys.hs | 20 ++++++++++++++++++-- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/extras/HOME/.local/bin/media-control b/extras/HOME/.local/bin/media-control index c3febcd..cc75f80 100755 --- a/extras/HOME/.local/bin/media-control +++ b/extras/HOME/.local/bin/media-control @@ -49,11 +49,15 @@ fi echo "Sending to taget: $target" function mpris2_dbus_player_do { + method="$1" + shift + dbus-send \ --print-reply \ --dest="$target" \ /org/mpris/MediaPlayer2 \ - "org.mpris.MediaPlayer2.Player.$1" + "org.mpris.MediaPlayer2.Player.$method" \ + "$@" } function mpris2_dbus_get_player_property { @@ -69,6 +73,12 @@ case $1 in "play") mpris2_dbus_player_do PlayPause ;; + "seekf") + mpris2_dbus_player_do Seek "int64: 12000000" + ;; + "seekb") + mpris2_dbus_player_do Seek "int64: -3000000" + ;; "next") mpris2_dbus_player_do Next ;; diff --git a/src/Rahm/Desktop/Keys.hs b/src/Rahm/Desktop/Keys.hs index 5c6866e..c34e0ee 100644 --- a/src/Rahm/Desktop/Keys.hs +++ b/src/Rahm/Desktop/Keys.hs @@ -179,6 +179,10 @@ mediaPrev = spawnX "media-control prev" mediaNext = spawnX "media-control next" +mediaSeekB = spawnX "media-control seekb" + +mediaSeekF = spawnX "media-control seekf" + decreaseVolumeDoc = doc "Decrease volume" decreaseVolume increaseVolumeDoc = doc "Increase volume" increaseVolume @@ -189,6 +193,10 @@ mediaPrevDoc = doc "Previous media" mediaPrev mediaNextDoc = doc "Next media" mediaNext +mediaSeekBDoc = doc "Seek back 3 seconds" mediaSeekB + +mediaSeekFDoc = doc "Seek forward 12 seconds" mediaSeekF + button6 :: Button button6 = 6 @@ -310,9 +318,11 @@ keymap = runKeys $ do bind xK_F11 $ do justMod mediaPrevDoc + shiftMod mediaSeekBDoc bind xK_F12 $ do justMod mediaNextDoc + shiftMod mediaSeekFDoc bind xK_Return $ do justMod swapMaster @@ -716,9 +726,13 @@ keymap = runKeys $ do -- Z is reserved to create sub keybindings to do various things. -- I don't really use these at the moment. - bind xK_h $ noMod mediaPrevDoc + bind xK_h $ do + noMod mediaPrevDoc + rawMask shiftMask mediaSeekBDoc bind xK_j $ noMod playPauseDoc - bind xK_l $ noMod mediaNextDoc + bind xK_l $ do + noMod mediaNextDoc + rawMask shiftMask mediaSeekFDoc -- Centers the current focused window. i.e. toggles the Zoom layout -- modifier. @@ -767,9 +781,11 @@ keymap = runKeys $ do bind xF86XK_AudioNext $ do noMod mediaNextDoc + rawMask shiftMask mediaSeekFDoc bind xF86XK_AudioPrev $ do noMod mediaPrevDoc + rawMask shiftMask mediaSeekBDoc bind xF86XK_AudioPrev $ do noMod mediaPrevDoc -- cgit