Non ho preferenze di linguaggio di programmazione e ho una buona conoscenza della codifica OpenGL. Se potessi usare qualcosa come OpenFrameworks o Processing come base, sarebbe l'ideale.
Non ho preferenze di linguaggio di programmazione e ho una buona conoscenza della codifica OpenGL. Se potessi usare qualcosa come OpenFrameworks o Processing come base, sarebbe l'ideale.
Risposte:
Uno screensaver in Linux è una cosa piuttosto semplice composta da due parti chiave:
.desktop
file che punta a tale applicazione.Non sono sicuro del risultato finale che stai cercando di ottenere, quindi inizierò al contrario. I .desktop
file per gli screensaver esistenti vivono /usr/share/applications/screensavers/
. Ecco ubuntu_theme.desktop
un esempio di ciò a cui stai mirando:
[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
Se vuoi spostare un'immagine diversa in giro, puoi semplicemente clonare il launcher e sostituirlo /usr/share/pixmaps/ubuntu-screensaver.svg
con la tua immagine (usa gli SVG laddove possibile in quanto ridimensionano molto meglio).
Se vuoi scrivere il tuo binario per uno screensaver completamente personalizzato, probabilmente dovresti iniziare qui: http://www.dis.uniroma1.it/~liberato/screensaver/
Usa una grafica X molto semplice per fare alcune cose piuttosto semplici. Puoi sfruttarlo con OpenGL ma è importante avere prima le basi.
Una volta terminato, il packaging rappresenta tutta una serie di problemi, ma per un pacchetto molto semplice, puoi rapidamente sbattere fuori un pacchetto seguendo qualcosa del genere: https://help.ubuntu.com/community/PythonRecipes/DebianPackage
Ma se sei seriamente intenzionato a distribuire questo a molte persone, probabilmente vorrai iniziare con un PPA (un repository privato). Puoi leggere di PPA, costruire pacchetti sorgente, il processo di compilazione, ecc. Sul sistema di aiuto di LaunchPad .