59 votes

Interface graphique personnalisée Linux: par où commencer?

J'ai eu longtemps un intérêt dans le développement d'un OS de l'INTERFACE utilisateur adaptée à mes besoins et à mes intérêts. Quand j'étais plus jeune, je suis allé fou à jouer avec les Stardock dépouillement des outils pour Windows. J'ai aimé le développement de mon propre fenêtre styles et mise en page des idées. Depuis lors, j'ai eu un inrayable démangeaisons.

  • Je ne suis pas particulièrement intéressé à jongler avec le niveau inférieur du noyau opérations, juste la présentation des aspects. J'ai ete envisagent quelques versions de Linux.
  • Bien que j'aimerais avoir une certaine base intégrés outils/applications que j'ai créer moi-même, je suis principalement intéressé par les présentations de base de fenêtres, barres d'outils, de bureau et de gestion de fichiers.
  • Je ne veux pas être en lock-out de l'utilisation des applications existantes, si possible. J'ai, par exemple, n'ont aucun intérêt dans l'écriture de mon propre navigateur web, mais ayant la capacité de travailler sur des outils existants dans un design serait un atout majeur.
  • Mes idées sont parfois très visuelle dans la nature, donc la capacité à produire de la plus complexe des effets de transparence et inhabituelle de la fenêtre formes serait utile. Plus ou moins la capacité à reproduire le graphique de la fidélité de courant dessins de l'INTERFACE utilisateur pour OS X ou Windows serait l'idéal.
  • Un OS de la saveur et des outils qui me permet de démarrer avec un écran vide et le travail à partir du sol ou d'inclure les notions de base sont encouragés. L'idée d'un "bureau" dans le sens traditionnel du terme, ne devrait pas être obligatoire. La flexibilité de faire des choses différentes est important pour moi.

Ce que je recherche:

Je suis intéressé par ce que Linux/OS saveurs peut avoir du sens, quels outils / frameworks serait utile pour l'accomplissement de la tâche ( Qt semble être un populaire suggestion ici ), et des informations de base sur comment / où l'on peut commencer à développer / tester une telle INTERFACE. Je serais également intéressé en lisant toute "personnelle" de l'INTERFACE utilisateur que les gens ont peut-être développé.

C'est d'un intérêt loin à l'extérieur de mon développement normal de travail, donc comme un avertissement, pardonnez ma naïveté si je semble être confus. Correctives aperçu accueilli.

Je réalise que c'est une grande question, donc merci à ceux pris le temps de faire des suggestions.

49voto

liori Points 13629

Vous voulez construire votre propre DE (environnement de bureau). Des exemples courants sont GNOME et KDE, bien que plusieurs d'entre eux ont été très populaires. Il sert réellement à être très populaire pour construire votre propre DE et des outils de script ont souvent été créés.

Vous aurez généralement besoin de combiner plusieurs outils: un gestionnaire de fenêtre, une barre d'outils du programme, un gestionnaire de bureau (icônes), gestionnaire de session, peut-être plus. De que seul un gestionnaire de fenêtre est une partie nécessaire de la (habituellement, il ne ferait aucun sens de ne pas exécuter n'importe quel WM à l'intérieur de serveur X), et d'autres sont optionnels. Vous aurez généralement pas écrire ces outils à partir de zéro (c'est beaucoup de travail), mais utilisent déjà des composants disponibles.

Il est à noter que GNOME et KDE se compose en réalité de ces éléments (bien intégré). Par exemple GNOME se compose d'un gestionnaire de fenêtre (metacity), les barres d'outils (gnome-panel), le gestionnaire de bureau (nautilus) et ainsi de suite. Vous pouvez modifier un élément dans l'autre, si vous voulez: il sert à être populaire à utiliser sawfish comme un gestionnaire de fenêtre au lieu de metacity, en gardant tous les autres éléments intacts. Maintenant, il est populaire pour utiliser l' compiz au lieu de metacity.

J'ai l'habitude d'utiliser FVWM, qui est un gestionnaire de fenêtre avec une (très bonne) capacités de script qui pourrait être utilisé pour créer des barres d'outils, menus et autres choses. L'un de gentil exemples est FVWM-Crystal, qui est un DE construit sur FVWM et quelques autres outils, écrit dans un mélange de FVWM de script Python. Vous pouvez réellement changer tout type de comportement à l'exécution, par le simple fait d'ouvrir FVWM du script de la console et de taper les commandes. FVWM-Crystal peut être un bon point de départ si vous voulez commencer à partir de quelque chose de déjà utilisable; nu FVWM est bon si vous voulez construire votre DE partir de zéro.

[Mise à JOUR: il semble que gnome-shell est très similaire à cet égard, FVWM. La plupart de son comportement est codée à l'aide de JavaScript (au lieu d'une langue personnalisée dans FVWM), et est très facile à changer. Il est également très activement développé, comme c'est une partie importante de GNOME3, avec un très bon support pour la composition. C'est un pirate du ciel ;-)]

[UPDATE2: de sorte qu'il semble que j'avais raison sur gnome-shell. Il y a un la Cannelle, qui utilise le même cadre (mutter gestionnaire de fenêtre) comme gnome-shell, encore construit un bureau qui fonctionne d'une manière différente de celle de gnome-shell.]

Il y avait un site internet qui a une bonne source d'idées à mettre en œuvre: lynucs.org. Il est en baisse depuis deux ans maintenant, mais il a été archivé.

Avertissement: beaucoup de ces composants ne sont pas plus maintenue, surtout depuis GNOME/KDE a commencé à devenir réellement utilisable. Le développement dans ce domaine est généralement plus motivés par les exigences spécifiques des périphériques intégrés: téléphones portables ou netbooks.

Maintenant, pour répondre à vos questions:

  • Linux/OS flaver: quelque chose de facilement personnalisable: Debian, Arch, Gentoo, EFT...
  • Outils/frameworks: cela dépend de ce que vous voulez atteindre. Si vous voulez écrire une barre d'outils personnalisée vous pouvez simplement utiliser certains langages de script (comme FVWM), des outils personnalisés comme adesklets, ou écrire votre propre dans Qt (si la plupart de vos autres composants est en Qt) ou GTK (si la plupart de vos autres composants est en GTK).
  • Personnel de l'Isu: il y avait beaucoup d'entre eux, et des sites comme lynucs.org a été une belle compilation d'entre eux (lynucs composants utilisés dans chaque bureau).
  • Complexe des effets de transparence: les outils ne gèrent pas nativement, ou de faire des choses simples comme la réutilisation de la partie de fond d'écran comme de son propre arrière-plan (soi-disant faux transparence). Probablement, vous aurez besoin d'écrire votre propre code, f.e. comme un plug-in compiz.

3voto

Oli Points 65050

Je commencerais probablement par une installation Ubuntu et le gestionnaire de fenêtres OpenBox , puis une compilation à partir de là.

OpenBox est très minime, mais vous pouvez ajouter des applications (par exemple, Docky, Awn, etc.) pour fournir des éléments d’interface de bureau ou écrire les vôtres.

1voto

Ashish Points 648

Si vous êtes rapide et cool, l'interface utilisateur, je vous suggère de vous pencher sur l' illumination . Il est plus ancien que Gnome et je l’ai trouvé extrêmement rapide et peu consommateur de ressources.

0voto

superlinux Points 111

Avez-vous essayé Tcl / Tk? Tcl est un langage de script. Tk est la partie graphique de la langue. Votre application fonctionnera partout, même sur Android avec AndroWish .

Si facile et si rapide.

En une heure seulement, j'ai pu créer un agenda avec un calendrier.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X