Eigener Desktop unter Linux?
Hallo zusammen!
Wenn ich vor habe, einen komplett eigenen Desktop für Linux zu designen (programmieren), wie muss ich vorgehen? Ich habe nämlich eine komplett neue Idee, wie man eine Art Taskleiste realisieren könnte, jedoch weiß ich nicht, wo man anfängt.
Erfahrung im Programmieren mit Java habe ich, was mir wahrscheinlich nur bedingt weiterhelfen wird, ich sollte aber mit C/C++ auch zurecht kommen.
Also meine Frage ist nun, wenn ich eine eigene Taskleiste machen will, mit neuer Funktionalität, mache ich das via KDE, Gnome oder ähnlichem? Oder wie mache ich das (Gibt es da bestimmte Programme und eventuell eine Art "Template" zum erstellen dieser)? Bin (leider) noch nicht so mit Linux vertraut.
Gruß Daniel, ich hoffe, ihr könnt mir helfen^^
2 Antworten
Ein Desktop Element eines modernen Linux-Desktops ist im Grunde genommen "nur" ein stinknormales Programm!
Diese Programme sind oft als eine Art Plug-In realisiert, oder basieren auf Skelett-Anwendungen, um sich mit möglichst minimalem Programmieraufwand in ein Desktop-Environment einzufügen, aber im Grunde genommen sind es bloß dynamische Bibliotheken oder ELF-Binaries!
Deshalb kannst du natürlich für dein erstes Konzept auch mit Java ein rahmenloses Fenster basteln, was genau die von dir benötigte Funktionalität implementiert. Im Falle einer Taskleiste wäre das dann eben ein sehr längliches Fenster, dessen Inhalt du sogar noch sehr schick und effektgeladen mithilfe von JavaFX designen und animieren kannst.
Wenn du dann mehrere Ideen mit deinem Java-Rapid-Prototyping durchgespielt hast, kannst du dich ja an die "richtige" Programmierung in Form eines regulären Moduls für z. B. KDE, Gnome, XFCE, usw. wagen.
Im Grunde genommen sind alles nur Fenster und Steuerelemente! Und diese lassen sich bei Java nun mal am schönsten und modernsten mit JavaFX designen. Du könntest sogar auch eine Taskleiste im MS-Ribbons-Stil für KDE damit basteln ... das wird zwar keiner haben wollen, ist aber eine schöne Übung, bei der man viel lernen dürfte. :)
Viel Spaß damit! :)
PS: Ein eigenes Desktop-Environment inkl. Controls kannst du erstaunlich leicht mit C und der Xlib basteln. Den dazugehörigen Window-Manager ebenfalls. Ich habe das früher mal gemacht, um zu lernen wie das ganze funktioniert, und ich war überrascht, dass es gar nicht soooo schwer ist! :)
Vielleicht guckst du dir auch mal solche Leichtgewichte wie JoeWM an, die du über einfache Textdateien konfigurieren kannst. (gut, geht bei KDE und Gnome auch, aber das ist dort nicht primär das Ziel)
Vielen Dank! Gute Idee mit Java, vor allem weil ich mit JavaFX gut vertraut bin! :)
PS: Source-Codes sind eine prima Quelle um zu verstehen, wie viele Sachen funktionieren. Konzentrier dich dabei am besten auf möglichst leichtgewichtige Projekte, wie den Ratpoison Window-Manager oder einige Schicke Apple-artige Menüs für XFCE, die den Compositor benutzen.
In jedem Fall wird es aber ohne entsprechende Programmierkenntnisse schwierig werden! Für Einsteiger dürfte es sicher die ein oder andere Hürde geben! Trotzdem viel Erfolg! :)
Zum Thema Template: Du könntest dir bekannte Linux-Taskleisten anschauen (am besten schlanke Modelle, weniger Code), da deren Quellcode offen liegt (open source) und aus deren Programmierung lernen.
Zum Projekt: Am besten machst du das mit anderen zusammen (z.B. über Github), denn alleine wird das ein großer Aufwand. Unter Linux wird sowieso (fast) alles als Open-Source-Projekt gemacht, an dem jeder mithelfen kann.
Alternativ könntest du bestehende Panels umschreiben, da du die (je nach Lizenz) verändern darfst.