Question

Je veux créer un simple gestionnaire de fenêtres d'empilage (en C) pour un usage privé, principalement dans le but d'apprendre et provocant moi-même.

Je l'ai regardé à travers le code source de twm qui a relativement peu de cloches et de sifflets, mais il semble très faible car il est pas basé sur une boîte à outils widgets. href="http://en.wikipedia.org/wiki/CLX_%28Common_Lisp%29" rel="noreferrer"> 1 à l'aide d'une boîte à outils Would tels que GTK + préférable? Je crains que certains du code et des bibliothèques twm pourrait être trop désuète ( modifier: dépréciée) et je veux le gestionnaire de fenêtres d'utiliser des bibliothèques relativement modernes. Par souci de comprendre, je serais également intéressé par les suggestions comment démarrer un gestionnaire de fenêtres à partir de zéro - il n'y a pas beaucoup de tutoriels à cette fin

.

Mise à jour: Pour ceux qui envisagent des projets similaires: je me suis retrouvé à l'aide de Common Lisp et bibliothèque CLX . tinywm-Lisp servi de base et le brillant et href="http://en.wikipedia.org/wiki/Stumpwm" rel="noreferrer"> stumpwm étaient d'une grande aide. Pour référence je CLX - Common Lisp X Interface ( avertissement PDF ) et #xlib sur Freenode.

Était-ce utile?

La solution

Quoi que vous fassiez, utilisez XCB et non Xlib. Il accès moderne, asynchrone, plus simple et vous donne directement au protocole X11.

Autres conseils

A WM très wm2 . Je n'ai pas lu le code source et donc je ne sais pas si c'est un exemple d'enseignement. Bien sûr, vous pouvez utiliser les bibliothèques qui font déjà une grande partie de l'abstraction et de dessin travail pour vous comme gdk gtk . Mais puisque ce projet est seulement pour l'apprentissage personnel, je vais à la dure et utiliser Xlib directement.

Voici quelques liens qui pourraient être utiles pour vous:

Jetez un coup d'oeil au code DWM . Le code de base est belle et facile à comprendre. La chose entière est d'environ 2000 lignes.

J'ai écrit une série de tutoriel en profondeur qui vous montre comment écrire un gestionnaire de fenêtres X11 en C ++:

En outre, vous pouvez consulter un exemple simple gestionnaire de fenêtres, basic_wm, à

Il est fortement commenté à des fins pédagogiques.

Xlib vs XCB - Je recommande Xlib sur XCB si vous débutez. XCB est plus efficace, mais il est beaucoup plus bas niveau et beaucoup plus bavard (pensez langage d'assemblage pour l'interface graphique). Vous ne voulez pas vous encombrer avec l'optimisation prématurée jusqu'à ce que vous avez déjà un travail de prototype.

http://code.google.com/p/partiwm/ est un tenter d'écrire un gestionnaire de fenêtres (carrelage, pas empiler) à partir de zéro, il pourrait être utile pour vous de lire à travers le code.

utilisations metacity GTK pour certains éléments de l'interface utilisateur. Voir son PIRATAGE et README.

voir aussi Où sont les bons guides de programmation Xlib?

  

Dans un souci de compréhension, je serais également intéressé par les suggestions comment lancer un gestionnaire de fenêtre à partir de zéro

Vous pouvez jeter un oeil à la gestionnaire de fenêtres aewm. Le code est petit et il fait les bases assez bien. Il est écrit en C et utilise Xlib.

http://www.red-bean.com/decklin/aewm/

xmonad pourrait être un bon endroit pour commencer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top