Эмуляция Alt ASCII-кодов в Linux

666
Andrea

У меня есть Alphasmart Neo, который эмулирует клавиатуру при подключении к компьютеру для отправки текстовых файлов. В основном это работает как очень быстрая машинистка. Когда он ударяет акцентированный символ, он пытается использовать комбинации клавиш Alt Windows для их вставки.

Например, éсимвол отправляется как Alt+ 0 2 3 3. Конечно, это только отправляет вздор под Linux, потому что он обрабатывает специальные символы по-другому.

Я не могу изменить способ отправки файлов с устройства.

Мне было интересно, есть ли способ временно эмулировать эти Altнажатия клавиш Windows под Linux, чтобы файлы отправлялись правильно.

2
может быть полезно: https://unix.stackexchange.com/questions/117027/insert-a-character-that-isnt-present-on-my-keyboard-on-linux-mint Fabian 6 лет назад 0
Как бы ужасно это не звучало, вам может понадобиться программа, которая получает необработанный ввод с клавиатуры «устройство» и обрабатывает сами коды. Я не знаю такой программы. Ignacio Vazquez-Abrams 6 лет назад 0
@Fabian спасибо, похоже, что консоль Linux (Ctrl + Alt + F1) позволяет Alt-коды и отправка файла туда работает. Однако я надеялся на способ подражать этому в графическом интерфейсе. Andrea 6 лет назад 0
@ IgnacioVazquez-Abrams Это то, что меня беспокоило. Я надеялся на более простой способ сделать это. Andrea 6 лет назад 0
Теперь, когда я думаю больше, движок IBus, вероятно, мог бы быть написан, чтобы справиться с этим, но это вне моей компетенции. Ignacio Vazquez-Abrams 6 лет назад 0
Возможный дубликат [Как печатать специальные символы в Linux?] (Https://superuser.com/questions/59418/how-to-type-special-characters-in-linux) phuclv 6 лет назад 0
[Альтернатива Linux кодам alt + numpad] (https://unix.stackexchange.com/q/254477/44425). При поиске «alt code linux» также немедленно дается ответ из википедии https://en.wikipedia.org/wiki/Alt_code#Linux phuclv 6 лет назад 0

2 ответа на вопрос

0
Andrea

Так что, кажется, есть обходной путь. Консоль Linux ( Ctrl+ Alt+ F1) позволяет использовать коды Alt и отправка файла туда работает.

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

Примечание: согласно [this] (https://superuser.com/help/self-answer), «немногие» - это как минимум около 48. :) Kamil Maciorowski 6 лет назад 0
@KamilMaciorowski хорошо, извините, моя ошибка Andrea 6 лет назад 0
Ни об ошибке, ни о чем сожалеть. Я просто дам вам знать, что сайт не позволит вам принять этот ответ в течение нескольких дней. Kamil Maciorowski 6 лет назад 0
0
Austin Hemmelgarn

Не совсем то, что вы просите, но достаточно похоже, что это, вероятно, все еще будет работать:

Многие (но не все) платформы IME (включая ibus и fctix) в Linux поддерживают библиотеку m17n для предоставления IME. Библиотека m17n предоставляет множество простых в использовании IME (включая тривиальные переназначения клавиатуры для работы с различными языками). Один из них, просто называемый «Юникод», происходит почти так же, как и альтернативные коды. Единственными двумя отличиями являются:

  • Альтернативные коды зависят от того, какая кодовая страница вашей системы предназначена для устаревших приложений. IME m17n 'Unicode' использует шестнадцатеричные кодовые точки Unicode, которые на 100% непротиворечивы независимо от того, как еще настроена система.
  • Альт-коды требуют, чтобы вы удерживали клавишу Alt и использовали цифровую клавиатуру для ввода цифр. IME m17n 'Unicode' использует Ctrl-U в качестве последовательности триггера и позволяет вводить код любым удобным вам способом (при условии, что он соответствует требуемому шестнадцатеричному коду).

Итак, для вашего примера строчной латинской буквы «е» с острым акцентом точная последовательность для IME «Unicode» m17m будет такой Ctrl-U 0 0 e 9. Численно шестнадцатеричное число 00e9 фактически идентично десятичному значению 0233, используемому для эквивалентного кода Alt с CP1252. Это происходит для большинства первых 256 символов в Юникоде, поскольку они в основном совпадают с CP1252 как в порядке, так и в положении. Эта эквивалентность, однако, не относится к более высоким числам.

Другие IME, предоставляемые m17n, которые могут представлять потенциальный интерес для вас, включают «Latin-Post» и «Latin-Pre», которые позволяют добавлять определенные символы после или перед буквой для создания диакритических знаков или специальных букв (для этого вы должны использовать либо e'или 'eсоответственно) и 'RFC 1345', который использует мнемонику RFC 1345, чтобы позволить вводить подавляющее большинство широко используемых символов из BMP Unicode (и будет использовать то же самое, e'что и метод 'Latin-Post').