LINUX.ORG.RU

QVKbd

 , ,


2

3

Я тут короче запилил свою виртуальную клавиатуру с шахматами и поэтессами. Вдохновлялся kvkbd (но это не форк).

https://github.com/KivApple/qvkbd

Основные плюшки:

1) Содержит все необходимые клавиши, которые есть на среднестатистической клавиатуре

2) Легко в будущем добавить альтернативные раскладки, потому что сама раскладка реализована в виде QML и её можно редактировать графически в Qt Creator

3) Стиль оформления пока только один, но он поддерживает прозрачность и размытие (отключается, разумеется). Выглядит достаточно симпатично. В планах на будущее добавить больше стилей, но я пока не придумал как именно это реализовать наиболее правильно.

4) Очень важная фича: размеры и положение клавиатуры запоминаются независимо для каждого разрешения экрана. Почему это важно? Представьте, что у вас планшет и вы используете поворот экрана. Логично, что при портретной ориентации экрана клавиатура должна располагаться совсем в других координатах, нежели чем в ланшафтной.

5) Нет привязок к KDE (в отличии от kvkbd). Требует только Qt и QtQuick. А ещё иксы (поддержку Wayland когда-нибудь добавлю). Используются расширения иксов Xkb и XRecord.

6) Поддерживает различные раскладки. Причём значения клавиш получаются через Xkb, так что сразу должна работать любая раскладка, даже если я никогда про этот язык не слышал. Также раскладки можно менять с помощью специальной кнопки (циклически переключается системные раскладки).

7) Имеет D-Bus интерфейс. Не знаю зачем, но вдруг кому-нибудь пригодится. Пока есть только 3 возможности - показать, скрыть и переключить видимость.

Так что если вы будете ставить Linux на какой-нибудь планшет или прилаживать к Linux-компьютеру тачскрин иным способом, то имейте ввиду, что помимо других проектов есть ещё и этот. А ещё я бы очень хотел знать, чего в этой клавиатуре не хватает или какие баги там наоборот имеются.

★★★★★

А автоматически разве нельзя как-то генерировать раскладки?

te111011010 ()
Ответ на: комментарий от te111011010

В смысле? Они и так автоматические. При смене текущей раскладки, я для каждого скан-кода (кроме всяких Shift, Control, функциональных клавиш и т. д.) заправшиваю у иксов переведённое в строку значение. И ставлю его в качестве надписи на кнопку.

KivApple ★★★★★ ()
Ответ на: комментарий от KivApple

А вот это:

2) Легко в будущем добавить альтернативные раскладки, потому что сама раскладка реализована в виде QML и её можно редактировать графически в Qt Creator

к чему относится?

te111011010 ()
Ответ на: комментарий от te111011010

В смысле потенциально не сложно добавить другой вид клавиатуры. Не в смысле раскладку как языка, а в смысле физическое иное расположение кнопок.

KivApple ★★★★★ ()
Ответ на: комментарий от RazrFalcon

1) Куда лучше залить скриншот? Прямо в репозиторий? На какой-нибудь хостинг картинок, дающий прямые ссылки?

2) А полученный Makefile будет поддерживать переопределение пути установки (нужно при пакетировании)? Типа make install DESTDIR=$pkgdir?

KivApple ★★★★★ ()
Ответ на: комментарий от KivApple

Прямо в репозиторий?

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

alexferman ()
Ответ на: комментарий от KivApple

1) Заливаю прямо в репу, как и многие. Можно через optipng пожать.

2) Вроде бы да, через PREFIX (или другой дефайн). Пример.

RazrFalcon ★★★★★ ()
Последнее исправление: RazrFalcon (всего исправлений: 1)
Ответ на: комментарий от RazrFalcon

Добавил скриншот, с Makefile разберусь чуть позднее.

KivApple ★★★★★ ()

А почему не взял maliit? (nokia n9, plasma active, ubuntu touch(?))? Киллерфича - всплывает самостоятельно при нажатии в какой-нибудь инпут.

NeverLoved ★★★★★ ()
Последнее исправление: NeverLoved (всего исправлений: 1)

так что сразу должна работать любая раскладка, даже если я никогда про этот язык не слышал

С языками из группы CJK не прокатит.

А ещё я бы очень хотел знать, чего в этой клавиатуре не хватает или какие баги там наоборот имеются.

Может лучше подаробатывать Onboard? Это то, чем люди реально пользуются вот прямо сейчас на планшетах и транформерах, и там не хватает разработчиков.

RussianNeuroMancer ★★★★★ ()
Ответ на: комментарий от KivApple

Теперь хоть понятно как выглядит. Бросается в глаза то, что отступы между краями кнопок и текстом везде разные.

RazrFalcon ★★★★★ ()
Ответ на: комментарий от NeverLoved

А почему не взял maliit?

Потому что, судя по коммитам, проект сдох? В любом случае, если сегодня идти в магазин за x86-планшетом/трансформером, и ставить на него то, чем можно пользоваться прямо сейчас без чехла/дока-клавиатуры с тачпадом, то ставить придётся Gnome Shell и Onboard. Внезапно в 2016 году оказалось, что запиливание Gnome Shell и приложений Gnome под сенсорное управление всё-таки было хорошей, перспективной идеей, которая дала свои плоды.

Я, конечно, приветствую попытки обустроить KDE для использования на планшетах/трансформерах, но пока у KDE e.V. нет четкого плана о том, как это сделать, смысл совершать какие-либо телодвижения? Там ведь не клавиатура нужна, а перепиливание интерфейсов всего десктопного софта. В теории Kirigami и Plasma Active это движение в верном направлении, на практике Plasma Active подходит для устройств с диагональю экрана 7-8 дюймов, а от 10, да тем более с чехлом/доком-клавиатурой уже нужна Plasma Desktop, но она становится бесполезна в планшетом режиме не столько по своей вине (панель можно подкрутить, невелика сложность) сколько по причине недоработанности интерфейсов базовых приложений. У Gnome Shell тоже есть сложности в этом плане (например отсутствие почтового клиента пригодного для сенсорного управления) но их хотя бы меньше, а наличие киллер-фич, типа вызова Onboard свайпом, благодаря интеграции с Gnome Shell, делает Gnome Shell практически безальтернативным вариантом на-сегодня (альтернатива - ставить Android x86, но люди не для того переплачивают за x86-планшеты/трансформеры, чтобы потом пользоваться на них Android).

Что касается Ubuntu Touch - я пытался завести Ubuntu Touch на x86-железе, но не нашёл способа загрузить систему без контейнера с Android-драйверами. Загрузка просто прерывается и ожидает старта Android в контейнере.

RussianNeuroMancer ★★★★★ ()
Ответ на: комментарий от RussianNeuroMancer

OMG, я просто перечислил проекты, которые юзают maliit.

NeverLoved ★★★★★ ()
Ответ на: комментарий от RazrFalcon

???

Там на всех кнопках текст отцентирован вроде как.

KivApple ★★★★★ ()

На 3.5 дюймах нормально выглядеть будет? (Малинка)

daniilArch ★★ ()
Ответ на: комментарий от daniilArch

Ну если мышкой тыкать, то да. Пальцем точно не попадёшь. С другой стороны я себе слабо представляю клавиатуру, которая на 3.5 дюймах будет адекаватна для тыканья пальцем. Разве что сделать чисто цифры и преобразовывать их в буквы как на старых телефонах.

KivApple ★★★★★ ()
Ответ на: комментарий от RussianNeuroMancer

Чисто технически Qt умеет всё что нужно и добавление поддержки тача в приложения должно быть очень простым. Почему авторы KDE до сих пор этим толком не воспользовались, мне не понятно.

Например, сама плазма, а также Okular умеют в тач-жесты. А большинство остальных приложений - нет.

KivApple ★★★★★ ()
Ответ на: комментарий от KivApple

Да, но отступы между текстом и краем кнопки разные. См. F12 и Home.

RazrFalcon ★★★★★ ()
Ответ на: комментарий от KivApple

Почему авторы KDE до сих пор этим толком не воспользовались, мне не понятно.

До KDE 6 вряд ли что-либо кардинально изменится. Помогите там, где ваша помощь реально нужна:
https://bugs.launchpad.net/onboard/+bug/1080578
https://bugs.launchpad.net/onboard/+bug/1651601

RussianNeuroMancer ★★★★★ ()
Ответ на: комментарий от NeverLoved

OMG, я просто перечислил проекты, которые юзают maliit.

Ну, да, у меня бомбит от того что одну единственную юзабельную экранную клавиатуру в GNU/Linux (причём на самом деле гораздо более удобную, чем встроенная клавиатура Windows 10) разрабатывает один единственный человек, а народ вместо того, чтобы помочь ему - пилит велосипеды, которыми будет пользоваться натурально полтора человека.

RussianNeuroMancer ★★★★★ ()

Вопрос: насколько сложно добавить поддержку Шindows?

UPD: почитал код, по ходу нет. Может добавлю и заюзаю у себя в проприетарщине (GPLv3 для отдельного приложения мне катит).

Pavval ★★★★★ ()
Последнее исправление: Pavval (всего исправлений: 1)

Класс! Нужно! Особенно вызов клавиатуры через dbus. Попробую на одном из своих устройств.

nighthawk ()
Ответ на: комментарий от Pavval

Нужно выпилить dbus, а также переписать класс X11Support. Остальное все кроссплатформенно.

KivApple ★★★★★ ()
Ответ на: комментарий от RussianNeuroMancer

Поставил я onboard. Что в ней такого принципиально отличающего её от QVkbd, Kvkbd и т. д.? Ну да, несколько дополнительных раскладок + цветовые схемы. Но это и у меня в планах. Причём раскладки добавить вообще не проблема и я это собирался сделать как только разберусь с цветовыми схемами, потому что их введение может отразиться на формате раскладок.

А, ну ещё режим прилипания к краю экрана, который в KDE работает очень криво (onboard закрыл собой всю панель).

Плавующий значок быстрого вызова клавиатуры? Нет уж, в KDE в отличии от Gnome есть нормальный системный трей. Но я уже давно думал о том, чтобы как-то детектить полноэкранные окна и если они имеются, то отображать поверх них значок для вызова клавиатуры.

В общем, все разницы в фичах допиливаются за 2-3 дня, если не лениться.

KivApple ★★★★★ ()
Ответ на: комментарий от RussianNeuroMancer

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

1) Стандартная клавиатура Gnome не умела раскладки отличные от английской от слова «совсем».

2) Нестандартные клавиатуры не могли отображаться поверх элементов Gnome Shell.

Как сейчас с этим?

KivApple ★★★★★ ()
Ответ на: комментарий от KivApple

Во-первых поблема в том, что вы попробовали Onboard в DE для которого у Onboard нет расширения для интеграции (отсюда например ваша претензия к плавающему значку). Во-вторых, например в разрабатываемой версии значительно расширили опции авто-отображения клавиатуры добавили поддержку опредеения наличия клавиатуры на некоторых трансформерах (чтобы автоматически прятать экранную клавиатуру при подключении аппаратной). В-третьих посмотрите настройки прикрепления к краю экрана, дополнительные настройки в разделе Клавиатура, настройки содействия при вводите. Это не делается за 2-3 дня, это годы разработки и исправления багов.

RussianNeuroMancer ★★★★★ ()
Ответ на: комментарий от KivApple

1) С Caribou всё так же.
2) Если имеется ввиду окно запроса пароля или главное меню Gnome Shell, то тут тоже без изменений.

RussianNeuroMancer ★★★★★ ()
Ответ на: комментарий от RussianNeuroMancer

Загрузил LiveCD Fedora в VirtualBox и хорошенько потыкал дефолтную виртуальную клавиатуру. В итоге выяснил, что всё не так уж плохо - в /usr/share/caribou лежат раскладки в xml-формате. Немного поэкспериментировал и создал из us.xml ru.xml, в которой заменил пару клавиш на соответствующие русские. В результате после перезапуска виртуальной клавиатуры (просто выключить и включить её в настройках), если переключиться на русскую раскладку, то соответствующие клавиши стали работать так как хотелось бы. В принципе дело получаса создать xml-файл с полноценной русской раскладкой. А если верить статье на Gnome Wiki, то они должны нормально принимать патчи, добавляющие раскладки.

KivApple ★★★★★ ()
Ответ на: комментарий от RussianNeuroMancer

Кстати, как я понимаю, ты тыкал актуальный Gnome на тач-скрине. Как там дела с поддержкой? Я пробросил wacom в virtualbox и потыкал всё это хозяйство. Ну... сам gnome shell (этим меня не удивишь - плазма тоже всё умеет) тач-жесты поддерживает, также nautilus и gedit (а вот это уже приятнее, ибо dolphin и kwrite таким похвастаться не могут). Но особо потестировать не могу, ибо система быстро приходит в негодность и крашится (предполагаю, что выделенных 4 ГБ ОЗУ не хватает, ведь нужно Live-образ в ней держать).

Насколько Gnome3 и его приложения готовы в тачу? Ты сказал почтовый клиент в тач не может, а что ещё?

KivApple ★★★★★ ()
Последнее исправление: KivApple (всего исправлений: 1)
Ответ на: комментарий от KivApple

Есть ряд небольшие недоработки в GTK3, например долгий тап не приводит к появлению контекстного меню (тут помагает имитация ПКМ из Onboard) просмотрщик изображений не перелистывает жестом (насколько я помню, раньше перелистывал, так что регрессия) и подобные мелочи. В целом недавно написанные/перписанные приложения, например Документы, Книги, Карты, Музыка, Менеджер архивов, и т.д. полностью поддерживают тач.

RussianNeuroMancer ★★★★★ ()
Ответ на: комментарий от RussianNeuroMancer

Ты не знаешь, что из себя представляют разработчики Gnome? В смысле вот, например, я заметил, что в картах не работает pitch to zoom. Если я напишу им баг-репорт, насколько быстро они отреагируют? А если, допустим, мне станет очень скучно и я запилю патч, который всё исправляет, насколько велик шанс, что они его посмотрят и примут (допустим, там не будет быдлокода)?

Я планирую в ближайшем будущем купить SSD побольше для своего ThinkPad и соответственно поставить систему с нуля. И теперь серьёзно подумываю насчёт Gnome vs KDE.

KivApple ★★★★★ ()
Последнее исправление: KivApple (всего исправлений: 1)
Ответ на: комментарий от KivApple

Не в курсе как дела с исправлением багов, про отправку патчей здесь:
https://wiki.gnome.org/Newcomers/SubmittingPatches
https://wiki.gnome.org/Newcomers/CodeContributionWorkflow

Если выбирать DE для разработки чего-то, что касается сенсорного управления, то см. второй абзац (говорю это как пользователь KDE с 2009 года).

RussianNeuroMancer ★★★★★ ()
Ответ на: комментарий от RussianNeuroMancer

Кстати, а как вызывать caliboru в приложениях, которые её не поддерживают? Допустим, тот же хром.

KivApple ★★★★★ ()
Ответ на: комментарий от KivApple

По поводу почтового клиента. Есть мнение, что Nylas N1 может этот вопрос решить (сам пока не проверял).

RussianNeuroMancer ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.