Cardboard - Utilitar - București - Lucrari 2020 Nationala


(muflonel) #1

Informatii generale

Descriere

Cardboard este un window manager gândit pentru laptopuri care folosește o metodă inedită
de aranjare a ferestrelor pe ecran numită scrollable tiling. Window manager-ul este programul
care se ocupă cu plasarea ferestrelor aplicațiilor grafice pe ecran și facilitează interacțiunea dintre
om și aceste aplicații.

Un window manager tiling este unul care redimensionează ferestrele în așa fel încât ele ocupă o
suprafață cât mai mare din ecran. Acest lucru este favorabil pentru laptopuri și pentru utilizatorii
care folosesc multe ferestre în același timp.

Cardboard folosește ideea de scrollable tiling: inițial, ferestrele au înălțime maximă și lățime variabilă, și
pot fi mișcate doar pe orizontală. Ferestrele capătă astfel aspectul unor “benzi”. Așadar, pe laturile de
sus și de jos benzile sunt lipite de ecran, iar la stânga și la dreapta sunt lipite de benzile adiacente.

Fiecare ecran are un set de benzi de diferite lățimi. Ce diferă în modalitatea de tiling a lui Cardboard
față de alte window manager-e este că benzile nu sunt redimensionate ca să ocupe ecranul în mod egal, ci
ele își păstrează dimensiunile naturale, depășind limitele ecranului. Secvența aceasta de ferestre
poate fi derulată pe ecran. Unele ferestre ajung în dreptul ecranului, în timp ce altele îl depășesc,
devenind invizibile. Ecranul este astfel o “fereastră glisantă” (sliding window).

Ulterior, mai multe ferestre pot fi parte din aceeași bandă, utilizând spațiul vertical în mod egal.
Când mișcăm banda, toate ferestrele componente se mișcă simultan. Ferestrele care fac parte din aceeași bandă au și lățimi egale.

Ne bazăm pe ideea că utilizatorul nu se uită decât la câteva ferestre în același
timp, facând totuși ușoară
trecerea la ferestre invizibile anterior. În window manager-urile tradiționale, fie trebuie să căutăm ferestrele pe
ecran si să dăm click pe ele, fie apăsăm pe alt-tab până nimerim fereastra dorită, sau folosim “spații de
lucru” (workspaces) și trebuie să ținem minte pe care workspace e fiecare
fereastră doar de dragul ordinii
(sau pentru a evita micșorarea excesivă a ferestrelor într-un tiling window
manager convențional). Cardboard are și el spații de lucru pentru a categorisi
ferestrele. Ferestrele nu se micșorează când alte ferestre apar pe ecran, și nu se pierd.

Tehnologii

Cardboard se bazează pe noua tehnologie Wayland, spre deosebire de majoritatea programelor window manager
pentru sisteme Linux / Unix-like, care se bazează pe display server-ul Xorg prin protocolul X11
(X Window System). Cardboard este astfel un Wayland compositor. Cardboard are acces direct la placa
grafică a sistemului și la dispozitivele de intrare (mouse, tastatură, touchscreen, touchpad, drawing
tablet) și gestionează în totalitate utilizarea lor de către aplicațiile client (aplicații grafice),
precum browser-ul, word processor-ul, jocurile sau task bar-ul de pe marginea
ecranului. Avem astfel o suprafață largă de optimizare și posibilități infinite.
Ferestrele sunt desenate pe ecran direct cu OpenGL, așa că putem aplica diverse
efecte. Protocolul Wayland oferă securitate sporită față de X11, facând
imposibilă capturarea input-ului (necesită root access) și controlul ferestrelor
de pe ecran de către alte aplicații.

Aplicațiile X11 sunt compatibile cu Cardboard, prin Xwayland.

Cardboard implementează multe protocoale Wayland, precum:

  • xdg-shell, standardul pentru reprezentarea ferestrelor Wayland;
  • layer-shell, pentru panouri și popup-uri (task bars, notification daemons);
  • wlr-input-inhibit, pentru a acorda acces deplin la dispozitivele de intrare
    unor programe de încredere (lock screens), fără ca alte aplicații să primească evenimente;
  • wlr-gamma-control, pentru a permite aplicațiilor sa schimbe temperatura
    culorilor ecranului (precum programele care elimină lumina albastră noaptea,
    f.lux, redshift);
    și altele.

Programe utilitare pot comunica cu cardboard prin librăria libcardboard pentru a
automatiza diverse procese.

Cerinte sistem

  • Sistem de operare Linux sau FreeBSD. Am testat doar Linux.
  • Driver video care să suporte API-ul GBM. Adică orice driver video mai puțin driver-ul Nvidia proprietar (nouveau funcționează). Drept consecință, Cardboard nu va funcționa cu generațiile recente de procesoare grafice Nvidia. Nu este vina noastră!

Realizatori

Tudor Roman

  • Scoala: Colegiul Național de Informatică “Tudor Vianu”
  • Clasa: 11
  • Judet: București
  • Oras: București

Alexandru-Iulian Magan

  • Scoala: Colegiul Național de Informatică “Tudor Vianu”
  • Clasa: 12
  • Judet: București
  • Oras: București

Screenshots