Я создал скрипт для запуска сеанса gnome-терминала при входе в xubuntu. Я специально хотел его в определенном положении в окне и без границ окна (удивительно, что в gnome-терминале нет простого варианта, в отличие от xfce4-терминала).
После кучи поиска в googling и попробовав около 10 методов, которые не сработали, я получил следующие скрипты в bash и python.
Мой исполняемый скрипт bash, который я разместил в $ HOME / bin:
Соответствующий исполняемый скрипт python в том же каталоге:
#!/usr/bin/python
import gtk.gdk
root_window = gtk.gdk.get_default_root_window()
root_xid = root_window.property_get("_NET_ACTIVE_WINDOW")[2][0]
w = gtk.gdk.window_foreign_new(root_xid)
w.set_decorations(False)
gtk.gdk.window_process_all_updates()
Я помещал флаги в массив в сценарии bash, чтобы я мог легко сказать, что происходит, если мне нужно отредактируйте конкретную компоновку позже. Примечание. Я делаю это в python 2.7.3. Я не тестировал его в python 3.x
. Причина большинства странностей в последней строке bashscript заключается в том, что мне было очень сложно запустить команду в новом окне gnome-terminal и оставим его открытым после завершения команды.
Вторая большая проблема заключается в том, что при запуске без запуска команды sleep мой скрипт python запускается до того, как окно будет формально создано (я думаю ...) и где-то в скрипте python я начинаю получать NoneTypes вместо реальных объектов окна и т. д., и pyscript никогда не удаляет окно.
Так что я спрашиваю, может ли кто-нибудь подумать о менее взломанном способ сделать это. Я бы очень хотел использовать только python, но я не мог найти простой способ сделать это в модуле os или gtk. Я прочитал несколько других решений, которые включали такие вещи, как compiz или openbox, но я хотел, чтобы это можно было сделать, не устанавливая ничего нового. Я даже не уверен, что это работает в других средах.
Спасибо! Извините, если этот вопрос длинный, я хотел сначала выполнить домашнюю работу.
(Кроме того, обратите внимание на пользователей xubuntu, вам нужно убедиться, что вы запускаете службы GNOME при запуске)