2009-09-06 31 views
5

Tôi muốn tạo một trình quản lý cửa sổ bằng một trong các ngôn ngữ này (Tốt hơn là ruby). Tôi thành thật không biết bắt đầu từ đâu ngoại trừ việc tôi sẽ cần một loại mô-đun X để tải. Vì vậy, nếu bất cứ ai có một đầu mối nó sẽ là tuyệt vời nếu bạn có thể chỉ cho tôi đi đúng hướng. Cảm ơn(Ruby || Python)

Trả lời

6

XCB, API gen tiếp theo cho X sử dụng định dạng XML để xác định giao thức X và tạo liên kết ngôn ngữ cụ thể bằng tập lệnh. Nó tương tự như khái niệm SWIG ngoại trừ việc thay vì mô tả các API C, nó mô tả các giao thức X.

Hiện tại, các ràng buộc tồn tại cho C và Python. Một cổng Ruby về mặt lý thuyết sẽ chỉ là vấn đề viết một dịch giả từ ngôn ngữ định nghĩa giao thức XML sang Ruby. Mã Ruby được tạo ra có thể bọc API C hoặc triển khai giao thức dây trong Ruby thuần túy (tôi khuyên bạn nên sử dụng nó sau này).

API dường như có một số lợi thế vốn có so với Xlib cũ liên quan đến chặn I/O. Nó cũng có một cổng Windows, đủ kỳ quặc.

http://xcb.freedesktop.org/

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

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

2

Bạn đã xem http://ruby-xlib-wrap.sourceforge.net/. Điều này dường như cung cấp các ràng buộc Ruby cho XLib.

Bạn có thể muốn thử nghiệm bằng cách sử dụng XWindows trước khi cố gắng viết trình quản lý cửa sổ.

Tại sao không bắt đầu với máy tính để bàn nên bạn có thể có được một số trải nghiệm.

0

Không Ruby hay Python, nhưng các nhà quản lý cửa sổ cũng được viết bằng các ngôn ngữ mát: awesome (Lua) và XMonad (Haskell). Có lẽ bạn có thể nhìn trộm bên trong nội bộ của họ và xem cách họ làm việc.

2

Lưu ý:

1) Tuyệt vời không được viết bằng lua, được viết bằng C. Nó sử dụng Lua làm giao diện script/config.

2) Qtile và Samurai-X là hai wm được viết bằng python.

3) Tinh tế là một wm sử dụng ruby ​​làm ngôn ngữ kịch bản.

Qtile và Subtle là cả hai trình quản lý cửa sổ ốp lát.

+0

tinh tế được viết bằng C, nó chỉ sử dụng Ruby làm ngôn ngữ kịch bản. – unexist

Các vấn đề liên quan