[{"data":1,"prerenderedAt":528},["ShallowReactive",2],{"project-17773982":3},{"id":4,"name":5,"line":5,"line_source":6,"title":7,"url":8,"domain":9,"maker":10,"posted_at":11,"year":12,"points":13,"comments":14,"rank_in_year":15,"shown_in_year":16,"top":17,"tier":18,"category":19,"subcategory":20,"format":21,"keywords":22,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":48,"post_text":49,"what":50,"said":88,"maker_in_thread":189,"shape":194,"grid":199,"attempts":490,"same_week":491,"maker_shows":31,"maker_hidden":520,"reader_version":521,"card":522},"17773982","Wayland compositor in around 500 lines of annotated C","title","Show HN: Wayland compositor in around 500 lines of annotated C","https:\u002F\u002Fgist.github.com\u002FSirCmpwn\u002Fae4d1cdcca97ffeb2c35f0878d75dc17","gist.github.com","ddevault",1534422124,2018,332,122,66,2155,4,"legend","dev_tools","wayland compositor","other",[23,24,25,26,27],"wayland","compositor","wlroots","wayland tutorial","linux desktop","curious",-0.051,{"positive":31,"neutral":32,"mixed":33,"critical":34},9,55,1,17,82,{"idea":37,"docs":39,"design":41,"privacy":43,"performance":45,"execution":46},{"positive":38,"critical":38},3,{"positive":38,"critical":40},0,{"positive":33,"critical":42},5,{"positive":40,"critical":44},2,{"positive":40,"critical":40},{"positive":40,"critical":47},7,[42,42,38,38,40,33,33,33,44,33,38,38,17,38,38,17,38,42,40,38,40,17,33,42,38,38,40,38,38,33,33,38,38,33,40,44,33,33,33,40],null,{"problem":49,"audience":51,"pricing":49,"motivation":63,"time_to_build":49,"stack":68,"openness":86,"stage":87,"team_size":87},{"value":52,"source":53,"evidence":54},"Developers learning Wayland and compositor design","inferred",[55,59],{"id":56,"by":57,"text":58},"17775211","tomcam","This code is so well-commented that it makes me want to do some graphics programming – and I haven’t needed to do any graphics programming other than HTML canvas in 30 years.…",{"id":60,"by":61,"text":62},"17774523","amarant","you actually went and did it! not that I doubted it ;) thanks, your contributions to the community are invaluable! this looks like a pretty awesome way to learn wayland :)",{"value":64,"source":53,"evidence":65},"Educational contribution to explain Wayland",[66,67],{"id":56,"by":57,"text":58},{"id":60,"by":61,"text":62},[69,75],{"value":70,"source":71,"evidence":72},"C","maker",[73],{"id":74},"post",{"value":25,"source":76,"evidence":77},"commenter",[78,82],{"id":79,"by":80,"text":81},"17774262","aleksis","Without wlroots it would need several times more loc.",{"id":83,"by":84,"text":85},"17780140","codedokode","Please note that it is not written from scratch and is using a wlroots library that does most of the job. Most of the code are just the handlers for events emitted by the…","open_source","unknown",{"praise":89,"objections":103,"requests":131,"questions":149,"alternatives":168},[90,99],{"value":91,"source":76,"evidence":92},"Well-commented code that is useful for learning Wayland",[93,94,98],{"id":56,"by":57,"text":58},{"id":95,"by":96,"text":97},"17774647","gnomewascool","This is very valuable educationally! Thanks! A slightly less minimal, but still small — 2000 lines total among all files — DE, leveraging Mir†, rather than wlroots, is here:…",{"id":60,"by":61,"text":62},{"value":100,"source":76,"evidence":101},"Clear educational value",[102],{"id":95,"by":96,"text":97},[104,109,120],{"value":105,"source":76,"evidence":106},"Relies on wlroots, so the line count is misleading",[107,108],{"id":83,"by":84,"text":85},{"id":79,"by":80,"text":81},{"value":110,"source":76,"evidence":111},"Wayland's design limits desktop customization and window managers",[112,116],{"id":113,"by":114,"text":115},"17775317","chris111","If Wayland is the \"Linux desktop\" then all the advantages are gone. You do know that Wayland's design effectively destroys any choice and customization right? Wayland's protocol…",{"id":117,"by":118,"text":119},"17774101","simias","I haven't really followed Wayland very closely but as a huge fan of tiling WMs (I've used StumpWM for more than a decade, although I switched to dwm lately) I've been a bit…",{"value":121,"source":76,"evidence":122},"Client-side window decorations are poorly thought out",[123,127],{"id":124,"by":125,"text":126},"17776041","eadmund","> if I had read the compositor source code before posing the question, I'd have known that the client merely provides the window decoration as a visual area, but not its…",{"id":128,"by":129,"text":130},"17776453","Sir_Cmpwn","No, it's definitely poorly thought out. This is one of the problems that we're trying to deal with over in the wlroots camp.",[132,142],{"value":133,"source":76,"evidence":134},"Standard protocol for screenshots and screen capture with permissions",[135,139],{"id":136,"by":137,"text":138},"17777850","phkahler","How does that work securely? What determines if a process can take a screenshot or not? I mean clearly (I hope) only the compositor has access to all the pixels and needs to…",{"id":140,"by":129,"text":141},"17778375",">What determines if a process can take a screenshot or not We're slowly working on standardizing means of granting third-party software access to these protocols, but a…",{"value":143,"source":76,"evidence":144},"Remote desktop (RDP) support on Wayland",[145],{"id":146,"by":147,"text":148},"17775180","magicalhippo","Been hoping Wayland would help improve the sad state of remote desktop on Linux but from what I can see I'll have to way another 5+ years for something useful :( I've installed…",[150,157,164],{"value":151,"source":76,"evidence":152},"How to use this on Arch Linux",[153],{"id":154,"by":155,"text":156},"17774093","rain1","How do I use this on arch linux?",{"value":158,"source":76,"evidence":159},"How compositor handles errors and crashes",[160],{"id":161,"by":162,"text":163},"17775469","Shorel","My question would be: given that current Wayland implementation kills all my windows when an error happens, in contrast with X11 where the session is killed but the windows are…",{"value":165,"source":76,"evidence":166},"Whether tiling window managers work on Wayland",[167],{"id":117,"by":118,"text":119},[169,179,183],{"value":170,"source":76,"evidence":171},"Weston reference compositor",[172,176],{"id":173,"by":174,"text":175},"17774430","billconan","so this is like a simple weston?",{"id":177,"by":129,"text":178},"17774476","Kind of. Weston is a reference compositor, it exists to demonstrate the features of wayland.xml and act as a testbed for Wayland development. These days though I think people are…",{"value":180,"source":76,"evidence":181},"Mir with egmde",[182],{"id":95,"by":96,"text":97},{"value":184,"source":76,"evidence":185},"GNOME compositor",[186],{"id":187,"by":129,"text":188},"17778364","> I thought the wayland compositor would implement some desktop environment functionality. In other words the compositor itself would also define the DE by starting a panel and…",{"comments":33,"answered":33,"key":190},[191],{"id":192,"text":193},"17779724","Well, with the way we hope to do it we'll leave it to your package manager to establish trust in most cases. So if you install a screenshot tool from your package manager, it'll…",{"commenters":195,"max_depth":196,"maker_replies":33,"first_comment_mins":197,"lifespan_hours":198},53,14,11,30,[200,203,207,211,214,217,221,223,227,229,231,233,234,236,238,240,242,245,247,250,251,252,255,257,259,261,262,266,268,270,273,275,276,280,283,286,288,291,294,296,299,301,304,306,309,311,313,315,317,319,323,326,328,331,332,335,337,339,342,343,346,349,352,354,356,359,362,365,369,371,374,376,377,381,383,384,386,389,391,393,396,398,400,403,405,407,410,412,414,416,419,420,422,426,429,431,433,434,436,438,440,442,444,446,449,452,454,456,458,460,462,464,466,468,470,472,474,476,479,482,484,487],[201,40,38,202,129,40],"17774035","project\u002Fneutral\u002Fnone",[204,40,42,205,206,40],"17774094","project\u002Fpositive\u002Fidea","djsumdog",[208,40,42,209,210,40],"17774113","project\u002Fpositive\u002Fnone","dtx1",[212,40,40,213,129,40],"17774242","commenter\u002Fneutral\u002Fnone",[215,40,42,205,216,40],"17774163","lllr_finger",[218,40,38,219,220,40],"17774233","maker\u002Fneutral\u002Fdocs","rootlocus",[222,40,38,219,129,40],"17774239",[224,40,38,225,226,40],"17774269","project\u002Fneutral\u002Fdesign","mrweasel",[228,40,38,225,129,40],"17774290",[230,40,40,213,226,40],"17774402",[232,40,38,225,137,40],"17777804",[187,40,38,225,129,40],[235,40,40,213,137,40],"17782615",[237,40,40,213,129,40],"17782625",[239,40,40,213,137,40],"17784767",[241,40,40,213,129,40],"17784876",[243,40,33,244,125,40],"17774345","project\u002Fcritical\u002Fdesign",[246,40,38,225,129,40],"17774365",[248,40,38,225,249,40],"17775926","gmueckl",[124,40,33,244,125,40],[128,40,33,244,129,40],[253,40,33,244,254,40],"17776611","Crespyl",[256,40,33,244,249,40],"17777485",[258,40,40,213,129,40],"17777546",[136,40,38,260,137,40],"project\u002Fneutral\u002Fprivacy",[140,40,38,260,129,40],[263,40,33,264,265,40],"17779641","project\u002Fcritical\u002Fprivacy","jancsika",[192,40,40,267,10,33],"maker\u002Fneutral\u002Fprivacy",[269,40,33,264,137,40],"17782565",[271,40,38,225,272,40],"17775062","jandrese",[173,40,38,274,174,40],"project\u002Fneutral\u002Fidea",[177,40,38,274,129,40],[277,40,38,278,279,40],"17774940","project\u002Fneutral\u002Fperformance","abainbridge",[281,40,38,282,129,40],"17774970","project\u002Fneutral\u002Fdocs",[284,40,38,278,285,40],"17775146","bitwize",[287,40,38,278,279,40],"17775375",[289,40,38,278,290,40],"17775640","emersion",[292,40,42,293,279,40],"17775221","maker\u002Fpositive\u002Fdocs",[295,40,38,282,290,40],"17775741",[297,40,38,202,298,40],"17778355","sevensor",[300,40,38,202,129,40],"17778384",[302,40,38,282,303,40],"17776929","s73v3r_",[305,40,38,282,129,40],"17776964",[307,40,38,225,308,40],"17777796","microcolonel",[310,40,38,225,129,40],"17777812",[146,33,38,312,147,40],"project\u002Fmixed\u002Fnone",[314,33,38,202,129,40],"17775268",[316,33,42,209,147,40],"17775390",[318,33,38,202,84,40],"17780228",[320,33,40,321,322,40],"17775484","other\u002Fneutral\u002Fnone","jraph",[324,33,40,321,325,40],"17777897","alinspired",[56,44,42,327,57,40],"project\u002Fpositive\u002Fdocs",[329,44,38,330,129,40],"17775279","maker\u002Fneutral\u002Fnone",[95,38,42,205,96,40],[333,38,40,321,334,40],"17774910","Sammi",[336,38,40,321,129,40],"17775037",[338,38,40,321,96,40],"17775391",[340,38,40,213,341,40],"17783249","eximius",[117,17,38,225,118,40],[344,17,38,225,345,40],"17774149","gfiorav",[347,17,38,225,348,40],"17774156","PaulHoule",[350,17,40,213,351,40],"17774170","yjftsjthsd-h",[353,17,40,213,348,40],"17775889",[355,17,40,213,290,40],"17775945",[357,17,38,202,358,40],"17774158","sgtcodfish",[360,17,38,274,361,40],"17774159","singlow",[363,17,42,364,129,40],"17774236","project\u002Fpositive\u002Fdesign",[366,17,33,367,368,40],"17777147","project\u002Fcritical\u002Fidea","pdkl95",[370,17,38,225,129,40],"17777219",[372,17,40,213,373,40],"17778886","irishsultan",[375,17,40,213,129,40],"17778971",[60,42,42,293,61,40],[378,379,38,225,380,40],"17778728",6,"vthriller",[382,379,38,225,129,40],"17779009",[79,47,38,202,80,40],[385,47,38,202,129,40],"17774334",[387,47,38,202,388,40],"17774341","Shish2k",[390,47,40,213,155,40],"17774546",[392,47,40,213,388,40],"17774909",[394,47,40,213,395,40],"17775053","evmar",[397,47,40,213,129,40],"17775107",[399,47,40,213,395,40],"17775737",[401,47,38,274,402,40],"17779242","juliangoldsmith",[404,47,38,225,129,40],"17779305",[406,47,38,282,402,40],"17782812",[408,47,38,409,129,40],"17782844","project\u002Fneutral\u002Fexecution",[411,47,40,213,388,40],"17776600",[413,47,40,213,155,40],"17777269",[415,47,40,213,388,40],"17778126",[83,417,33,418,84,40],8,"project\u002Fcritical\u002Fexecution",[161,31,38,202,162,40],[421,31,38,202,129,40],"17775534",[423,424,33,418,425,40],"17774629",10,"kazinator",[427,424,40,213,428,40],"17774693","sp332",[430,424,40,213,425,40],"17774836",[432,424,38,409,155,40],"17776524",[154,197,38,282,155,40],[435,197,38,282,129,40],"17774104",[437,197,38,282,206,40],"17774112",[439,197,38,282,129,40],"17774217",[441,197,33,418,155,40],"17774389",[443,197,40,213,129,40],"17774517",[445,197,40,213,155,40],"17774551",[447,197,40,213,448,40],"17774627","zaarn",[450,197,40,213,451,40],"17774866","upofadown",[453,197,40,213,129,40],"17774889",[455,197,38,409,155,40],"17774642",[457,197,38,202,129,40],"17774736",[459,197,33,418,155,40],"17774439",[113,461,33,367,114,40],12,[463,461,38,225,129,40],"17775371",[465,461,33,418,114,40],"17775563",[467,461,38,409,129,40],"17775621",[469,461,33,418,114,40],"17776697",[471,461,40,213,129,40],"17776765",[473,461,33,367,114,40],"17777302",[475,461,40,213,129,40],"17777327",[477,461,33,418,478,40],"17777088","AnIdiotOnTheNet",[480,461,40,213,481,40],"17775482","paulcarroty",[483,461,40,213,114,40],"17775570",[485,461,40,321,486,40],"17776516","dylan-m",[488,461,40,321,489,40],"17777756","vetinari",[],[492,496,501,506,511,516],{"id":493,"name":494,"points":495,"category":19},"17782121","git-bug",447,{"id":497,"name":498,"points":499,"category":500},"17782278","abyjames.com",256,"productivity",{"id":502,"name":503,"points":504,"category":505},"17787180","TinyGo",177,"languages",{"id":507,"name":508,"points":509,"category":510},"17817466","SVG 3D Builder",157,"creative",{"id":512,"name":513,"points":514,"category":515},"17784308","greview",138,"data",{"id":517,"name":518,"points":519,"category":505},"17793375","Umbrella JS",132,false,"v2",{"id":523,"name":5,"line":5,"ai":520,"cat":19,"year":12,"points":13,"comments":14,"rec":28,"s":524,"top":17,"kw":525,"maker":10,"domain":9,"tier":18,"attempts":40,"strip":526,"url":8,"mix":527,"praise":91,"objection":105,"sub":20},17773982,-0.05,[23,24,25,26,27],"5533011121334334350304153303311331021110",[31,32,33,34],1794036568739]