svbck.org

My EMMS Dired-Player Transient

Transients seemingly are all the rage recently and I have built a few myself once I realized that Transient is built-in already, thus doesn't need any additional packages. The recently released CASUAL DIRED package inspired me to share my EMMS-DIRED-PLAYER transient that I have built a while ago.

I am not a "playlist-guy" and my usual use-case for listening to music is selecting either a file or folder in DIRED and simply play that. To make the process a little more convenient I have built an EMMS-DIRED-PLAYER transient.

I am sure this transient can be still improved, and likely I will do so at some point, but I am using this for a while and for the time being it does seem to do the trick.

  (transient-define-prefix svbck/emms-dired-transient ()
    :transient-suffix     'transient--do-stay
    ["EMMS Dired Player\n"
     ["Player Controls"
      ("P" "Play Dired" emms-play-dired )
      ("SPC" "Pause" emms-pause)
      ("s" "Stop" emms-stop)
      ("k" "Seek" emms-seek)
      (">" "Forward" emms-seek-forward)
      ("<" "Backward\n" emms-seek-backward)]

     ["Navigate Library"
      ("n" "Next Line" next-line)
      ("p" "Previous Line" previous-line)
      ("RET" "Open" dired-find-file)
      ("q" "Close" bury-buffer)
      ]
     ["Playlist"
      ("g" "Exit & Goto Playlist" emms :transient nil)
      ("N" "New Playlist" emms-playlist-new)
      ]
     [""
      ("ESC" "Exit Player" transient-quit-one)]
     ])

  (define-key dired-mode-map "ä" #'svbck/emms-dired-transient)

Since I am using a Scandinavian keyboard-layout I have bound the transient to "ä" since it is unlikely to be bound to anything else.

I am still torn whether I like the whole transient thing, but it is quite convenient and setting one up is rather straight forward. One thing that I specifically enjoy is that I can name the commands in a way that it makes to me, as opposed to the "usual" approach which shows the full command-name in say "which-key".

In any case have set a few up to make my most-common tasks a little more convenient.

#emacs