Tôi không có sở thích ngôn ngữ lập trình và tôi có kiến thức tốt về mã hóa OpenGL. Nếu tôi có thể sử dụng một cái gì đó như OpenFrameworks hoặc Xử lý làm cơ sở, đó sẽ là lý tưởng.
Tôi không có sở thích ngôn ngữ lập trình và tôi có kiến thức tốt về mã hóa OpenGL. Nếu tôi có thể sử dụng một cái gì đó như OpenFrameworks hoặc Xử lý làm cơ sở, đó sẽ là lý tưởng.
Câu trả lời:
Trình bảo vệ màn hình trong Linux là một thứ khá đơn giản gồm hai phần chính:
.desktop
tập tin chỉ vào ứng dụng đó.Tôi không chắc kết quả cuối cùng mà bạn đang cố gắng đạt được là gì nên tôi sẽ bắt đầu ngược lại. Các .desktop
tập tin cho trình bảo vệ màn hình hiện có trong /usr/share/applications/screensavers/
. Đây là ubuntu_theme.desktop
một ví dụ về những gì bạn đang hướng tới:
[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
Nếu bạn muốn làm nổi một hình ảnh khác xung quanh, bạn có thể sao chép trình khởi chạy và thay thế /usr/share/pixmaps/ubuntu-screensaver.svg
bằng hình ảnh của chính bạn (sử dụng SVG khi có thể vì chúng có tỷ lệ tốt hơn rất nhiều).
Nếu bạn muốn viết nhị phân của riêng mình cho trình bảo vệ màn hình hoàn toàn tùy chỉnh, có lẽ bạn nên bắt đầu tại đây: http://www.dis.uniroma1.it/~liberato/sc Greensaver /
Nó sử dụng đồ họa X rất đơn giản để làm một số điều khá đơn giản. Bạn có thể điều chỉnh nó bằng OpenGL nhưng điều quan trọng là bạn phải có được những điều cơ bản được trình bày trước.
Khi bạn đã hoàn tất, việc đóng gói là toàn bộ các vấn đề của nó, nhưng đối với một gói rất đơn giản, bạn có thể nhanh chóng giải quyết một gói theo cách tương tự: https : //help.ub Ubuntu.com/community/PythonRecipes/DebianPackage
Nhưng nếu bạn nghiêm túc về việc phân phối điều này cho nhiều người, bạn có thể muốn bắt đầu với PPA (kho lưu trữ riêng). Bạn có thể đọc về PPA, xây dựng gói nguồn, quy trình xây dựng, v.v. trên hệ thống trợ giúp của LaunchPad .