GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Benutzerdefinierte Linux-GUI:Wo soll ich anfangen?

Sie möchten Ihre eigene DE (Desktop-Umgebung) erstellen. Übliche Beispiele sind GNOME und KDE, obwohl mehr von ihnen beliebt waren. Früher war es sehr beliebt, seine eigene DE zu erstellen, und es wurden oft spezielle Skripting-Tools entwickelt.

Normalerweise müssen Sie mehrere Tools kombinieren:einen Fenstermanager, ein Toolbar-Programm, einen Desktop-Manager (Icons), einen Sitzungsmanager, möglicherweise mehr. Davon ist nur ein Fenstermanager ein erforderlicher Teil (es macht normalerweise keinen Sinn, kein WM innerhalb des X-Servers auszuführen), und andere sind optional. Sie werden diese Tools normalerweise nicht von Grund auf neu schreiben (das ist viel Arbeit), sondern bereits vorhandene Komponenten verwenden.

Beachten Sie, dass sowohl GNOME als auch KDE tatsächlich aus diesen Elementen bestehen (gut integriert). Beispielsweise besteht GNOME aus einem Fenstermanager (metacity ), Symbolleisten (gnome-panel ), Desktop-Manager (nautilus ) usw. Sie können ein Element durch ein anderes ersetzen, wenn Sie möchten:Früher war es beliebt, sawfish zu verwenden als Fenstermanager anstelle von metacity , wobei alle anderen Elemente intakt bleiben. Jetzt ist es beliebt, compiz zu verwenden statt metacity .

Früher habe ich FVWM verwendet, einen Fenstermanager mit zusätzlichen (ziemlich guten) Skriptfunktionen, mit denen Symbolleisten, Menüs und andere Dinge erstellt werden können. Eines der netten Beispiele ist FVWM-Crystal, eine vollständige DE, die auf FVWM und einigen anderen Tools aufbaut und in einer Mischung aus FVWM-Skripting und Python geschrieben ist. Sie könnten tatsächlich jede Art von Verhalten zur Laufzeit ändern, indem Sie einfach die Skriptkonsole von FVWM öffnen und Befehle eingeben. FVWM-Crystal kann ein guter Ausgangspunkt sein, wenn Sie von etwas bereits Verwendbarem ausgehen möchten; bare FVWM ist gut, wenn Sie Ihr DE von Grund auf neu erstellen möchten.

[UPDATE:es scheint, dass gnome-shell in dieser Hinsicht sehr ähnlich zu FVWM ist . Der größte Teil seines Verhaltens wird mithilfe von JavaScript (anstelle einer benutzerdefinierten Sprache in FVWM) skriptgesteuert und kann sehr einfach geändert werden. Es wird auch sehr aktiv weiterentwickelt, da es ein wichtiger Bestandteil von GNOME3 ist, mit sehr guter Unterstützung für die Komposition. Es ist ein Paradies für Hacker;-)]

[UPDATE2:Es scheint also, dass ich auf Gnome-Shell richtig war. Es gibt Cinnamon, das dasselbe Framework verwendet (mutter Fenstermanager) als gnome-shell , erstellt jedoch einen Desktop, der anders funktioniert als gnome-shell .]

Es gab eine Website, die eine gute Quelle für Ideen zur Umsetzung war:lynucs.org. Es ist jetzt seit zwei Jahren nicht mehr verfügbar, wurde aber archiviert.

Achtung:Viele dieser Komponenten werden nicht mehr gepflegt, zumal GNOME/KDE damit begonnen hat, tatsächlich nutzbar zu werden. Die Entwicklung in diesem Bereich wird in der Regel mehr durch spezifische Anforderungen eingebetteter Geräte vorangetrieben:Telefone oder Netbooks.

Um nun Ihre eigentlichen Fragen zu beantworten:

  • Linux/OS Flaver:alles leicht anpassbar:Debian, Arch, Gentoo, LFS...
  • Tools/Frameworks:Es hängt davon ab, was Sie erreichen möchten. Wenn Sie eine benutzerdefinierte Symbolleiste schreiben möchten, verwenden Sie möglicherweise einige Skriptsprachen (wie die von FVWM), benutzerdefinierte Tools wie adesklets oder schreiben Sie Ihre eigene in Qt (wenn die meisten Ihrer anderen Komponenten in Qt sind) oder GTK (wenn die meisten Ihrer anderen Komponenten ist in GTK).
  • Persönliche UIs:Es gab viele davon, und Websites wie lynucs.org waren eine nette Zusammenstellung davon (lynucs listete Komponenten auf, die in jedem Desktop verwendet wurden).
  • Komplexe Transparenzeffekte:Ältere Tools verarbeiten diese normalerweise nicht nativ oder verwenden einfache Dinge wie die Wiederverwendung eines Teils des Desktophintergrunds als eigenen Hintergrund (sogenannte gefälschte Transparenz). Höchstwahrscheinlich müssen Sie Ihren eigenen Code schreiben, z. als Plugin zu compiz .

Wenn Sie eine schnelle und coole Benutzeroberfläche haben, würde ich vorschlagen, sich mit Enlightenment zu befassen. Es ist älter als Gnome und ich fand es extrem schnell und verbraucht wenig Ressourcen.


Ich würde wahrscheinlich mit einer Ubuntu-Installation und dem OpenBox-Fenstermanager beginnen und von dort aus aufbauen.

OpenBox ist sehr minimal, aber Sie können Anwendungen (z. B. Docky, Awn usw.) hinzufügen, um Desktop-Oberflächenelemente bereitzustellen, oder Ihre eigenen schreiben.


Linux
  1. So starten Sie die GUI auf einem Ubuntu Linux-Computer

  2. ODrive – Google Drive-GUI-Client für Linux-Desktop

  3. Meine benutzerdefinierte Kali-Linux-Distribution

  4. Wo ist PATH_MAX in Linux definiert?

  5. Wo ist ssize_t in Linux definiert?

Perfekter Fluxbox-Desktop auf Kali Linux

So erstellen Sie Verknüpfungen auf dem Linux-Desktop

Desktop-Arbeitsbereiche in Linux

Telegram Desktop 1.0 ist da! Installieren Sie es unter Linux

Verwenden Sie das Task-Manager-Äquivalent in Linux

5 Leichte Linux-Desktop-Umgebungen