🔒 Repository is read-only – file editing is disabled.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
[package]
name = "pagan-compositor"
version = "0.1.0"
edition = "2021"
license = "MIT"
description = "PaganDE: kompozytor Wayland (floating, hybrydowe CSD) zbudowany na Smithay 0.7"
publish = false
# Uwaga: korzystamy z VENDORED Smithay 0.7.0, żeby build działał offline i był
# powtarzalny (zgodnie z podejściem "trzymamy się pakietów obecnych w PaganDE").
# Gdy chcesz wziąć Smithay z crates.io, podmień na:
# smithay = { version = "0.7", default-features = false, features = [...] }
#
# Włączamy możliwie wąski zestaw feature'ów, żeby ograniczyć czas budowania
# i liczbę zależności systemowych:
# - backend_winit : backend okienkowy (X11/Wayland) do developmentu
# - desktop : Space / Window (floating window manager)
# - renderer_gl : GlesRenderer (EGL/OpenGL)
# - renderer_glow : eksponuje crate `glow` (m.in. do własnych shaderów)
# - wayland_frontend : protokoły Waylanda po stronie serwera (xdg-shell, decoration, shm)
[dependencies]
smithay = { path = "../smithay-0.7.0", default-features = false, features = [
"backend_winit",
"desktop",
"renderer_gl",
"renderer_glow",
"wayland_frontend",
# XWayland: uruchamianie aplikacji X11 (wymaga binarki `Xwayland` w PATH).
"xwayland",
] }
anyhow = "1"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
# Ładowanie kursora z motywu XCursor (System: libXcursor).
xcursor = "0.3"
# Definicje protokołu wlr-screencopy (serwer) — implementujemy jego logikę sami.
wayland-protocols-wlr = { version = "0.3", features = ["server"] }
# Wymagane tylko przez backend tty-udev (feature `udev`):
rustix = { version = "1.0", optional = true, features = ["fs"] }
# `smithay-drm-extras` daje `DrmScanner` (skanowanie konektorów/CRTC) — Smithay 0.7
# przeniósł to do osobnego crate'a. `default-features = false`, bo nie używamy
# `display-info` (a to pociągnęłoby zależność od libdisplay-info).
smithay-drm-extras = { path = "../smithay-0.7.0/smithay-drm-extras", default-features = false, optional = true }
inotify = { version = "0.11.5", default-features = false }
# Rasteryzacja tekstu w kompozytorze (tytuł, etykiety menu aplikacji).
# Cairo jest już pakietem w PaganOS (używa go też toolkit), więc nie dokładamy
# nowej zależności systemowej — tylko tę samą, sprawdzoną bibliotekę.
cairo-rs = "0.22"
# Własny protokół menu aplikacji (pagan-app-menu-v1): generowanie kodu serwera
# z XML-owego opisu. `wayland-server` jest potrzebny, bo wygenerowany kod
# odwołuje się do niego bezpośrednio po nazwie crate'a.
wayland-server = "0.31"
wayland-backend = "0.3"
wayland-scanner = "0.31"
[features]
default = []
# Produkcyjny backend: DRM/KMS + EGL/GBM + libinput + libseat.
# Wymaga bibliotek systemowych: libdrm, libgbm, libinput, libudev, libseat.
udev = [
"dep:rustix",
"dep:smithay-drm-extras",
"smithay/backend_drm",
"smithay/backend_gbm",
"smithay/backend_egl",
"smithay/backend_udev",
"smithay/backend_libinput",
"smithay/backend_session_libseat",
"smithay/renderer_multi",
]
[profile.release]
debug = true
# Backend tty-udev (produkcja) jest dostępny przez feature `udev`:
# cargo build --features udev && ./target/debug/pagan-compositor --tty-udev
# Zobacz README.md, sekcja "Backend tty-udev (produkcja)".