aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Rahm <rahm@google.com>2023-02-03 12:29:07 -0700
committerJosh Rahm <rahm@google.com>2023-02-03 12:29:07 -0700
commit3217f3969b6f481d957641b04d32ae443243c668 (patch)
treeedc316ec065d5d03b791c4c1c35892ffcd807109
parentf4784b81d36a2b60e66fd4050f2c93aa077ca7f5 (diff)
downloadrde-3217f3969b6f481d957641b04d32ae443243c668.tar.gz
rde-3217f3969b6f481d957641b04d32ae443243c668.tar.bz2
rde-3217f3969b6f481d957641b04d32ae443243c668.zip
Add ability to seek media with shift+next/prev.
-rwxr-xr-xextras/HOME/.local/bin/media-control12
-rw-r--r--src/Rahm/Desktop/Keys.hs20
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