Pergunta

Quero fazer um gerente de janela em qualquer um desses idiomas (de preferência rubi). Sinceramente, não tenho idéia por onde começar, exceto que precisarei de algum tipo de módulo X para carregar. Então, se alguém tiver uma pista, seria ótimo se você pudesse me indicar a direção certa. Obrigado

Foi útil?

Solução

XCB, a próxima API da Gen para X usa um formato XML para definir protocolos X e gera ligações específicas de linguagem com um script. É semelhante em conceito ao SWIG, exceto que, em vez de descrever as APIs C, descreve os protocolos X.

Atualmente, existem ligações para C e Python. Teoricamente, uma porta Ruby seria apenas uma questão de escrever um tradutor da linguagem de definição do protocolo XML para o Ruby. O código Ruby gerado pode embrulhar a API C ou implementar o protocolo de arame em Pure Ruby (eu recomendo o último).

A API aparentemente tem algumas vantagens inerentes ao XLIB legado relacionado ao bloqueio da E/S. Ele também possui uma porta do Windows, por incrível que pareça.

http://xcb.freedesktop.org/

http://xcb.freedesktop.org//xcbpythonbinding/

http://xcb.freedesktop.org//win32port/

Outras dicas

Você já olhou http://ruby-xlib-wrap.sourceforge.net/. Isso parece fornecer encadernas para XLIB.

Você pode experimentar o uso do XWindows antes de tentar escrever um gerenciador de janelas.

Por que não começar com um desktop, para que você possa obter alguma experiência.

Observação:

1) Awesome não está escrito em Lua, está escrito em C. Usa Lua como uma interface de script/configuração.

2) Qtile e Samurai-X são dois WMs são escritos em Python.

3) SUGTLE é um WM que usa Ruby como uma linguagem de script.

QTile e sutis são os dois gerentes de janelas.

Não Ruby ou Python, mas esses gerentes de janelas também são escritos em idiomas legais: incrível (Lua) e Xmonad (Haskell). Talvez você possa espiar dentro de seus internos e ver como eles funcionam.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top