Hur kan KDE Apps Kör under GNOME?
De visuella skillnaderna mellan GNOME- och KDE-skrivbordsmiljöer är lätta att se, så hur är det möjligt att köra en app från den ena under den andra utan problem? Dagens SuperUser Q & A-inlägg har svaret.
Dagens Question & Answer-session kommer till oss med tillstånd av SuperUser-en indelning av Stack Exchange, en community-driven gruppering av Q & A-webbplatser.
'Shaking Hands' clipart med tillstånd av Clker.com.
Frågan
SuperUser-läsare LeNoob vill veta hur KDE-appar kan köras under GNOME:
Om GNOME använder GTK + och KDE använder Qt, hur kan KDE-program köras under GNOME?
Vad gör det möjligt för KDE-appar att köras smidigt under GNOME?
Svaret
SuperUser bidragsgravar har svaret för oss:
Detta är möjligt eftersom dessa skrivbordsmiljöer använder samma grafiksystem, X11. Alla grafiska program talar bara X11-protokollet med en X-server (vanligtvis Xorg), skickar kommandon för att rita detta eller så och tar emot ingångshändelser (mus, tangentbord etc.).
Varje UI verktygsverktyg som GTK eller Qt kommer i form av bibliotek som det grafiska programmet länkar till. Ett program som är skrivet för GNOME kommer att använda libgdk och libgtk, och ett KDE-program kommer att använda libQtCore med libQtGui. Båda verktygen använder helt enkelt samma X11-funktioner för att rita allt i respektive programfönster.
De flesta moderna verktyg, som GTK, Qt eller EFL, utför alla ritningar själva och bara skicka den färdiga bilden av hela fönstret över X11. Äldre verktyg som Xaw eller Motif skickar istället kommandon för att dra primitiver som linjer eller rektanglar, och X-servern gör allt.
X11-protokollet täcker också fönsterhantering, så varje skrivbordsmiljö kommer att ha ett "window manager" -program som drar fönsterramar ("dekorationer"), så att du kan flytta och ändra storlek på Windows, och så vidare. Moderna "compositing" fönsterhanterare tar faktiskt Xorgs jobb att komponera alla fönster på den slutliga skärmbilden, så att saker som skuggor eller effekter kan läggas till.
Att binda in samma grafiksystem för enkel "kompatibilitet" är en fantastisk sak, och bra när du vill ha alla dina favoritappar att köra under samma skrivbordsmiljö!
Har du något att lägga till förklaringen? Ljud av i kommentarerna. Vill du läsa mer svar från andra tech-savvy Stack Exchange-användare? Kolla in hela diskussionsgängan här.