После обновления кнопка X в заголовке больше не закрывает xterm

Теоретически нажатие кнопки закрытия Кнопка закрытия kwin должен закрыть xterm. Это произошло до того, как я aptitude upgrade . (Я запускаю тестирование Debian). Но теперь он не щелкает X, ничего не делает, но только для некоторых xterms.

В частности, если я запускаю xterm из приложения quicklaunch KDE или меню K, эти xterms можно закрыть. Если, однако, я запускаю его с помощью сочетания клавиш (khotkeys), то этот xterm не может быть закрыт.

Кроме того, это рекурсивно: если я запускаю xterm из xterm, его можно закрыть, если его родитель.

Это вообще не происходит. Это только для xterm. Я тестировал запуск этих приложений из незанятого xterm, и все они могут быть закрыты:

  • Gvim
  • Xclock
  • xditview
  • дельфин
  • Konsole

Пересечение другой программы там разрывает цепочку (например, запуск xterm из konsole):

  • xterm (uncloseable) → xterm (незамкнутый) → xterm (uncloseable) → …
  • xterm (uncloseable) → консоль (закрывается) → xterm (закрывается) → …

Я проверил мои правила окна на kwin, у меня нет xterm.

  • Установите urxvt для работы с 256 цветами
  • Как запустить xterm от Nautilus, работая в папке, которую я просматриваю?
  • Цвета неправильны в вине с новым сервером x с 8-битным цветом
  • «Git show» показывает странные символы на XTerm
  • В xterm, что такое «Имя знака»?
  • Как напечатать произвольные символы Unicode в xterm?
  • Как исправить акценты в верхнем баре xterm?
  • Сделать 'CTRL- /' вести себя одинаково в vtty и xterm
  • One Solution collect form web for “После обновления кнопка X в заголовке больше не закрывает xterm”

    Обновление: это nVidia

    Стивен Доуди ответил на отчет об ошибке Debian и предположил, что это ошибка nVidia. где он повреждает маски сигналов. В некоторых поисках найден Debian Bug # 728743 , и, действительно, переход на Nouveau / MESA (драйвер с открытым исходным кодом) устранил проблему.

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

    Результаты поиска strace

    Я побежал на обоих версиях. После некоторой фильтрации (чтобы сделать diff лучше работать), я вижу кучу строк, таких как:

     WORKING rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 *vs* BROKEN rt_sigprocmask(SIG_BLOCK, NULL, [HUP], 8) = 0 

    Похоже, что сломанная версия заблокирована SIGHUP. Щелчок по X, кажется, отправляет SIGHUP, который игнорируется, поэтому оболочка не выходит. Вы можете сделать рабочий, разбитый на ловушку SIGHUP в оболочке, и не выйти (но не наоборот, так как кажется, что оболочка никогда не получает HUP).

    Я зарегистрировал ошибку Debian # 733816 об этом.

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

     #include <signal.h> #include <stddef.h> #include <unistd.h> #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { sigset_t set; if (argc < 2) { fprintf(stderr, "ERROR: Expected at least a command to run\n" "\n" "USAGE: %s command [arguments]\n", argv[0]); exit(EXIT_FAILURE); } sigemptyset(&set); sigaddset(&set, SIGHUP); sigprocmask(SIG_UNBLOCK, &set, NULL); execvp(argv[1], argv+1); } 

    Используйте его, скомпилировав (например, ~/bin/unblock-hup ), затем вызовите ~/bin/unblock-hup xterm вместо xterm . Обратите внимание, что в модуле управления пользовательскими ярлыками вы должны поместить полный путь в свой домашний каталог; ~ не работает.

    Interesting Posts

    Какую программу использовать для открытия файлов? (gnome-open, gvfs-open, xdg-open и т. д.)

    Моя новая клавиатура не имеет ключа трубы

    Могут ли программы initramfs получить доступ ко всей памяти – они работают в реальном или защищенном режиме?

    Bash Script: нет такого файла или каталога при определении переменной через источник vars.txt

    systemd: остановить все процессы OpenVPN

    Идентифицировать все файлы, не имеющие разрешения для других, используя команду find

    Внезапная проблема с приложением стойки / пассажирского рубина: «Соединение закрыто»

    Настройка семейного сервера

    Перегрев ноутбука с использованием драйвера AMD / ATI с открытым исходным кодом

    Классы DSA / RSA работают с Linux, но не HP-UX

    Ошибка аутентификации OpenVPN HMAC, несмотря на кажущиеся идентичные конфигурации клиента и сервера

    Напишите один и тот же файл несколько раз в один файл, используя dd

    Много процессов, убитых SIGTRAP

    Не удается получить доступ к приводу Windows: «Windows спящий, отказался от установки»

    Как изменить сеанс по умолчанию?

    Linux и Unix - лучшая ОС в мире.