Pregunta

Quiero hacer un gestor de ventanas en cualquiera de estos idiomas (preferiblemente rubí). Sinceramente, no tienen idea de por dónde empezar excepto que voy a necesitar algún tipo de módulo X para carga. Así que si alguien tiene una idea de que sería genial si me podría apuntar en la dirección correcta. Gracias

¿Fue útil?

Solución

XCB, la próxima generación de API X utiliza un formato XML para definir los protocolos X y genera enlaces de lenguaje específicos con un guión. Es similar en concepto a TRAGO excepto que en lugar de describir las API de C, que describe los protocolos X.

En la actualidad, existen fijaciones para C y Python. Un puerto de Ruby sería teóricamente sólo cuestión de escribir un traductor del lenguaje de definición de protocolo XML a Ruby. El código Ruby generada ya sea podría envolver la API C o poner en práctica el protocolo de cable en puro Ruby (recomiendo el último).

La API aparentemente tiene algunas ventajas inherentes sobre el legado Xlib relacionado con el bloqueo de E / S. También tiene un puerto de Windows, por extraño que parezca.

http://xcb.freedesktop.org/

http://xcb.freedesktop.org//XcbPythonBinding/

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

Otros consejos

¿Has mirado en http://ruby-xlib-wrap.sourceforge.net/. Esto parece proporcionan enlaces de Rubí para XLIB.

Es posible que desee experimentar con el uso de XWindows antes de intentar escribir un gestor de ventanas.

¿Por qué no empezar con un escritorio, por lo que puede conseguir un poco de experiencia.

Nota:

1) impresionante no está escrito en lua, está escrito en C. Se utiliza Lua como scripting / config interfaz.

2) Qtile y Samurai-X son dos de WM están escritos en Python.

3) sutil es un wm que los usos rubí como un lenguaje de script.

Qtile y sutiles son tanto embaldosado gestores de ventanas.

No Rubí o Python, pero estos gestores de ventanas también están escritos en idiomas fresco: impresionante (LUA) y xmonad (Haskell). Tal vez se puede mirar dentro de sus componentes internos y ver cómo funcionan.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top