Похоже, что Вы устанавливаете histchars
(или HISTCHARS
) в некотором другом zsh конфигурационном файле, который читается прежде ~/.zshrc
: /etc/zsh/zshenv
, ~/.zshenv
или /etc/zsh/zshrc
. Зафиксируйте: не делайте этого.
Я думаю xdotool getactivewindow
- это то, что Вы хотите - Вы пробовали?
Он печатает идентификатор окна (из стека окон), если в командной строке больше нет подкоманд xdotool.
Например, в xdotool getactivewindowpid
, getactivewindow
помещает id в стек окна, а getwindowpid
использует этот id для запроса PID. Обратите внимание, что выполнение этой команды в терминале всегда вернет идентификатор терминального окна, так как оно активно. Чтобы получить идентификатор из другого окна, попробуйте sleep 2s && xdotool getactivewindow
и выберите интересующее вас окно в двухсекундном интервале времени.
При использовании xdotool
с другими инструментами для работы с окнами возникает сложность:
В то время как в выводе xdotool
используются десятичные числа для windwo ids, большинство других инструментов для вывода используют шестнадцатиричные числа (обычно они поддерживают оба входа).
Например, если вы найдете окно с xdotool getactivewindow
, вы не найдете результата в выводе xwinfo -root -tree
, в котором перечислены все окна. Сначала необходимо преобразовать его в шестнадцатеричное число:
$ xdotool getactivewindow
69206716
$ printf 0x%x 69206716
0x42002bc
$ xwininfo -root -tree | grep 0x42002bc
0x42002bc (has no name): ("konsole" "Konsole") 1154x781+0+0 +1289+498
Преобразование десятичного в шестнадцатеричный:
printf 0x%x 69206716
Преобразование шестнадцатеричного числа в десятичное:
printf %i 0x42002bc
У меня работает эта команда
xdotool key --window "$(xdotool getactivewindow)" F5
Версия xdotool 3.20160805.1
Я знаю, что это старый вопрос. Может быть, кому-то этот ответ будет полезен.
xdotool selectwindow getmouselocation --shell
затем нажмите на окно, для которого вы хотите получить идентификатор.