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 

Source: https://habr.com/ru/post/J267557/


All Articles