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?
Desktop Umgebung für Linux in Python möglich?
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
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.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
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.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.
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.
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.
Zuletzt geändert von syntor am Donnerstag 16. Dezember 2010, 09:27, insgesamt 1-mal geändert.
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.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.
@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/
Auch ein Windowmanager wurde schon in Python in Angriff genommen: http://code.google.com/p/samurai-x/
Danne hätte ich vielleicht zuerst Google bemühen sollen, anstatt zu einer vorschnellen Antwort zu greifen
@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
@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
Zuletzt geändert von syntor am Donnerstag 16. Dezember 2010, 09:39, insgesamt 2-mal geändert.
Asso, danke BlackJack für Deine Hinweise.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/
Aha, dann habe ich es zu schnell auf die Seite geschoben.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
Zuletzt geändert von Francesco am Donnerstag 16. Dezember 2010, 09:55, insgesamt 1-mal geändert.
Oder man nimmt ctypes. Das kann man das vollständig in Python implementieren.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.
@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.
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
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...
Spontan konnte ich aber nichts über Python + Wayland finden...
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ja, ich glaub fred.reichbier hat sich an ooxcb gemacht, ein Python-Binding für XCB zu machen.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/
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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
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.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.
Halb OT: Streiche Quartz oder GTK+ aus der Liste. Das funktioniert zehn Jahre nach der Einführung von OSX immer noch nicht richtig zusammen.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..
@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.
¹: 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.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ja, gut, OS X... dann streiche ich mal Quartz.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.
@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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
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.Darii hat geschrieben:x-post zu: http://forum.ubuntuusers.de/topic/deskt ... -moeglich/ :/
Ja, sorry, nächstes Mal dann...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.