(Ruby || Python) Gerente de janela
-
21-09-2019 - |
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
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.
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.