SUSE Linux Enterprise - Ошибка Python3 со строкой чтения в / etc / inputrc

Идентификаторы окон выдаются X-сервером. Оконный менеджер не имеет права голоса.

ID окна кодируют клиента, которому принадлежит окно, в старших 12 битах. Младшие 12 бит сначала назначаются последовательно, но если промежуточный номер становится свободным, его можно использовать повторно. Таким образом, сравнение идентификаторов окон не дает надежного указания на то, какое окно было создано последним.

Обратите внимание, что даже если бы вы могли идентифицировать окно по идентификатору процесса, это не помогло бы определить, какое из них является самым последним, поскольку идентификаторы PID не всегда увеличиваются со временем. Даже в вариантах Unix, которые назначают PID последовательно (что не является универсальным), они переносятся, когда достигают максимального значения (которое в Linux по умолчанию составляет 32767).Более того, клиенты X11 могут работать на разных машинах от сервера, но идентификаторы процессов имеют смысл только на одной машине.

Приложения, совместимые с Freedesktop, включая Mate Terminal, устанавливают свойство _NET_WM_USER_TIME окна всякий раз, когда есть активность пользователя (для Mate Terminal это означает ввод). Вы можете запросить свойство с помощью xprop -id… _NET_WM_USER_TIME . Это говорит вам, когда окно было в последний раз активным, а не когда оно было создано.

Если вы хотите надежно идентифицировать окно, одна из возможностей - установить его заголовок. Другая возможность - задать переменной среды уникальное значение и использовать ps или / proc , чтобы найти процесс с этим уникальным значением. Вы можете найти идентификатор процесса клиента, открывшего окно X11 , с помощью его свойства _NET_WM_PID , если оно есть, которое можно запросить с помощью xprop или с xdotool getwindowpid . Windows, имеющая свойство _NET_WM_PID , также должно иметь свойство WM_CLIENT_MACHINE , установленное на имя хоста компьютера, на котором выполняется клиентский процесс. Это поможет использовать отдельные процессы для каждого окна .

0
22.03.2018, 10:57
1 ответ

Действительно, похоже, что SuSE поставляет файл /etc/inputrc, содержащий set term, который не является корректной переменной в readline, по крайней мере, из документации и справочная страница , обе из которых перечисляют существующие переменные, и ни одна из них не указывает «термин» как допустимый...

Файл .inputrcв вашем домашнем каталоге переопределяет глобальный файл /etc/inputrc, если он существует. Таким образом, один из вариантов — скопировать /etc/inputrcв ~/.inputrcдля вашего пользователя, затем отредактировать его и удалить строку 18. Надеюсь, это должно решить проблему.

Если у вас уже есть ~/.inputrc, проверьте, есть ли в нем $include /etc/inputrc. В этом случае замените эту строку содержимым /etc/inputrc и удалите строку, которая устанавливает недопустимую переменную «термин». Это должно исправить это.

1
28.01.2020, 02:43

Теги

Похожие вопросы