Seite 1 von 2

Desktop Umgebung für Linux in Python möglich?

Verfasst: Donnerstag 16. Dezember 2010, 07:44
von Francesco
Hi,

Zugegeben eine etwas waghalsige Frage, aber:

Wäre es denkbar, eine Desktop Umgebung wie xfce oder lxde in reinem Python zu implementieren? in pygtk oder evtl. auch in wxPython?

Re: Desktop Umgebung für Linux in Python möglich?

Verfasst: Donnerstag 16. Dezember 2010, 08:17
von cofi
Warum denn nicht? Die Frage ist natuerlich, was genau du als Desktup Umgebung ansiehst. Ich persoenlich halte da den Window Manager fuer den Flaschenhals und da es da mehrere gibt, sollte es insgesamt kein Problem sein. Aber ganz ehrlich: Eine Desktop Umgebung suche ich mir nicht nach der Programmiersprache aus in der sie geschrieben wurde.

Re: Desktop Umgebung für Linux in Python möglich?

Verfasst: Donnerstag 16. Dezember 2010, 08:53
von Francesco
cofi hat geschrieben:Warum denn nicht? Die Frage ist natuerlich, was genau du als Desktup Umgebung ansiehst. Ich persoenlich halte da den Window Manager fuer den Flaschenhals und da es da mehrere gibt, sollte es insgesamt kein Problem sein. Aber ganz ehrlich: Eine Desktop Umgebung suche ich mir nicht nach der Programmiersprache aus in der sie geschrieben wurde.
Ja, nein ist nur ein Gedankenexperiment. Ich würde mir das eh nicht antun ;) Aber es wäre toll, finde ich (man könnte es schnell patchen oder patches liefern). Man könnte das sehr schnell entwickeln, denke ich, wenn der Compile Zyklus wegfällt. Ich denke da an lxde, xfce oder enlightment, natürlich nicht an gnome oder kde.

Re: Desktop Umgebung für Linux in Python möglich?

Verfasst: Donnerstag 16. Dezember 2010, 09:08
von syntor
Ganz in Python kannst du das nicht machen, da, soweit ich weiss, keine Python Schnittstele zu X besteht.

Du müsstest dafür eine C-Extension schreiben und darin selbst eine Schnittstelle zu X implementieren.


Hier ist eine Art "Manual" wie du mit X interagierst.

Du könntest dir auch awesome ansehen, das ist ein schneller Tiling-Windowmanager den man über Lua anspricht. Statt von Grund auf anzufangen, könntest du vielleicht auch das als Grundlage nehmen.

Re: Desktop Umgebung für Linux in Python möglich?

Verfasst: Donnerstag 16. Dezember 2010, 09:24
von Francesco
syntor hat geschrieben:Ganz in Python kannst du das nicht machen, da soweit ich weiss keine Python Schnittstele zu X besteht.
[...]

Du könntest dir auch awesome ansehen, das ist ein schneller Tiling-Windowmanager den man über Lua anspricht. Statt von Grund auf anzufangen, könntest du vielleicht auch das als Grundlage nehmen.
Ja, danke. awesome habe ich auch schon probiert, finde es aber nicht ganz so "awesome", aber ich habe mir das auch nicht so genau angesehen. ;) Aber grundsätzlich gings. Vielleicht gibts ja schon etwas, wo python als Grundsprache verwendet wird.

Re: Desktop Umgebung für Linux in Python möglich?

Verfasst: Donnerstag 16. Dezember 2010, 09:26
von BlackJack
@syntor: Es gibt zumindest einen Ansatz einer Anbindung an die `xlib`: http://python-xlib.sourceforge.net/ und ich glaube hier im Forum hatte sich damit auch mal jemand intensiver beschäftigt.

Auch ein Windowmanager wurde schon in Python in Angriff genommen: http://code.google.com/p/samurai-x/

Re: Desktop Umgebung für Linux in Python möglich?

Verfasst: Donnerstag 16. Dezember 2010, 09:31
von syntor
Danne hätte ich vielleicht zuerst Google bemühen sollen, anstatt zu einer vorschnellen Antwort zu greifen :roll:

@Francesco: Natürlich ist ein Windowmanager Geschmacksache. awesome ist nicht bloss ein Windowmanager, es ist zugleich auch ein Framework. awesome's Standardverhalten ist auch nicht auf Schnickschnack ausgelegt, sondern auf useability, was ihm - IMHO - auch sehr gut gelingt. Durch entsprechende Konfiguration kannst du das Tiling-Verhalten auch abschalten. Ich selbst halte es für genial :)

Re: Desktop Umgebung für Linux in Python möglich?

Verfasst: Donnerstag 16. Dezember 2010, 09:32
von Francesco
BlackJack hat geschrieben:@syntor: Es gibt zumindest einen Ansatz einer Anbindung an die `xlib`: http://python-xlib.sourceforge.net/ und ich glaube hier im Forum hatte sich damit auch mal jemand intensiver beschäftigt.

Auch ein Windowmanager wurde schon in Python in Angriff genommen: http://code.google.com/p/samurai-x/
Asso, danke BlackJack für Deine Hinweise.

Re: Desktop Umgebung für Linux in Python möglich?

Verfasst: Donnerstag 16. Dezember 2010, 09:33
von Francesco
syntor hat geschrieben: [...]

@Francesco: Natürlich ist ein Windowmanager Geschmacksache. awesome ist nicht bloss ein Windowmanager, es ist zugleich auch ein Framework. awesome's Standardverhalten ist ist auch nicht auf Schnickschnack ausgelegt, sondern auf useability, was ihm - IMHO - auch sehr gut gelingt. Durch entsprechende Konfiguration kannst du das Tiling-Verhalten auch abschalten. Ich selbst halte es für genial :)
Aha, dann habe ich es zu schnell auf die Seite geschoben. ;)

Re: Desktop Umgebung für Linux in Python möglich?

Verfasst: Donnerstag 16. Dezember 2010, 09:40
von Darii
syntor hat geschrieben:Ganz in Python kannst du das nicht machen, da, soweit ich weiss, keine Python Schnittstele zu X besteht.

Du müsstest dafür eine C-Extension schreiben und darin selbst eine Schnittstelle zu X implementieren.
Oder man nimmt ctypes. Das kann man das vollständig in Python implementieren.

Re: Desktop Umgebung für Linux in Python möglich?

Verfasst: Donnerstag 16. Dezember 2010, 10:30
von lunar
@Darii: ctypes ist halt viel Fleißarbeit, und die Xlib-API ist nun auch beileibe nicht die schönste. Insofern wäre eine Anbindung bzw. eine Python-Implementierung des X11-Protokolls doch recht schickt.

Re: Desktop Umgebung für Linux in Python möglich?

Verfasst: Donnerstag 16. Dezember 2010, 11:55
von jens
Frage mich ob es Sinn macht, irgendwas in Richtung X11 zu unternehmen, wo doch einige Linux Distributionen angekündigt haben, weg vom X11 Protokoll und statt dessen Wayland zu nutzten...

Spontan konnte ich aber nichts über Python + Wayland finden...

Re: Desktop Umgebung für Linux in Python möglich?

Verfasst: Donnerstag 16. Dezember 2010, 16:14
von Leonidas
BlackJack hat geschrieben:@syntor: Es gibt zumindest einen Ansatz einer Anbindung an die `xlib`: http://python-xlib.sourceforge.net/ und ich glaube hier im Forum hatte sich damit auch mal jemand intensiver beschäftigt.

Auch ein Windowmanager wurde schon in Python in Angriff genommen: http://code.google.com/p/samurai-x/
Ja, ich glaub fred.reichbier hat sich an ooxcb gemacht, ein Python-Binding für XCB zu machen.

Und natürlich geht sowas, Francesco. Rate mal was GNOME 3.0 macht: die GNOME-Shell ist in JavaScript geschrieben (zurzeit mit gjs, einem Desktop-JavaScript-Interpreter der Firefox' JavaScript-Engine SpiderMonkey/TraceMonkey/JägerMonkey nutzt). Wo wir grad bei Firefox sind, der besteht nämlich auch aus viel JavaScript-Code der auf XULRunner aufbaut. Und JavaScript und Python geben sich auf dieser Ebene nicht viel.

@jens: Sich Gedanken um Wayland zu machen lohnt sich nicht, denn Wayland ist noch so früh in der Entwicklungphase dass man manchmal das Gefühl hat die Entwickler haben sich selbst nicht so die Gedanken dazu gemacht. Außerdem ist das, wenn man GTK+ oder Qt nutzt, eh ziemlich egal, da diese sich um die Kommunikation mit dem unterliegendem Darstellungssystem (X11, Wayland, Quartz, GDI, DirectWrite) kümmern. Das einzige wo man "direktere Integration" bräuchte wäre ein Window Manager (und Wayland hat kein Konzept von Window-Managern) oder vielleict so Sachen wie Desktophintergrund/Panels.

Re: Desktop Umgebung für Linux in Python möglich?

Verfasst: Donnerstag 16. Dezember 2010, 16:55
von Darii
lunar hat geschrieben:@Darii: ctypes ist halt viel Fleißarbeit, und die Xlib-API ist nun auch beileibe nicht die schönste. Insofern wäre eine Anbindung bzw. eine Python-Implementierung des X11-Protokolls doch recht schickt.
Auf keinen Fall schlimmer als den Wrapper in C selbst zu schreiben. Der einzige Unterschied ist, dass es noch keinen Wrapper-Generator wie swig für ctypes gibt.
Leonidas hat geschrieben:Außerdem ist das, wenn man GTK+ oder Qt nutzt, eh ziemlich egal, da diese sich um die Kommunikation mit dem unterliegendem Darstellungssystem (X11, Wayland, Quartz, GDI, DirectWrite) kümmern..
Halb OT: Streiche Quartz oder GTK+ aus der Liste. Das funktioniert zehn Jahre nach der Einführung von OSX immer noch nicht richtig zusammen. :(

Re: Desktop Umgebung für Linux in Python möglich?

Verfasst: Donnerstag 16. Dezember 2010, 17:06
von lunar
@jens: Eine solche Ankündigung gibt es bis jetzt nur von Ubuntu. Überhaupt ist meines Erachtens noch nicht sicher, dass Wayland sich durchsetzen wird. Es müssten die Desktop-Umgebungen mitziehen, was nicht mit dem Umschreiben der Fensterverwaltung getan ist¹. Außerdem verlangt der Umstieg auf Wayland mal ebenso die Verfügbarkeit guter² freier Treiber für Grafikhardware, denn Wayland setzt zwingend KMS voraus, und diese Kernel-Schnittstelle steht proprietären Treibern nicht zur Verfügung.

¹: An X.org hängt mehr als nur die Fensterverwaltung, sondern u.a. auch die Verwaltung und Konfiguration der Eingabegeräte oder der Anzeige.
²: Gut meint an dieser Stelle wesentlich mehr als nouveau oder die freien Radeon-Treiber.

@Darii: Aber wesentlich schlimmer als die Anbindung zu nutzen, die jemand anderes geschrieben hat ;) Ansonsten stimme ich Dir natürlich zu, ctypes ist wesentlich angenehmer als eine Anbindung in C zu schreiben.

Re: Desktop Umgebung für Linux in Python möglich?

Verfasst: Donnerstag 16. Dezember 2010, 17:21
von Leonidas
Darii hat geschrieben:Halb OT: Streiche Quartz oder GTK+ aus der Liste. Das funktioniert zehn Jahre nach der Einführung von OSX immer noch nicht richtig zusammen. :(
Ja, gut, OS X... dann streiche ich mal Quartz.

@lunar: Also ich weiß nicht, aber die Radeon-Treiber finde ich nicht schlecht. Auf jeden Fall besser als die proprietären, denn mit denen habe ich nie Ärger mit KMS, Multi-Screen, XRandR etc.

Ansonsten stimme ich natürlich allen anderen Punkten zu.

Re: Desktop Umgebung für Linux in Python möglich?

Verfasst: Donnerstag 16. Dezember 2010, 22:47
von Darii

Re: Desktop Umgebung für Linux in Python möglich?

Verfasst: Freitag 17. Dezember 2010, 10:44
von Francesco
Darii hat geschrieben:x-post zu: http://forum.ubuntuusers.de/topic/deskt ... -moeglich/ :/
Ja, sorry, ich dachte, wenn man in beiden Foren fragt, ist die Palette an Anworten noch höher. Normalerweise mache ich das nicht, es sei denn auch, eine Info ist schwieriger zu bekommen. Aber das Thema hier passt ganz gut in beide Foren.

Re: Desktop Umgebung für Linux in Python möglich?

Verfasst: Freitag 17. Dezember 2010, 12:21
von derdon
Ich habe nichts gegen cross-postings. Es ist aber höflicher, von Anfang an in allen Startpostings in den Foren darauf hinzuweisen und die Links zu den entsprechenden anderen Threads zu posten.

Re: Desktop Umgebung für Linux in Python möglich?

Verfasst: Freitag 17. Dezember 2010, 12:30
von Francesco
derdon hat geschrieben:Ich habe nichts gegen cross-postings. Es ist aber höflicher, von Anfang an in allen Startpostings in den Foren darauf hinzuweisen und die Links zu den entsprechenden anderen Threads zu posten.
Ja, sorry, nächstes Mal dann...