У меня нет предпочтений в языке программирования, и я хорошо знаю кодирование OpenGL. Если бы я мог использовать что-то вроде OpenFrameworks или Processing в качестве основы, это было бы идеально.
У меня нет предпочтений в языке программирования, и я хорошо знаю кодирование OpenGL. Если бы я мог использовать что-то вроде OpenFrameworks или Processing в качестве основы, это было бы идеально.
Ответы:
Заставка в Linux - довольно простая вещь, состоящая из двух ключевых частей:
.desktop
Файл , указывающий на приложения.Я не уверен, какого конечного результата вы пытаетесь достичь, поэтому я начну наоборот. Эти .desktop
файлы для существующих заставок жить /usr/share/applications/screensavers/
. Вот ubuntu_theme.desktop
пример того, к чему вы стремитесь:
[Desktop Entry]
Name=Floating Ubuntu
Comment=Ubuntu logo floating around the screen
Exec=floaters /usr/share/pixmaps/ubuntu-screensaver.svg
TryExec=floaters
StartupNotify=false
Terminal=false
Type=Application
Categories=GNOME;Screensaver
OnlyShowIn=GNOME
Если вы хотите разместить другое изображение, вы можете просто клонировать модуль запуска и заменить его /usr/share/pixmaps/ubuntu-screensaver.svg
своим собственным изображением (по возможности используйте SVG, поскольку они масштабируются намного лучше).
Если вы хотите написать собственный двоичный файл для полностью настраиваемой заставки, вам, вероятно, следует начать здесь: http://www.dis.uniroma1.it/~liberato/screensaver/
Он использует очень простую графику X, чтобы делать довольно простые вещи. Вы можете сделать это с помощью OpenGL, но важно, чтобы вы сначала изложили основы.
Когда вы закончите, упаковка - это целый набор проблем, но для очень простого пакета вы можете быстро получить пакет, выполнив что-то вроде этого: https://help.ubuntu.com/community/PythonRecipes/DebianPackage
Но если вы серьезно относитесь к распространению этого среди большого количества людей, вы, вероятно, захотите начать с PPA (частного репозитория). Вы можете прочитать о PPA, сборке исходных кодов, процессе сборки и т. Д. В справочной системе LaunchPad .