|
||||||||||||||||||||||
Как в Astra Linux 1.6 разрешить работу клавиатурного ввода в интергрируемом окне xterm?
Время создания: 03.03.2025 14:27
Текстовые метки: astra, linux, xterm, tkinter, parsec, X11, tkinter, python, окно, интеграция, вставка, клавиатурный, ввод, символ, терминал
Раздел: Компьютер - Linux - Дистрибутив Astra Linux
Запись: xintrea/mytetra_syncro/master/base/1741001227f37ruxb2m6/text.html на raw.github.com
|
||||||||||||||||||||||
|
||||||||||||||||||||||
В классическом терминале xterm имеется специальная опция -into. Она позволяет "вставить" терминал в окно, идентификатор которого известен. Это свойство XTerm используется для быстрого добавления терминала в ПО, например если программа написана на Python с использованием библиотеки Tkinter. Итак, интеграция окна происходит через давно существующую опцию -into терминала xterm. Программа на Tkinter создает окно, выясняет X-идентификатор этого окна, и вставляет в него терминал xterm путем запуска команды: xterm -into <id_окна> ... прочие опции ... Однако, в обновлениях Astra Linux 1.6 старше 12 Update перестал работать текстовый ввод в xterm. То есть, отключилась возможность писать команды в интегрированном xterm, ввод просто не работает. В файле /var/log/fly-dm/Xorg.0.log обнаруживаются следующие ошибки: [ 28822.592] XPARSEC: keyloger /usr/bin/xterm(pid=23872) detected by receive event from other owned and-or mac level window (/usr/bin/python3.5,pid=23863) [ 28822.593] XPARSEC: keyloger /usr/bin/xterm(pid=23872) detected by receive event from other owned and-or mac level window (/usr/bin/python3.5,pid=23863) То есть, ввод блокирует обновленная подсистема безопасности PARSEC. Она думает, что клавиатурный ввод утекает в другое окно. Техподдержка говорит так: "Логика работы функции блокировки следующая: приложение получает клавиатурные нажатия, выполненные оператором в окнах, созданных не этим приложением, поэтому ввод запрещен". Решение данной проблемы достаточно простое. Необходимо в файл /etc/X11/trusted добавить строку: /usr/bin/xterm(KBD_R) Чтобы это сделать, можно от суперпользователя выполнить команду: echo "/usr/bin/xterm(KBD_R)" >> /etc/X11/trusted После выполнения данной команды ввод в GUI интерфейсе заработает. Перегружать компьютер или рабочий стол нет необходимости. Дстаточно просто перезапустить само GUI-приложение, в котором используется XTerm-терминал. Значения ролей, устанавливаемых в файле настройки доверенных программ /etc/X11/trusted, следующие:
|
||||||||||||||||||||||
Так же в этом разделе:
|
||||||||||||||||||||||
![]() |
||||||||||||||||||||||
|
||||||||||||||||||||||
|