Hakaton u Novembru

Postavite ovde predloge za temu za hakaton u Novembru.

Evo nekih predloga za pocetak:

  • Pisanje tutoriala
  • Sajt decentrale
  • Pisanje za Libre casopis
  • Game jam - Pravljenje nove igrice/igrica
  • Animacije i grafika za Decentralu

Basic lightweight clipboard manager for linux <3 xD

2 Likes

Super ideja :slight_smile: Mislim da bi to mogli lagano :smiley:

Koji display server? X11/Wayland?

Je li moze isti app za oba? Da li wayland komplikuje to iz bezbednosti?

U teoriji verovatno može, ali bi zahtevalo da praktično imaš 2 programa u jednom, što po meni nije prihvatljivo rešenje. Takođe bitno je i šta se tačno misli pod clipboard manager - pošto je neke stvari trivijalno implementirati, dok su druge (skoro) nemoguće bez ogromnih žrtvi (bezbednost, performanse, ergonomija, itd.).

Da li wayland komplikuje to iz bezbednosti?

Wayland i x11 arhitektura clipboard-a i cele te priče nije ‘značajno’ različita, barem koliko sam ja upoznat. Vecina detalja (tj razlika) se nalazi u implementaciji, i zato i mislim da nije moguće spojiti ih u jedan program.

Cela arhitekture clipboard je dosta zanimljiva (barem meni). Mentalni model u kome program ‘kopira’ nesto u clipboard je potpuno netačna, pravo ‘kopiranje’ se zapravo nikad ne desi (barem u ‘idealnom’ slucaju). Ako nekoga zanima, mogu ovih dana napisati blogpost na tu temu :sweat_smile: .

1 Like

Da se razumemo, razlog što sam to predložio je što mi kosa opada od copyQ i sličnih, pa reko kad već pitate :joy: Ja sam na x11, i jedino što mi treba jeste poslednjih 10-20ak unosa, kao što je win to rešio. Sve ostalo mi je iskreno overkill.

Voleo bih da pročitam, ako te ne mrzi da pišeš, jako si to kriptično plasirao xD

Ovo je pokusaj objašnjenja clipboard-a u X11 display server-u. (nista od blog
posta za sad xd)

Za početak, ‘clipboard’ je zapravo ‘selection’ ili selekcija. Postoji vise od
jedne seleckije, i sve su nezavisne. Broj selekcija u teoriji nije ogranicen,
ali da bi neka aplikacije koristila selekciju ona mora da zna nesto o njoj -
sto znaci da ako kreiramo sopstvenu selekciju X ne mozemo ocekivati da svi
programi vec znaju kako da koriste tu selekciju.

Selekcije predstavljaju formu IPC-a (tj inter process comunication, ili - medju
procesne komunikacije). X11 server tu ima ulogu brokera ili scheduler-a.

Ta komunikacija izgleda (pojednostavljeno) ovako:

  • aplikacija A objavi X11 serveru da ona ‘poseduje’ selekciju X
    • ovde aplikacija A ne ‘kopira’ nista, samo kaze da ako neko zatrazi tu
      selekciju, X11 moze aplikaciji A da prosledi taj zahtev
  • aplikacija B zatrazi X11 serveru da ispise selekciju X u Y
  • X11 server prosledi tu poruku aplikaciji koja poseduje selekciju X (u ovom
    slucaju aplikaciji A)
  • aplikacija A ispise selekciju X u Y

Naravno, u stvarnosti, selekcije se ne zovu X, Y i Z, vec postoje 3
standardizovane selekcije (barem zadnji put kad sam ja proverio):

  • PRIMARY (to je clipboard ‘rezervisan’ za skroll dugme na mišu)
  • SECONDARY
  • CLIPBOARD (ovaj je ‘obicno’ ctrl+c clipboard)

Pocetak problema:

Ovo deluje jednostavno zato sto za za sad nismo pomenuli cinjenicu da nekad
zelimo da kopiramo nesto sto nije tekst, kao ni da nekad razlicite aplikacije
razumeju iste podatke na razlicite nacine (kopiranje slike u vim kopira link ka
slici, barem ako je sve dobro implementirano i konfigurisano).

Znaci onaj deo “aplikacija B zatrazi X11 serveru da ispise selekciju X u Y” je
zapravo “aplikacija B zatrazi X11 serveru da ispise selekciju X u Y u (formatu)
Z”.

Ovaj deo je resljiv, samo dodaje kompleksnost. U praksi znaci da aplikacija A
treba da zna kako da ispise selekciju X u formatu Z - sto nije uvek slucaj.

Ali tu nije kraj problemima - sta se desi ako se aplikacija koja poseduje
selekciju X, ugasi (ispravno ili neispravno, tj, ili je mi ugasimo, ili se desi
neka greska koja je abort-uje). Onda, ako aplikacija B zatrazi selekciju X, X11
nema kome da prosledi zahtev, jer niko ne poseduje selekciju X vise, i
aplikacija B moze da se slika :slight_smile:

Jedan od resenja je clipboard manager (CM na dalje) koji bi stajao između
klijenta (aplikacije A) i X11 servera, i kada aplikacija A objavi da poseduje
selekciju X, CM bi presreo zahtev, poslao ‘lazni zahtev’ da CM zahteva da
aplikacija A ispise selekciju X u Y (to je neka interna baza CM-a), a tek bi
onda obavestio X11 server da CM poseduje selekciju X.

Ovo deluje kao da resava dobar deo problema, ali u nekim slucajevima nije
prihvatljivo - sta ako aplikacija ima osetljive dokumente, tada nije bas
sigurno da tek tako ispise selekciju CM-u.

Ovo je skraceno koliko sam mogao a da u isto vreme ostane informativno :sweat_smile:

Wayland ediciju ostavljam za drugi put. Hvala sto ste dosli na moj Ted Talk :sweat_smile:

5 Likes

Evo glasanje onda za temu hakatona u Novembru

  • Clipboard manager
  • Pisanje tutoriala
  • Sajt decentrale
  • Pisanje za Libre casopis
  • Game jam - Pravljenje nove igrice/igrica
  • Animacije i grafika za Decentralu
0 voters