На основе обратной связи в комментариях попробовал эту команду: В окне терминала это работает:
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.
Однако при выполнении в рамках "Приложений Запуска" Окно терминала не 'заштриховывается'. Используя то, 'добавляют, скрытый' не работает. Используя то, 'добавляют, ниже' работ, кроме я использую свое настольное фоновое изображение в качестве части клиента, просматривающего.
Другое решение состоит в том, чтобы создать 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"
Ссылки:
Запустите отсоединил Tmux | Сценарий входа в систему Tmux | Создайте сессию если | Команда в отдельном Tmux
ArchWiki Tmux | Руководство по Настройке Вашего Tmux.conf | Нежное введение в Tmux
Файл конфигурации TMUX | Другой пример | Tmux Shortcuts & Cheatsheet, также здесь и здесь
Дальнейшее чтение:
Вот обходное решение, которое использует 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'
Ссылки: