Hvordan har KDE Apps mulighet til å kjøre under GNOME?
De visuelle forskjellene mellom GNOME og KDE-skrivebordsmiljøene er enkle å se, så hvordan er det mulig å kjøre en app fra den ene til den andre uten problemer? Dagens SuperUser Q & A innlegg har svaret.
Dagens Spørsmål & Svar-sesjon kommer til oss med høflighet av SuperUser-en underavdeling av Stack Exchange, en fellesskapsdrevet gruppering av Q & A-nettsteder.
'Shaking Hands' clipart med tillatelse til Clker.com.
Spørsmålet
SuperUser-leser LeNoob vil vite hvordan KDE-apper kan kjøre under GNOME:
Hvis GNOME bruker GTK + og KDE bruker Qt, hvordan kan KDE-programmer kjøres under GNOME?
Hva gjør det mulig for KDE-appene å kjøre jevnt under GNOME?
Svaret
SuperUser bidragsyter gravitasjon har svaret for oss:
Dette er mulig fordi disse skrivebordsmiljøene bruker samme grafikksystem, X11. Alle grafiske programmer snakker bare X11-protokollen med en X-server (vanligvis Xorg), sender kommandoer for å tegne dette eller det, og mottar inngangshendelser (mus, tastatur, etc.).
Hver UI verktøykasse som GTK eller Qt kommer i form av biblioteker som det grafiske programmet knytter seg til. Et program som er skrevet for GNOME, vil bruke libgdk og libgtk, og et KDE-program vil bruke libQtCore med libQtGui. Begge verktøyene bruker så bare de samme X11-funksjonene til å tegne alt i det respektive programmets vindu.
De fleste moderne verktøy, som GTK, Qt eller EFL, utfører alle tegninger selv, og bare send det ferdige bildet av hele vinduet over X11. Eldre verktøy som Xaw eller Motif sender i stedet kommandoer for å tegne primitiver som linjer eller rektangler, og X-serveren gjør alt gjengivelsen.
X11-protokollen dekker også vindubehandling, slik at hvert skrivebordsmiljø vil ha et "vindushåndteringsprogram" som trekker vindusrammer ("dekorasjoner"), lar deg flytte og endre størrelse på Windows, og så videre. Moderne "compositing" -vinduesjefer overtar faktisk Xorgs jobb med å komponere alle vinduer på det endelige skjermbildet, slik at ting som skygger eller effekter kan legges til.
Å binde seg til samme grafikksystem for enkel "kompatibilitet" er en fantastisk ting, og flott når du vil at alle favorittappene dine skal kjøre under samme skrivebordsmiljø!
Har du noe å legge til forklaringen? Lyder av i kommentarene. Vil du lese flere svar fra andre tech-savvy Stack Exchange-brukere? Sjekk ut hele diskusjonstråden her.