elfmz / far2l

Linux port of FAR v2
GNU General Public License v2.0
1.78k stars 173 forks source link

Debian 10 (Buster): невозможен ввод текста на английской раскладке #1180

Open Xrum-xrum opened 2 years ago

Xrum-xrum commented 2 years ago

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

elfmz commented 2 years ago

какая версия - GUI, TTY (терминальная)?

Xrum-xrum commented 2 years ago

GUI

elfmz commented 2 years ago

запустите im-config и скажите что оно выведет про input methods

Xrum-xrum commented 2 years ago

Мне ещё не приходилось иметь дело с im-config, он даже не был установлен, поэтому привожу скриншот:

im-config_01

elfmz commented 2 years ago

Для сравнения у меня вот так:

Current configuration for the input method:
 * Active configuration: ibus (normally missing)
 * Normal automatic choice: ibus (normally ibus or fcitx or uim)

Непонятно как оно может работать если у вас ничего не выбрано. Попробуйте выбрать ibus, у меня с ним все работает :) и перелогиниться или даже ребутнуться Впрочем даже если у вас заработает - останется вопрос почему раньше работало и перестало...

Xrum-xrum commented 2 years ago

Действительно, интересно... ibus у меня тоже не установлен. В im-config доступны только следующие конфигурации метода ввода: default, auto,cjkv, none, xim.

Сейчас установлю ibus и в ближайшее время постараюсь ребутнуться.

Xrum-xrum commented 2 years ago

Раньше, судя по всему, тоже не работало :) Дело в том, что у меня два Бастера: один на десктопе, второй -- на ноуте. Сейчас я на ноуте, а far2l, видимо, был только на десктопе. ibus поставил. На таскбаре появился его переключатель раскладок. Работающий независимо от системного. При определённом сочетании их положений английский в Фаре появляется, но работает всё это настолько оригинально, что, поскольку ноутом также пользуется моя пожилая мама, я был вынужден вернуть всё как было :(

elfmz commented 2 years ago

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

Xrum-xrum commented 2 years ago

Хорошо, тогда я снова поставлю IBus и на всякий случай какое-то время не буду его сносить.

Current configuration for the input method:
 * Active configuration: ibus (normally missing)
 * Normal automatic choice: ibus (normally ibus or fcitx or uim)
 * Override rule: zh_CN,fcitx:zh_TW,fcitx:zh_HK,fcitx:zh_SG,fcitx
 * Current override choice:  (ru_RU)
 * Current automatic choice: ibus
 * Number of valid choices: 2 (normally 1)
The override rule is defined in /etc/default/im-config.
The configuration set by im-config is activated by re-starting X.
Явный выбор не требуется для включения автоматической конфигурации, если одно из default/auto/cjkv/missing активно.
Доступные методы вводаs: ibus xim
Даже если есть необходимость во всех, убедитесь, что установлена только одна система метода ввода.

Сразу после ребута ни одна из комбинаций переключателей раскладки не даёт в Фаре английских букв. Чтобы они появились нужно зайти в "Параметры" IBus -> "Дополнительно" -> "Использовать системную раскладку клавиатуры" (снять этот чекбокс, если он установлен, или, соответственно, наоборот). Что после этого происходит: -- если переключатель IBus'a установлен на русскую раскладку, системный переключатель работает в обычном режиме: на русской раскладке видим в Фаре русские буквы, на английской -- не видим ничего. -- если теперь оставить системный на русской раскладке, а IBus переключить на английскую, то системный тоже переключится на английскую и залочится в этом состоянии (глобально, комбинация Alt-Shift не будет работать нигде). В этот момент в Фаре появятся английские буквы.

elfmz commented 2 years ago

Не, я имею ввиду как вы добились того изначального состояния на ноуте что стоит none в im-config. Я когда в убунте попробовал выставить none - в итоге получился все равно ibus. Как я понял, у вас и на десктопе и на ноуте одинаковые системы, так вот интересно, что такого было наконфигурено в ноуте, что так получилось

Xrum-xrum commented 2 years ago

Интересно, как у Вас всё равно получится ibus, если Вы его удалите из системы? :) То состояние, которое видно на скриншоте -- дефолтное после установки системы. Я ничего специально не менял и не настраивал. Даже im-config поставил только сейчас, по случаю. Вот "active configuration: missing" сходу воспроизвести не получается, а везде "none" -- запросто:

im-config_04

Xrum-xrum commented 2 years ago

Кстати, вот, что говорит im-config на десктопе:

im-config_Desktop

elfmz commented 2 years ago

Я нашел на офсайте и поставил в виртуалку debian-10.11.0-amd64-xfce-CD-1.iso.torrent выбрав xfce. Так же при установке выбрал русский в качестве основного. В результате получил систему с таким же выводом im-config как у вас, но в far2l все прекрасно печатается в обоих языках. На всякий случай, закройте все far2l и переименуйте ~/.config/far2l в ~/.config/far2l.bak - вдруг у вас там какой то макрос корявый завелся или еще чтото нездоровое.

Xrum-xrum commented 2 years ago

Хорошо, попробую. Только, к сожалению, сделать это раньше, чем через несколько дней не получится. Также я попробую взять с десктопа deb-файл. Раз уж Вы запустили Дебиан, попробуйте заодно открыть в Фаре какую-нибудь картинку из архива. По дефолту она открывается в Ristretto и через небольшой промежуток времени исчезает. Во всяком, случае у меня.

elfmz commented 2 years ago

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

Xrum-xrum commented 2 years ago

Молодцы какие :) В общем-то, про вьюер я так и подумал, но, поскольку это наконец-то простимулировало меня поставить wine, чтобы запустить IrfanView, я не очень переживаю по этому поводу.

elfmz commented 2 years ago

Вообще есть идея отслеживать не только открытие файла, но и директории в который он распаковывается - он тоже создается отдельный. И просмотрщик вроде продолжает держать директорию. Просто руки пока не доходили. Может потому что я сам редко так фотки просматриваю)

elfmz commented 2 years ago

насчет клавы, если не поможет сброс настроек - откройте терминал, в нем напишите export FAR2L_STD=- и из него же запустите far2l. Вышеуказанный экспорт включает дебаг лог, который будет выводиться прямо в терминал. Так что в запущенном far2l переключитесь на английский и потыкайте работающие (цифровые) и неработающие кнопки в определенной последовательности, и пришлите лог, с описанием какие кнопки нажимались.

Upliner commented 2 years ago

У меня в Ubuntu всё работает нормально, но в Manjaro после одного из обновлений вылезла эта проблема. Просто установка ibus не помогла, im-config в системе нет. Вот лог из дебага:

OnKeyDown: raw=61 code=6c6 uni=444 (ф) ts=687646 [now=969515951]
OnChar: raw=61 code=61 uni=61 (a) ts=687646 lke=0
ConsoleInput::Enqueue: a 61 6c6 0 DOWN
ConsoleInput::Enqueue: a 61 6c6 0 UP
OnKeyUp: raw=61 code=6c6 uni=444 (ф) ts=687766
ConsoleInput::Enqueue: ф 444 6c6 0 UP
OnKeyDown: raw=73 code=6a6 uni=456 (і) ts=687954 [now=969516259]
OnChar: raw=73 code=73 uni=73 (s) ts=687954 lke=0
ConsoleInput::Enqueue: s 73 6a6 0 DOWN
ConsoleInput::Enqueue: s 73 6a6 0 UP
OnKeyUp: raw=73 code=6a6 uni=456 (і) ts=688078
ConsoleInput::Enqueue: і 456 6a6 0 UP
OnKeyDown: raw=64 code=6d7 uni=432 (в) ts=688326 [now=969516631]
OnChar: raw=64 code=64 uni=64 (d) ts=688326 lke=0
ConsoleInput::Enqueue: d 64 6d7 0 DOWN
ConsoleInput::Enqueue: d 64 6d7 0 UP
OnKeyUp: raw=64 code=6d7 uni=432 (в) ts=688466
ConsoleInput::Enqueue: в 432 6d7 0 UP
OnKeyDown: raw=66 code=6c1 uni=430 (а) ts=688618 [now=969516923]
OnChar: raw=66 code=66 uni=66 (f) ts=688618 lke=0
ConsoleInput::Enqueue: f 66 6c1 0 DOWN
ConsoleInput::Enqueue: f 66 6c1 0 UP
OnKeyUp: raw=66 code=6c1 uni=430 (а) ts=688714
ConsoleInput::Enqueue: а 430 6c1 0 UP
OnKeyDown: raw=31 code=31 uni=31 (1) ts=689122 [now=969517427]
OnChar: raw=31 code=31 uni=31 (1) ts=689122 lke=0
ConsoleInput::Enqueue: 1 31 31 0 DOWN
ConsoleInput::Enqueue: 1 31 31 0 UP
FilesSuggestor: enum '.'
OnKeyUp: raw=31 code=31 uni=31 (1) ts=689234
ConsoleInput::Enqueue: 1 31 31 0 UP
OnKeyDown: raw=32 code=32 uni=32 (2) ts=689438 [now=969517743]
OnChar: raw=32 code=32 uni=32 (2) ts=689438 lke=0
ConsoleInput::Enqueue: 2 32 32 0 DOWN
ConsoleInput::Enqueue: 2 32 32 0 UP
OnKeyUp: raw=32 code=32 uni=32 (2) ts=689554
ConsoleInput::Enqueue: 2 32 32 0 UP
OnKeyDown: raw=33 code=33 uni=33 (3) ts=689746 [now=969518051]
OnChar: raw=33 code=33 uni=33 (3) ts=689746 lke=0
ConsoleInput::Enqueue: 3 33 33 0 DOWN
ConsoleInput::Enqueue: 3 33 33 0 UP
OnKeyUp: raw=33 code=33 uni=33 (3) ts=689858
ConsoleInput::Enqueue: 3 33 33 0 UP
OnKeyDown: raw=34 code=34 uni=34 (4) ts=690006 [now=969518312]
OnChar: raw=34 code=34 uni=34 (4) ts=690006 lke=0
ConsoleInput::Enqueue: 4 34 34 0 DOWN
ConsoleInput::Enqueue: 4 34 34 0 UP
OnKeyUp: raw=34 code=34 uni=34 (4) ts=690118
ConsoleInput::Enqueue: 4 34 34 0 UP

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

elfmz commented 2 years ago

После обновления линукса или far2l?

elfmz commented 2 years ago

Интересует с какой именно версией wx собран far2l, а так же некоторые переменные, поэтому скиньте результаты команд запущенный в обычном терминале (не в far2l):

ldd /usr/local/lib/far2l/far2l_gui.so |grep wx
echo LC_ALL=$LC_ALL
echo LANG=$LANG
echo XDG_SESSION_TYPE=$XDG_SESSION_TYPE
Upliner commented 2 years ago

После обновления линукса или far2l?

После обновления всех пакетов и far2l в том числе. Manjaro использует rolling release в отличие от Ubuntu, поэтому там обновления постоянно приходят.

Upliner commented 2 years ago
$ ldd /usr/lib/far2l/far2l_gui.so | grep wx
        libwx_gtk3u_core-3.0.so.0 => /usr/lib/libwx_gtk3u_core-3.0.so.0 (0x00007f8ddc991000)
        libwx_baseu-3.0.so.0 => /usr/lib/libwx_baseu-3.0.so.0 (0x00007f8ddc702000)
$ echo LC_ALL=$LC_ALL
LC_ALL=
$ echo LANG=$LANG
LANG=en_US.UTF-8
$ echo XDG_SESSION_TYPE=$XDG_SESSION_TYPE
XDG_SESSION_TYPE=x11
elfmz commented 2 years ago

То есть у вас far2l из какогото репозитория приходит? В моей тестовой monjaro pacman его не знает:

[manjaro user]# lsb_release -a
LSB Version:    n/a
Distributor ID: ManjaroLinux
Description:    Manjaro Linux
Release:    21.2.1
Codename:   Qonos
[manjaro user]# pacman -Ss far2l
[manjaro user]# 

ну а самосборный far2l в этой системе у меня работает адекватно. Может у вас там чтото хитрое установлено в шелле для раскладок клавиатуры?

Upliner commented 2 years ago

Это far2l-git из AUR

Upliner commented 2 years ago

Ещё может быть проблема из-за того, что использую KDE

elfmz commented 2 years ago

@Xrum-xrum а у вас кстати какой шелл?

Upliner commented 2 years ago

И ещё момент: под Wayland проблема исчезает, возникает только под X11.

elfmz commented 2 years ago

Ну судя по XDG_SESSION_TYPE у меня x11 в тестовой manjaro. PS запустил pamac build far2l-git, а он оказывается компиляет в один поток.. Этож долго, надо както стукануть авторам пакета чтоб -j$(nproc --all) добавили в командлайн make-а...

Upliner commented 2 years ago

Чтобы компилило быстрее, надо в /etc/makepkg.conf раскомментировать MAKEFLAGS, у себя поставил -j10. Действительно непонятно, почему они по дефолту не поставили nproc Попробоавл far2l также под XFCE, там тоже проблем нет. Гном на проблемной системе почему-то не хочет запускаться, потому так и не проверил. Но судя по всему проблема действительно возникает только в KDE и только под иксами.

elfmz commented 2 years ago

сделал sudo pacman -S plasma kio-extras при логине выбрал плазму, в настройках клав. ввода добавил русский и переключалку по Alt+Shift иии... все работает нормально :) загадочный баг...

Upliner commented 2 years ago

В общем, у меня проблема решилась после того, как в настройках поудалял все раскладки, потом заново добавил. Возможно, просто при обновлении KDE какие-то настройки криво перенеслись...

elfmz commented 2 years ago

@Xrum-xrum попробуйте плз передобавить раскладки ибо с воспроизведением никак..

theBoa commented 2 years ago

Спасибо за поиск бага, у меня тоже в KDE (Kubuntu 21.10) такое давно появилось, но, т.к. я с linux только знакомлюсь, то не стал доставать вопросами.

Решилось так: Параметры системы -> Устройства ввода -> Клавиатура -> Раскладки Удалил русскую, оставил только английскую и в Far начало работать

// за Far2l огромная благодарность! Это стало весьмым аргументом в попытке переезда на Linux (на Винде Far - основной инструмент :) )

elfmz commented 2 years ago

Удалил русскую, оставил только английскую и в Far начало работать

А если опять добавить русскую? Этож не дело удалять ее насовсем.

theBoa commented 2 years ago

@elfmz , получилось повторить ошибку Если в "Раскладки" переместить русский язык наверх, то перестает работать буквенная клавиатура, цифры работают. Подобный эффект с чешским (он в латинице, но вместо цифр ěščřžýáíé), так, если этот язык утащить вверх, то в нижних перестают работать цифры. Получается, что "расширенные" символы сбивают остальные

Если Английский стоит первым языком, то работает все корректно

elfmz commented 2 years ago

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

theBoa commented 2 years ago

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

elfmz commented 2 years ago

Проверьте текущий мастер плз.