Yandex.Radioでマルチメディアキーを固定します

少し前まで、Yandex.Radioサービスを発見し、非常にうまく使用しています。 しかし、ここで不足しているのは、次のトラックを有効にする機能、またはタブに切り替えることなく一時停止する機能です。



私の解決策は未熟です。



Arch Linux、Firefox、i3wm、およびメディアキーを備えたキーボードを自由に使用できます。



1 Firefoxの拡張機能



おそらくChromeにも似たようなものがありますが、ここでは優秀な人々が非常に適切な拡張機能を考え出しました。その本質はjavascriptのリモート起動です。 選択したタブに含めると、Firefoxはポート32000を開き、そこでポートがコマンドを受信して​​実行します。 すべてが非常に簡単です。



このように:



$ netstat -ntpl | grep 32000 tcp 0 0 127.0.0.1:32000 0.0.0.0:* LISTEN 3687/firefox
      
      





2コマンドを送信するスクリプト



次に、コマンドをブラウザーに送信して、たとえば〜/ .opt / bin / radio.yandex.ru-clientに配置するスクリプトを作成します。



 #!/bin/bash case "$1" in playpause) CMD="Mu.Flow.togglePause();" ;; next) CMD="Mu.Flow.flow.next();" ;; esac echo $CMD | nc -c localhost 32000 exit 0
      
      





3メディアキーのバインド





構成ファイルi3wm〜/ .i3 / configを編集します。



 bindsym XF86AudioPlay exec ~/.opt/bin/radio.yandex.ru-client playpause bindsym XF86AudioNext exec ~/.opt/bin/radio.yandex.ru-client next
      
      





キーボードにNextキーがなかったため、Super + VolumeUpにバインドする必要がありました。



 bindsym $mod+XF86AudioRaiseVolume exec ~/.opt/bin/radio.yandex.ru-client next
      
      





試行2



原則として、これは終了した可能性がありますが、このタブに拡張機能を含める必要性が残っており、拡張機能は非常に興味深いように見えましたが、多少制限がありました。



完了


名前やURIなどによって、任意のタブにアクセスすることはできませんでした。 拡張機能の利点はgithubで公開されています。 次の分岐-> developer.mozilla.org->完了。 プルリクエストがありますが、現在のところ、修正された拡張機能はraw.githubusercontent.com/irvinzz/FF-Remote-Control/master/remote_control-1.3-fx.xpiにあります。



そして、それに応じて、適応スクリプト


 #!/bin/bash case "$1" in playpause) CMD='{"selector":{"uri":"https://radio.yandex.ru/"},"command":"Mu.Flow.togglePause();"}' ;; next) CMD='{"selector":{"uri":"https://radio.yandex.ru/"},"command":"Mu.Flow.flow.next();"}' ;; esac echo $CMD | nc -c localhost 32000 exit 0
      
      





注文のために、スクリプトのリポジトリgithub.com/irvinzz/sites-remote-controlを開始しました。 他のサイトのプルリクエストを受け入れる準備ができています。



ご清聴ありがとうございました。その原理は明確で、Windows、Chrome、その他の音楽付きサイトに適応できると思います。



PS:

窓の下



予想どおり、ウィンドウの適応は待たされませんでした。

ここで議論があります。

NetCat- ここから取得

ここに私が得たものがあります:

music.yandex.ru.cmd:

 @echo off GOTO :%1 :playpause set "CMD=(function(f){f.player.pause()^|^|f.player.resume()^|^|f.play()})(Mu.pages.player.flow);" goto :END :next set "CMD=Mu.pages.player.flow.next();" goto :END :prev set "CMD=Mu.pages.player.flow.prev(); goto :END :END echo %CMD% > cmd.txt type cmd.txt | nc.exe -v -d localhost 32000 del cmd.txt
      
      





この方法で、点滅するウィンドウを取り除くことができます。

music.yandex.ru-playpause.vbs:

 CreateObject("Wscript.Shell").Run "music.yandex.ru.cmd playpause", 0, True
      
      






All Articles