Клавиша backspace работает неправильно (не приводит к стиранию введенного символа, а вместо этого выдает символ 0x08), если запустить консольное приложение в xterm под KDE-4. Пример сессии в xterm под kde4: $ cat test^H^H^H Здесь ^H^H^H - это три раза нажатая клавиша BACKSPACE, которая вместо стирания символа пишет такой мусор. При этом если сейчас завершить ввод нажатием Ctrl-D, то cat выведет вместо каждого нажатого BACKSPACE символ 0x08 (это не видно в окне терминала, но обнаруживается, если перенаправить вывод в файл). Прочие терминалы - konsole, gnome-terminal работают в KDE4 нормально. Также нормально xterm работает в gnome.
Предлагаю обсудить в devel@ и совместно найти решение: http://lists.altlinux.org/pipermail/devel/2009-September/175307.html
Очень похоже на http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=547443
$ echoti kbs | xxd 0000000: 7f . Т.е. мимо.
Денис, добавьте, пожалуйста, в ~/.Xdefaults следующую строку: XTerm*deleteIsDel: true После этого выполните: xrdb -merge ~/.Xdefaults И снова попробуйте воспроизвести баг.
Файла ~/.Xdefaults у меня не было, я создал такой файл и добавил указанную строчку. После выполнения xrdb -merge ~/.Xdefaults бага всё равно воспроизводится.
(В ответ на комментарий №5) ОК. Тогда попробуйте запустить xterm с опций -ie. Воспроизводится?
После xrdb -merge надо запустить новый xterm. Так, на всякий случай.
> Тогда попробуйте запустить xterm с опций -ie. Воспроизводится? Да, воспроизводится. Этот совет связан с предыдущим или нет?
(В ответ на комментарий №7) > После xrdb -merge надо запустить новый xterm. Так, на всякий случай. Да я по-всякому пробовал, и так тоже. Всегда воспроизводится.
(В ответ на комментарий №8) > > Тогда попробуйте запустить xterm с опций -ie. Воспроизводится? > > Да, воспроизводится. > > Этот совет связан с предыдущим или нет? Нет, не связан. Тогда вот ещё варианты (тоже не связанные): - попробовать xterm +ie - попробовать с ресурсом XTerm*backarrowKeyIsErase: true
Это всё не помогло. А вот я сейчас сделал такой файл: xterm*deleteIsDel: true xterm*backarrowKeyIsErase: true И вот это - помогло. Сейчас попробую разобраться, какой именно параметр необходим из этих двух.
(В ответ на комментарий №11) > Сейчас попробую разобраться, какой именно параметр необходим из этих двух. Полагаю, что первый.
(В ответ на комментарий №12) > Полагаю, что первый. Нет, всё-таки второй :) Я не разбираюсь в этих xrdb и Xresources, поэтому просто опишу наблюдения. В настоящий момент баг воспроизводится при любом способе вызова xterm. Как баг можно исправить? Записываем в текстовый файл строчку: xterm*backarrowKeyIsErase: true Запускаем xrdb -merge <имя_файла> После этого, как эти действия были выполнены и до конца сеанса KDE4 происходит следующее: 1. Если запустить xterm из меню KDE4, или при помощи "Выполнить команду" в KDE4, то запустится xterm с серым фоном, в котором баг воспроизводится ВСЕГДА. 2. Если запустить xterm из другого xterm, то запущенный xterm будет иметь белый фон, и в нем баг уже не воспроизводится. 3. Если из KDE4 запустить другой терминал, например, Konsole или gnome-terminal, то запущенный xterm будет иметь белый фон и в нем баг не воспроизводится. Как сделать так, чтобы баг не воспроизводился даже на первом xterm, запущенном из меню KDE, я не знаю.
(В ответ на комментарий №13) > xterm*backarrowKeyIsErase: true > > Запускаем xrdb -merge <имя_файла> > > После этого, как эти действия были выполнены и до конца сеанса KDE4 происходит > следующее: > > 1. Если запустить xterm из меню KDE4, или при помощи "Выполнить команду" в > KDE4, то запустится xterm с серым фоном, в котором баг воспроизводится ВСЕГДА. > > 2. Если запустить xterm из другого xterm, то запущенный xterm будет иметь белый > фон, и в нем баг уже не воспроизводится. Дело в том, что в файле /usr/share/applications/xterm.desktop указан запуск не просто xterm: Exec=xterm -name XTerm Поэтому ресурсы с именем "xterm" к запущенной таким образом копии не применяются; применяются ресурсы для имени "XTerm" (задавать такое имя, вообще говоря, неправильно - обычно эти имена, в отличие от классов, пишутся строчными буквами) и класса "UXTerm" (если используется локаль с кодировкой UTF-8).
xterm-264-alt1 -> sisyphus: * Thu Oct 21 2010 Fr. Br. George <george@altlinux> 264-alt1 - Autobuild version bump to 264 - Backspace is sending "stty erase" by default (closes: #21731)