LINUX.ORG.RU

Шпаргалка и расширенная раскладка для ввода символов с клавиатуры

 , расширенная раскладка клавиатуры,


1

2

За 5 минут не нагуглилось. Нашёл onboard, но это не то. Я набиваю тексты, в которых есть особые значки. Некоторое подмножество юникода. Я хочу, чтобы мне было удобно их набивать. Что это означает?

Это означает, что я нажимаю некую глобальную (в рамках оконного менеджера) горячую кнопку. Ну, скажем, AltGr, и отпускаю её. После этого на экране появляется изображение клавиатуры. Далее я нажимаю и/или удерживаю другую кнопку, допустим, Shift, Ctrl, Caps, F1-F7 и т.п. У меня меняется на клавиатуре раскладка (при удержании одних кнопок и при нажатии других) и сразу отображается. Далее я нажимаю, допустим, на кнопку «а» на своей физической клавиатуре и соответствующий символ вводится туда, где находится текущий текстовый ввод. Далее я нажимаю Esc и клавиатура исчезает, ну или сразу исчезает после ввода одной буквы.

Есть такое? У меня LXDE.

★★★★★

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

ibus у меня странно работал, то ли что-то левое печатал, то ли наоборот, что надо не появлялось, в отдельных приложениях. xcompose не поможет, т.к. мне нужно изредка вводить такие символы, я не упомню эти комбинации. В общем, пока не нашлось ничего. ChatGPT советовал onboard, и это почти может сработать, не считая древности моего дистрибутива. Другое дело, что onboard дублирует текущую включённую раскладку, а мне заведомо именно она не нужна. Т.е. на любой ввод ещё плюс одно лишнее нажатие.

den73 ★★★★★
() автор топика

Корованов не хватает 😁

Разве клавиша Compose не достаточно для этого? Хотя, придется учить символы.

Есть ещё ibus. Запусти ibus-setup, по умолчанию смайлы Ctrl+Shift+E, а юникод Ctrl+Shift+U, но тоже придется учить, видимо.

А чего просто не открыть какой-нибудь gnome-characters и не тыкать туда мышкой? Когда натолкаются любимые в recently used, их можно мышкой таскать в место, где курсор.

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

Да, насчёт gnome-characters (или у меня подобная «таблица символов») - это жизненно. Но тогда уж вообще можно в отдельном окне открыть редактор и копировать оттуда по одному символу.

den73 ★★★★★
() автор топика

Когда-то для старого Яра я (или кто-то ещё) рисовал клавиатуру, вот она:

https://tvoygit.ru/budden/jar/src/branch/master/lp/clcon/экранная-клавиатура.tcl

И плюс есть такой скрипт, написанный с тысячей извинений от ChatGPT:

#!/usr/bin/env wish
package require Tk

proc обработайНажатиеКнопки {k} {
    set command "| echo -n $k | xclip -selection clipboard"
    set pipe [open $command r]
    close $pipe
    exit
}

wm title . "Перехват и отправка клавиш"
wm geometry . 300x200
bind . <KeyPress> { обработайНажатиеКнопки %K }
entry .полеВвода
focus .полеВвода
tkwait window .

Он туповатый - просто копирует (латиницу), нажатую после запуска этой программки, в буфер обмена. Можно попробовать скомбинировать эти два. Глобальные горячие клавиши я уже когда-то делал,

LXDE и Aero Snap

В общем, если это всё вместе сложить, то должно получиться, что надо. Но, «Решение существует, сказал математик, и ушёл обратно в свою комнату».

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

Напомнило мне как я пытался заучить все сочетания клавиш вима: ставил обои с клавишами, распечатывал их и обкладывался листами… И вот у меня в Brave есть расширение для вставки Emoji, но ведь в кедах и винде их можно вставить, нажав Win + ,. Не знаю какие тебе спецсимволы нужны, но я как-то уже запомнил, что ^Shift+U, 00ab - это « и тп, через композ я только длинное тире ввожу.

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

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

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

зажимаешь этот Alt, три раза нажимаешь тире и вставляет —.

Итого: надо нажать 4 (четыре!) клавиши, чтобы ввести один символ. Часто используемые символы (тире, кавычки-ёлочки, многоточие) надо выносить на третий уровень, а композ оставить для редко используемых символов.

debugger ★★★★★
()

Я пока всё же склоняюсь к скрипту с нарисованной клавиатурой и через буфер обмена. Его преимущество в том, что он легко интегрируется - достаточно одну горячую клавишу. Касаемо compose - это нужно на каждом компьютере заново настраивать, в зависимости от оконного менеджера. Ну его нафиг.

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

Compose Key, назначить его, например, на правый Alt, а потом зажимаешь этот Alt

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

papin-aziat ★★★★★
()
Ответ на: комментарий от debugger

(тире, кавычки-ёлочки, многоточие) надо выносить на третий уровень, а композ оставить для редко используемых символов

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

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

да не надо зижамить

Может быть жалко целый модификатор отдать под третий уровень из-за пары-тройки знаков.

многие эти три тире и так вводят вместо длинного пробела, надеясь на автозамену

rtxtxtrx
()
Ответ на: комментарий от papin-aziat

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

den73 ★★★★★
() автор топика
Ответ на: комментарий от papin-aziat

Если это полный список, то их там просто нет. Например, мне нужен квантор существования.

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

Может быть жалко целый модификатор отдать под третий уровень из-за пары-тройки знаков.

Ты же Таппер пользуешь? Прочитал бы хоть раз мануал, что ли… С Таппером можно использовать одну и ту же клавишу и для третьего уровня, и для композа.

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

Понятно, он состоит из двух – квантора существования и перечёркивания: Multi_key U2203 U0338.

Я не знаю, что такое Multi_key, но наверное можно настроить какой-нибудь короткое сочетание через xcompose.

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

Эээ… подумал и теперь понимаю, что можно, ведь удержание не есть тап и наоборот, следовательно можно совместить.

Спасибо за идею, я под композ выделил клавишу меню, надо глянуть, можно ли на неё ещё и третий уровень повесить.

papin-aziat ★★★★★
()
Ответ на: комментарий от den73

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

С таким отношением тебе с линукса съезжать надо. Линукс хорош именно тем, что всё можно подпилить под свои нужды.

У меня есть пара домашних проектов: раскладка клавиатуры (с третьим и четвёртыми уровнями) и композ-таблица, которые дополняют друг друга — часто используемые символы в третьем и четвёртом уровнях раскладки, а редко используемые — в композ-таблице. Я это хозяйство использую уже много лет.

При этом я не публиковал их, потому что пришёл к выводу, что сделать раскладку+таблицу, которая подошла бы широкой публике, невозможно. Кому-то нужен символ ∃, а кому-то нужен Ԙ, кто-то часто использует ѳ, а кто-то ∊. Математику нужно одно, лингвисту — другое, а Раку-программисту — третье. Одной раскладкой+таблицей всем не угодишь.

Посему, если хочешь с комфортом использовать юникодные символы в линуксе, учись. Я не против помочь: могу ответить на конкретные вопросы, но пережёвывать для тебя кашу я не буду.

debugger ★★★★★
()
Ответ на: комментарий от papin-aziat

Понятно, он состоит из двух – квантора существования и перечёркивания: Multi_key U2203 U0338.

В моей персональной раскладке есть символ U+0338 COMBINING LONG SOLIDUS OVERLAY (в третьем уровне). Я его считаю удачной находкой — можно зачёркивать любой символ и получать множество символов: не равно ≠, не больше ≯, не меньше ≮ и так далее.

debugger ★★★★★
()
Ответ на: комментарий от papin-aziat

У меня правда версия таппера 5.0 вроде, надо новый ставить или на этой тоже получится?

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

debugger ★★★★★
()

Чёт очень сложно, а что нельзя просто взять и добавить свою раскладку? Ну в смысле навесить определённые символы на клавиши и просто переключать на нужный набор символов? Можно даже если прям ооочнеь часто нужно на клавиши гравировку или наклейки повесить. Вот прям просто раскладку без всяких там сочетаний клавиш долбанутых, идиотских compose и прочих бредов. Должно же быть такое А то ради ввода одного символа, задать alt, запускается программа отдельная затем нажать ещё шоткат затем уже нажатие на клавиатуре, а потом ещё для выхода esc. Добланёшься всё это делать проще просто из файлика символ скопировать мышкой и вставить и то быстрее будет или прям забиндить ctrl+F1..F12 на 12 символов например так что просто в поле ввода вставляется нужный символ и всё, дело 1 скрипта.

Чем отличается создание раскладки со смайликами от обычной раскладки для например я не знаю французского? Или я чего не понимаю?

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от papin-aziat

из-за пары-тройки знаков.

Кстати, на моей персональной раскладке там больше чем пара-тройка знаков: дореформенные русские буквы, символы «»‹›„“”‚‘’⩽⩾—–…‥•‣·₽№§‰〈〉± и все знаки, которые есть в английской раскладке но нет в русской: []{}<>&@#$%^&. Я пришёл к выводу, что нажать две клавиши (AltGr+[) для ввода квадратной скобки удобнее, чем переключаться с русского на английский, вводить скобку и переключаться обратно.

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

Ну раз уж пошла такая пьянка, то я в своё время делал вот такое.

https://программирование-по-русски.рф/яроклава-js.яргт/

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

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

В итоге откопал старый проект, почистил его от 95% кода и получилось вот что:

https://tvoygit.ru/budden/ehklava

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

https://dzen.ru/video/watch/656873e8654b6f493aeab8b4

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

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

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

В итоге откопал старый проект, почистил его от 95% кода и получилось вот что: https://tvoygit.ru/budden/ehklava

Получилось 404.

Также записал видосик:

В печку твой видосик. В письменном виде можно узнать, в чём киллер-фича твоего проекта?

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

Случайно сделал закрытым. Поправил.

Нажимаю горячую клавишу (не compose), появляется изображение клавиатуры с нанесёнными значками. Нажимаю на физической клавиатуре соответствующую кнопку - значок вставляется в буфер обмена, а изображение клавиатуры исчезает. Всё.

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

Нажимаю горячую клавишу (не compose), появляется изображение клавиатуры с нанесёнными значками.

Программа резидентом висит в памяти или каждый раз запускается по горячей клавише? На чём написана?

значок вставляется в буфер обмена, а изображение клавиатуры исчезает.

Почему в буфер обмена? Пользователю придётся тут же нажимать либо кнопку мыши либо Ctrl+V, чтобы вставить этот значок. Если ты хоть немножко заботишься о пользователе (читай «о себе» — ты ж ведь эту программу для себя сделал), то значок должен появляться так, как будто он введён с клавиатуры без всяких буферов обмена.

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

каждый раз запускается по горячей клавише?

Да.

На чём написана?

Видосик отправил в топку, а в репозиторий заглянуть что не позволяет? 404 там уже нет.

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

Сделай лучше и пришли запрос на слияние, с удовольствием приму. Сделал, как сумел/успел. У меня работа ещё есть, и всякое другое.

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

Видосик отправил в топку, а в репозиторий заглянуть что не позволяет?

Лень.

Сделай лучше и пришли запрос на слияние, с удовольствием приму. Сделал, как сумел/успел. У меня работа ещё есть, и всякое другое.

Если б я этой штукой пользовался, то сделал бы. А поскольку я этой штукой не пользуюсь, то не нахожу в себе достаточной мотивации для каких-либо телодвижений.

Я дал тебе совет, как улучшить юзабилити твоей поделки. Дальше твоё дело: хочешь — следуй ему, не хочешь — не следуй, мне без разницы.

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

Да совет-то отличный, только не совсем ясно, как ему последовать, т.к. нужно:

  • знать, какое приложение имеет фокус ввода
  • отправить ему нажатия кнопки до того, как моё приложение завершится

Может быть, это и можно, но я не разобрался, как.

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

знать, какое приложение имеет фокус ввода

Зачем? Не надо этого знать. Закрываешь окно своей программы, чтобы фокус вернулся туда, где он был ранее, далее вызываешь xdotool (с нужными параметрами) — он умеет эмулировать ввод юникодных символов. Всё.

Возможно, там будут кое-какие проблемы (я без понятия как в тикле гуёвые приложения работают), но я уверен что их можно обойти относительно просто.

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

Видосик отправил в топку, а в репозиторий заглянуть что не позволяет? 404 там уже нет.

Любопытство пересилило лень, я заглянул.

Запускаю эклава.sh:

$ ./эклава.sh
Error in startup script: can't find package tablelist
    while executing
"package require tablelist"
    (file "/home/vdb/prj/Alien/ehklava/эклава.tcl" line 1411)

wish у меня уже стоит, других зависимостей в REAME.md нет. WTF?

debugger ★★★★★
()