Xdotool не минимизирует окно терминала при использовании в Приложении Запуска, когда ПК загружается?

На основе обратной связи в комментариях попробовал эту команду: В окне терминала это работает:

gnome-terminal -x bash -c "sudo ./serial"; xdotool getactivewindow windowminimize 

Однако при выполнении команды в Программе Запуска xdotool, кажется, проигнорирован. ПК загружается с окнами терминала на экране, не минимизированном.

Фоновая история:

Я пытаюсь определить способ минимизировать окно терминала с терминальной гномом командой. Мне нужна моя Ubuntu 14.04LTS удаленный ПК для запущения нескольких скриптов и программы C при запуске. Этот удаленный ПК для клиента, просматривающего, таким образом, монитор должен быть чистым. Я не видел опции, доступной для уменьшения: http://manpages.ubuntu.com/manpages/wily/man1/gnome-terminal.1.html. Лучшее, которое я мог сделать, должно было сделать окна терминала маленькими, который приемлем, если я не нахожу лучший путь. Это - моя команда, ввел в "программу" Приложений Запуска Ubuntu:

gnome-terminal --geometry=60x2 --command "sudo ./My_C_Program"

Мои навыки программирования/Linux посредственны, но рост. Я ищу лучший способ сделать это.

На основе комментария/обратной связи попробовал это:

gnome-terminal -x bash -c  "sudo ./serial_ver2_machine3_free_air_3_95"; wmctrl -r :ACTIVE: -b add,shaded

Это работает просто способ, которым я хочу при выполнении в Окне терминала!! Окно терминала заштриховывается, но программа все еще работает, и это вновь появляется, когда я нажимаю дважды на значок Terminal Ubuntu.

Однако при выполнении в рамках "Приложений Запуска" Окно терминала не 'заштриховывается'. Используя то, 'добавляют, скрытый' не работает. Используя то, 'добавляют, ниже' работ, кроме я использую свое настольное фоновое изображение в качестве части клиента, просматривающего.

2
задан 6 October 2017 в 21:35

2 ответа

Другое решение состоит в том, чтобы создать tmux сессия в системе запускает и выполняет некоторые команды внутри. Затем Вы сможете присоединить к этой сессии, неважно, ли в ssh или gnome-terminal. tmux больше усовершенствовал использование, здесь я попытаюсь покрыть наиболее базовый уровень.

1. Установка tmux: sudo apt update && sudo apt install tmux

2. Создайте вспомогательный исполняемый файл сценария. Давайте предположим, что это помещается в пользователя $HOME каталог и это называют run-my-tmux-session:

touch "$HOME/run-my-tmux-session"
chmod +x "$HOME/run-my-tmux-session"

Сценарий должен посмотреть как это:

#!/bin/bash

SESS="my-tmux-session"                               # Set the session name

if (tmux has-session -t "$SESS" 2> /dev/null); then  # If session with name $SESS doesn't 
        echo "Session '$SESS' exists."               # exists
else                                                 # create it and send few commands
        tmux new-session -d -s $SESS
        tmux send-keys -t $SESS "echo 'Now:'; while true; do printf '%(%c)T\r'; done" ENTER
fi

exit 0

3. Теперь, если Вы выполняетесь ~/run-my-tmux-session сценарий создаст tmux сессия, названная my-tmux-session и выполнит немного команд в нем. Вот немного подсказок:

  • Перечислять все сессии: tmux ls

  • Уничтожить сессию или уничтожить все сессии:

    tmux kill-session -t <session-name>
    tmux kill-session #
    
  • Присоединить к существующей сессии:

    tmux a -t <session-name>
    tmux attach -t <session-name>
    
  • Для отъезда (отсоединяют) сессию, выполненную следовать команда из сессии: tmux detach

  • Отправить команду в сессию без присоединения:

    tmux send -t <sess-name> "<commands>" ENTER
    tmux send-keys -t <sess-name> "<commands>" ENTER  
    

4. A. Запуститесь tmux сессия из Приложений Запуска. Откройте Startup Applications и создайте новую запись. Его команда должна быть (замена <user> с фактическим именем пользователя):

/home/<user>/run-my-tmux-session

4. B. Запуститесь tmux сессия от crontab на перезагрузке. Отредактируйте пользователя crontab файл и добавляет следующие строки к нижней части (тип crontab -e пользователю доступа crontab):

SHELL=/bin/bash
@reboot "$HOME/run-my-tmux-session"

4. C. Запуститесь tmux сессия от /etc/rc.local. Это - вероятно, лучшее решение! Отредактируйте файл /etc/rc.local и добавьте одну из следующих строк перед последней строкой в файле, который является exit 0 (замена <user> с фактическим именем пользователя):

su -l <user> -c "/home/<user>/run-my-tmux-session"
sudo -iu <user> "/home/<user>/run-my-tmux-session"

Ссылки:

Дальнейшее чтение:

1
ответ дан 2 December 2019 в 03:36

Вот обходное решение, которое использует xdotool: Создайте вспомогательный сценарий запуска, который будет выполняться в a gnome-terminal, который открыт Приложениями Запуска. Сценарий выполнит некоторые команды и минимизирует активное окно. Прочитайте тщательно комментарии в реве тела сценария.

1. Установка xdotool: sudo apt update && sudo apt install xdotool

2. Создайте вспомогательный исполняемый файл сценария. Давайте предположим, что это помещается в пользователя $HOME каталог и это называют run-and-minimize:

touch "$HOME/run-and-minimize"
chmod +x "$HOME/run-and-minimize"

Сценарий должен посмотреть как это:

#!/bin/bash

# Put your commands here, for example:
echo 'The current time is:'

sleep 2                                            # Adjust this value. The mouse should not be moved while this period otherwise some other window could become active!
xdotool windowminimize $(xdotool getactivewindow)  # Minimize the window

# Or put your commands here, for example:
while true; do printf '%(%c)T\r'; done &           # Some commands must be pushed into the background (`&`) to be successfully interrupted with keep open the terminal window.

exec bash                                          # Keep the window open after the above commands are finished or interrupted

3. Откройте Startup Applications и создайте новую запись. Его команда должна быть:

gnome-terminal -x sh -c 'exec $HOME/run-and-minimize'

Я также успешно протестировал:

gnome-terminal -x bash -c 'exec $HOME/run-and-minimize'

Ссылки:

1
ответ дан 2 December 2019 в 03:36

Другие вопросы по тегам:

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