Project

General

Profile

Actions

Feature #987

closed

Мультимедийные клавиши

Added by DA over 11 years ago. Updated over 11 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Plugins: GActs
Target version:
Start date:
03/12/2013
Due date:
% Done:

100%

Estimated time:
5:00 h

Description

Прошу реализовать
- полноценную работу с клавишами с соотвествующими аудиоплееру функциями;
- возможность биндинга прочих клавиш на другие удобные функции, например, отобразить уведомление с информацией о текущем трекер или развернуть окно личкрафтов с открытой активной вкладкой проигрывателя.

Actions #1

Updated by Mellon over 11 years ago

В общем, первая хрень должна изкаропки работать: просто биндить на XF86Audio*, если не биндится - значит баг.
Если кейкод не распознается иксами - значит проблемы иксов.
Если клавиши ваще левые и не выдают нормальный кейкод - то проблема драйвера конкретного девайса.

Actions #2

Updated by DA over 11 years ago

В общем, первая хрень должна изкаропки работать: просто биндить на XF86Audio*, если не биндится - значит баг.

Реквестирую нормальные интерфейсы, гуглить названия кнопок — моветон.

Если кейкод не распознается иксами - значит проблемы иксов.
Если клавиши ваще левые и не выдают нормальный кейкод - то проблема драйвера конкретного девайса.

В qmmp всё описанное выше работает.

Actions #4

Updated by DA over 11 years ago

«LeechCraft-way», понятно :(

Actions #5

Updated by 0xd34df00d over 11 years ago

Если убедишься, что я могу скопировать qxtglobalshortcut.h к себе в сорсы и не поиметь проблем с лицензией что сейчас, что потом с MIT/BSD — я так и сделаю и тупо отвяжусь от Qxt.

Actions #6

Updated by DA over 11 years ago

Я хочу поменять лицензию, поэтому не буду делать полезный функционал? Алсо "CPL-1.0 and LGPL-2.1" ­— тырить нельзя без сохранения лицензии. Проприетарщики и прочие юзеры личкрафтов в пролёте?

Actions #7

Updated by 0xd34df00d over 11 years ago

Я не буду делать полезный функционал, потому что не могу сделать платформозависимую штуку за незнанием платформенных API, а ждать, пока появится кто-то и заимплементит функционал QxtGlobalShortcut, можно долго.

Actions #8

Updated by DA over 11 years ago

Ненужные пользователям лицензиепроблемы. Если тебя так попёрло, сделай для модуля глобальных клавиш двойное лицензирование.

Actions #9

Updated by 0xd34df00d over 11 years ago

В душе не шарю, как это сделать. В общем, расскажи, как правильнее поступить с лицензиями, а с меня код.

Actions #10

Updated by DA over 11 years ago

Если я правильно понимаю, ты волен навесить на проект или любую его часть любое количество любых лицензий. См. в сторону лисы, например: MPL несовместима с GPL, но двойное лицензирование позволило им и юзать гпльный шлаг, и при необходимости скрывать сорцы в форках. Вообще за этим лучше к Технику.

Actions #11

Updated by Mellon over 11 years ago

В общем, ничего не понял, о чем вы. НО сделал вот так http://dump.bitcheese.net/images/emynavy/screenshot.png
А оно не работает. В смысле не реагирует на нажатия

Actions #12

Updated by Mellon over 11 years ago

DA wrote:

Реквестирую нормальные интерфейсы, гуглить названия кнопок — моветон.

Эм.. Зачем гуглить? иксы сами определяют кнопки и нормально предают личам. На картинке выше показано.

В qmmp всё описанное выше работает.

Значит иксы нормально подхватили мультимедия-клавиши и они должны работать как самые обыкновенные клавиши по всем иксам.

Actions #13

Updated by DA over 11 years ago

@Mellon , ибо баг в qxt.

Actions #14

Updated by Mellon over 11 years ago

херота.
Ок. DA, у нас всегда есть ход конем:
вешаем иксовыми/дешными биндилками на мультимедиаклавиши

qdbus org.mpris.MediaPlayer2.LMP /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause

или что ещё есть в
% qdbus org.mpris.MediaPlayer2.LMP /org/mpris/MediaPlayer2 | grep method.*org.mpris.MediaPlayer2.Player
method void org.mpris.MediaPlayer2.Player.Next()
method void org.mpris.MediaPlayer2.Player.OpenUri(QString Uri)
method void org.mpris.MediaPlayer2.Player.Pause()
method void org.mpris.MediaPlayer2.Player.Play()
method void org.mpris.MediaPlayer2.Player.PlayPause()
method void org.mpris.MediaPlayer2.Player.Previous()
method void org.mpris.MediaPlayer2.Player.Seek(qlonglong Offset)
method void org.mpris.MediaPlayer2.Player.SetPosition(QDBusObjectPath TrackId, qlonglong Position)
method void org.mpris.MediaPlayer2.Player.Stop()

алсо можно привязать к личам, можно завернуть в комплексный скипт оценивающий наличие интерфейсов MPRIS и активность плееров и тд и тп - прям раздолье для наколенного велосипедостроения

Actions #15

Updated by DA over 11 years ago

Годно, спасибо. Алсо осталось реализовать вторую половину :)

Actions #16

Updated by 0xd34df00d over 11 years ago

На самом деле не нужно. Лучше попробовать сделать gacts под двойной лицензией.

Actions #17

Updated by 0xd34df00d over 11 years ago

  • Status changed from Third-party bug to Reopened
  • Target version set to 0.5.95
  • Estimated time set to 5:00 h
Actions #18

Updated by 0xd34df00d over 11 years ago

  • Status changed from Reopened to Closed

Добавил возможность использования модулем GActs встроенной qxt (и саму встроенную пропатченную qxt), включена по дефолту, регулируется флагом WITH_GACTS_BUNDLED_QXT симейка. Когда включено, очевидно, зависимости от Qxt нет.

Смотрите сами, чо там с зависимостями, лицензиями и прочим счастьем.

Actions #19

Updated by 0xd34df00d over 11 years ago

  • Category changed from Plugins: LMP to Plugins: GActs
Actions #20

Updated by Mellon over 11 years ago

Работает.

Actions

Also available in: Atom PDF