ТЕКСТЫ

New Bit workshop

Рекламные статьи, статьи обзоров, бюро копирайтинга "Марька"


НОВОСТИ

New Bit workshop

Новости науки и техники

Рейтинги,

обзоры

» » »
Как настроить клавиши в Яндекс.Радио ?
Не так давно открыл я для себя сервис Яндекс.Радиоь. Но вот чего не хватает: возможности включить следующий трек или поставить на паузу, не переключаясь на вкладку.

Решение под катом.

В распоряжении есть Arch Linux, Firefox, i3wm и клавиатура с медиаклавишами.

1 Расширение в Firefox


Для Хрома есть  аналогичное, но тут добрые люди придумали  подходящее расширение, суть которого — удаленный запуск 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. Далее fork -> developer.mozilla.org -> готово. Есть pull request, а пока доработанное расширение можно взять тут: 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. Готов принимать pull request для других сайтов.
Комментариев: 2189 | : медиаклавиши, браузеры, Яндекс.радио
Войти через соцсети