Скрыть графический интерфейс программы после автозапуска при запуске

После страдания от ошибки в Redshift , я нашел отличную замену, Iris.

Я поместил папку Iris в мою папку home и добавил следующую команду в Startup Applications sh /home/arun/Iris/Iris.sh.

Все это прекрасно работает, но при запуске также открывается окно графического интерфейса настроек. Все, что мне действительно нужно, это маленький значок индикатора панели. Вроде как функция «Скрыть» в OS X «Элементы входа в систему».

Можно ли этого достичь?

1
задан 13 April 2017 в 15:23

1 ответ

Ирисовая диафрагма settingswindow

Если мы закрываем окно настроек Iris с X, это по-видимому закрывается.

Если мы делаем то же, с помощью wmctrl (wmctrl -ic <window_id>) однако, это складывается не, только окно закрывается, но и законченное приложение.

Мое заключение состоит затем в том, что окно на самом деле не закрывается, но не отображается, когда мы нажимаем X.

Мы можем сделать то же с помощью xdotool. С отредактированной версией этого ответа: Как я могу запустить программу на запуске, минимизированном?, мы можем затем запуститься Iris без окна настроек для появления.

Запуск ирисовой диафрагмы без окна настроек (сценарий)

  1. Сценарий использует обоих wmctrl и xdotool:

    sudo apt-get install wmctrl xdotool
    
  2. Скопируйте сценарий ниже в пустой файл, сохраните его в тот же каталог как Ваш Iris.sh файл (таким образом, они находятся вместе в том же каталоге), как start_iris.py.

    #!/usr/bin/env python3
    import subprocess
    import time
    import sys
    import os
    
    command = os.path.dirname(sys.argv[0])+"/Iris.sh"
    subprocess.Popen(["/bin/bash", "-c", command])
    
    def get(cmd):
        return subprocess.check_output(cmd).decode("utf-8").strip()
    
    t = 0
    
    while t < 12:
        time.sleep(1)
        try:
            w_list = [l.split()[0] for l in get(["wmctrl", "-l"]).splitlines() if "Iris" in l]
            for w in w_list:
                check = [l for l in get(["xprop", "-id", w]).splitlines()\
                         if "WM_CLASS(STRING)" in l][0]
                if "Iris" in check:
                    subprocess.Popen(["xdotool", "windowunmap", w])
                    break
            break
        except (IndexError, subprocess.CalledProcessError):
            pass
        t += 1
    
  3. Теперь выполните следующую команду вместо исходной команды для запуска Iris:

    python3 /path/to/start_iris.py
    

Окно настроек больше не будет появляться!

Объяснение

  • Сценарий изучает свой собственный каталог для файла Iris.sh, и запуски это.
  • Впоследствии, это наблюдает за созданием новых окон WM_CLASS Iris (Ваше окно настроек).
  • Если это нашло целенаправленное окно, это не отображает окно с xdotool команда:

    xdotool windowunmap <window_id>
    

Примечания

  1. Очевидно, нажатие X из окна настроек также не отображает окно.
    Apparantly это сделано по-другому от xdotool. Последствие - то, что Вы не можете достигнуть окна настроек (из меню индикатора) без перезапуска Iris.

    Вы упомянули однако, что Вам обычно не нужно окно настроек вообще.

  2. Обратите внимание, что при запуске приложений GUI из Приложений Запуска (особенно, когда это включает экранные настройки), Вы, возможно, должны были бы создать в небольшом повреждении для него, чтобы хорошо работать. Если это не работает из Приложений Запуска, изменяет команду для добавления к Приложениям Stratup в:

    /bin/bash -c "sleep 10 && python3 /path/to/start_iris.py"
    
1
ответ дан 14 April 2017 в 01:23
  • 1
    Привет, @BradfordBenn, в apache2.conf имеют директиву IncludeOptional conf-enabled/*.conf, которая включает все конфигурационные файлы в Apache' s конфигурация. Так мы don' t нужно, действительно помещают Include /etc/phpmyadmin/apache.conf в apache2.conf, если вышеупомянутые символьные ссылки существуют. На прошлой неделе я сею неправильную конфигурацию, где директива Include /etc/phpmyadmin/apache.conf была включена в тот же файл /etc/phpmyadmin/apache.conf, и это было проблемой. – pa4080 30 August 2017 в 19:29

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

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