资源描述:
《How X Window Managers Work》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、HowXWindowManagersWork,AndHowToWriteOne(PartI)·ByChuanJi·
2、·Apr10,2014·
3、WindowmanagersareoneofthecorecomponentsofthemodernLinux/BSDdesktop.Itisnotanexaggerationtosaythattheydefinetoalargedegreeourday-to-dayuserexperience,astheyareresponsiblefordecidinghowindiv
4、idualwindowslook,movearound,reacttoinput,andorganizethemselves.Hence,almost30yearssincethefirstXwindowmanager,westillargueoverthemeritsofdifferentwindowmanagers,andnewwindowmanagerscontinuetoreinventhowweinteractwithourdigitalworld.Inthisseriesofposts,Ihopeto
5、demystifyhowwindowmanagerswork,andhowyoumightgoaboutwritingoneyourself.IwillbequotingquiteheavilyfromtheseminalXlibProgrammingManual(3rdEd,1994)byAdrianNyeandpublishedbyO’Reilly.Despiteitsage,itremainsamazinglyrelevantandisthebestavailableintroductorytexttoth
6、einternalsofX,whichhasnotchangedoverthepasttwodecadesasmuchasyou’dthink.Sinceyoucouldbuythebookplusshippingforlessthanthepriceofacupofcoffee,IstronglyrecommendittoanyoneinterestedinlearningmoreaboutX.Inaddition,itschapter16alsocoversthebasicsofwindowmanagemen
7、t.TheRoleofanXWindowManagerLet’sstartwithanexaminationoftheroleofthewindowmanagerinamodernLinux/BSDdesktopenvironment.TheRightsofXWindowManagersUnlikeotherwindowingsystemssuchasMicrosoftWindowsorMacOSX,Xdoesnotdictateawindowmanagerorhowawindowmanagershouldbeh
8、ave.ThisdecisionistothankforthewilddiversityofXwindowmanagersweseetoday.Xissomewhatunusualinthatitdoesnotmandateaparticulartypeofwindowmanager.ItsdevelopershavetriedtomakeXitselfasfreeofwindowmanagementoruserinterfacepolicyaspossible.—XlibProgrammingManual§1.
9、2.3Infact,itdoesnotevenrequireawindowmanagertobepresentatall:Unlikecitizens,thewindowmanagerhasrightsbutnotresponsibilities.Programsmustbepreparedtocooperatewithanytypeofwindowmanagerorwithnoneatall[…].—XlibProgrammingManual§1.2.3Thisisinstarkcontrasttotheint
10、egrativeapproachofotherGUIsystems.OnMacOSXandUnity,forexample,anapplicationcouldnotpossiblyfunctionwithoutthewindowmanager,asthelatterisresponsibleforrenderingapartoftheapplication’sinter