Насколько я знаю, нижняя строка кода должна сфокусироваться на открытом окне nautilus
xdotool windowactivate `xdotool search --onlyvisible --class nautilus`
Но я получаю ошибку
xdotool: Неизвестная команда: 21043361xdotool автор здесь.
То, что вы видите, очень вероятно, что есть два идентификатора окна. Вы можете попробовать и выяснить, какой именно идентификатор окна был тем, который вам нужен, но в большинстве случаев можно просто использовать функции «командная цепочка» и «стек стека» - см. «WINDOW STACK» и «КОМАНДНАЯ ЦЕПИНГ» в man-странице xdotool.
Простейшим решением вашего вопроса является поиск xdotool и передача идентификаторов окна непосредственно в команду windowactivate, например:
xdotool search --onlyvisible --class nautilus windowactivate
Вышеупомянутый поиск выполняет, сохраняет результаты в стеке окон, а затем вызывает windowactivate, который без аргументов применяется к первому окну стека окон (он же «% 1»). Подумайте об этом как способе транслировать результаты поиска в другие команды xdotool в одной и той же командной строке.
Вот еще один пример, чтобы получить заголовки всех окон Chrome, используя стек окон «% @», который означает «все окна в стеке» (в отличие от% 1,% 2 и т. д., которые являются конкретными окнами в стеке)
% xdotool search --onlyvisible --class chrome getwindowname %@
asdf - Google Search - Google Chrome
CNN.com - Breaking News, U.S., World, Weather, Entertainment & Video News - Google Chrome
Ask Ubuntu - Google Chrome
Google Chrome
В общем, любая команда, которая испускает идентификатор окна (search, selectwindow, getactivewindow и т. д.) будет заполнять стек окна для использования с цепочками команд. Другой пример: убить окно (обычно закрывает приложение), щелкнув по нему:
% xdotool selectwindow windowkill