[{"data":1,"prerenderedAt":383},["ShallowReactive",2],{"project-16787836":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":42,"post_text":44,"what":45,"said":80,"maker_in_thread":179,"shape":190,"grid":194,"attempts":333,"same_week":346,"maker_shows":217,"maker_hidden":375,"reader_version":376,"card":377},"16787836","Phoenix 2.6","a macOS window and app manager scriptable with JavaScript","title","Show HN: Phoenix 2.6 – a macOS window and app manager scriptable with JavaScript","https:\u002F\u002Fgithub.com\u002Fkasper\u002Fphoenix\u002F","github.com","khirviko",1523215795,2018,183,58,202,2155,10,"notable","dev_tools","window manager","desktop_app",[24,25,26,27],"macos window manager","javascript automation","window tiling","hammerspoon alternative","loved",0.315,{"positive":31,"neutral":32,"mixed":33,"critical":34},8,13,0,1,22,{"docs":37,"idea":39,"performance":41},{"positive":38,"critical":33},4,{"positive":40,"critical":34},3,{"positive":33,"critical":33},[43,43,33,40,40,33,43,33,40,33,33,40,40,33,43,33,33,33,33,33,33,33,43,43,40,40,33,33,40,40,40,33,43,40,33,43,33,33,40,34],5,null,{"problem":46,"audience":60,"pricing":67,"motivation":44,"time_to_build":44,"stack":72,"openness":77,"stage":78,"team_size":79},{"value":47,"source":48,"evidence":49},"Managing and positioning macOS windows and apps with keyboard-driven scripts","inferred",[50,54,57],{"id":51,"by":52,"text":53},"16788164","atopuzov","How does it compare to hammerspoon?",{"id":55,"by":11,"text":56},"16788256","Hammerspoon uses Lua for the configuration language. Phoenix uses JavaScript, or anything that translates to it. Personally I think Phoenix’s API is much simpler and easier to…",{"id":58,"by":11,"text":59},"16788279","Yes! Though I’ve seen people extending the support in Phoenix cleverly by using the Task API. Basically you can run any external processes or scripts.",{"value":61,"source":48,"evidence":62},"macOS users who want scriptable window management",[63,64],{"id":55,"by":11,"text":56},{"id":65,"by":11,"text":66},"16788352","Both Phoenix and Hammerspoon are free and open-source. You can also configure them in endless ways, so either you can have a really simple setup or a very dynamic one that works…",{"value":68,"source":69,"evidence":70},"free","maker",[71],{"id":65,"by":11,"text":66},[73],{"value":74,"source":69,"evidence":75},"JavaScript",[76],{"id":55,"by":11,"text":56},"open_source","launched","unknown",{"praise":81,"objections":106,"requests":114,"questions":122,"alternatives":134},[82,99],{"value":83,"source":84,"evidence":85},"Scriptable and configurable, with a simple API","commenter",[86,90,94,98],{"id":87,"by":88,"text":89},"16788616","fabiospampinato","I spent quite a bit of time writing my configuration for Phoenix, if you're thinking about writing your own I think you might find starting from mine useful. It's easy to…",{"id":91,"by":92,"text":93},"16793954","mafredri","I've been using Phoenix for 2 years straight and it's been pretty smooth sailings. Kasper has done an excellent job maintaining and implementing new features every once in a…",{"id":95,"by":96,"text":97},"16790508","stblack","This is so well done. I've looked at some links to examples in the wiki: https:\u002F\u002Fgithub.com\u002Fkasper\u002Fphoenix\u002Fwiki#examples ...and Garrow Bedrossian's config:…",{"id":55,"by":11,"text":56},{"value":100,"source":84,"evidence":101},"Useful example configurations and wiki",[102,103],{"id":95,"by":96,"text":97},{"id":104,"by":11,"text":105},"16788441","There’s some examples of custom configurations here: https:\u002F\u002Fgithub.com\u002Fkasper\u002Fphoenix\u002Fwiki\u002F.",[107],{"value":108,"source":84,"evidence":109},"Does not support always-on-top for windows the user does not own",[110],{"id":111,"by":112,"text":113},"16790523","saagarjha","I don't think this is something you can do to windows you don't own.",[115],{"value":116,"source":84,"evidence":117},"Windows-style Alt+Tab switching",[118],{"id":119,"by":120,"text":121},"16790832","kram8","That’s nice! Does anyone already have an example to just add Windows like ALT + Tab like behavior? Thx!",[123,130],{"value":124,"source":84,"evidence":125},"How does it handle multiple monitors",[126],{"id":127,"by":128,"text":129},"16794898","slowhands","Just a quick question for current Phoenix users — how is the multiple monitor performance? By that I mean a situation where I'm going from just the MacBook screen to three…",{"value":131,"source":84,"evidence":132},"How does it compare to Hammerspoon",[133],{"id":51,"by":52,"text":53},[135,143,154,165,172],{"value":136,"source":84,"evidence":137},"Hammerspoon",[138,139],{"id":51,"by":52,"text":53},{"id":140,"by":141,"text":142},"16788234","xemoka","I use MacOS at home and happily use Hammerspoon to manage these interactions, in the past using Slate—I use Windows at work and I really wish it had something better than…",{"value":144,"source":84,"evidence":145},"Spectacle",[146,150],{"id":147,"by":148,"text":149},"16788744","tambourine_man","After many ours spent on several scriptable window managers I've settled on Spectacle, which is a lot less powerful, but proved to be enough for me, while being dead easy and…",{"id":151,"by":152,"text":153},"16788360","partycoder","I used Spectacle: https:\u002F\u002Fwww.spectacleapp.com\u002F It is not scriptable but gets the job done.",{"value":155,"source":84,"evidence":156},"Amethyst",[157,161],{"id":158,"by":159,"text":160},"16790717","Osiris","If you prefer a tiling window manager that is automatic, check out https:\u002F\u002Fgithub.com\u002Fianyh\u002FAmethyst .",{"id":162,"by":163,"text":164},"16791345","eivarv","Have you tried Amethyst[0]? It's a dynamic, automatic tiling WM for macOS; I enjoy it very much. [0]: https:\u002F\u002Fianyh.com\u002Famethyst\u002F",{"value":166,"source":84,"evidence":167},"Mosaic",[168],{"id":169,"by":170,"text":171},"16788312","acmecorps","I have a 34\" 1440p screen and I use Mozaic.app (https:\u002F\u002Fwww.lightpillar.com\u002Fmosaic.html) for managing my windows. Usually, i'll divide my windows as either 1:1, 1:2:1 or 1:4…",{"value":173,"source":84,"evidence":174},"chunkwm",[175],{"id":176,"by":177,"text":178},"16788559","asselinpaul","I've been enjoying chunkwm as a tiling WM. Hard to go back to non-tiling when you've experienced it. https:\u002F\u002Fgithub.com\u002Fkoekeishiya\u002Fchunkwm",{"comments":180,"answered":181,"key":182},9,6,[183,186,187],{"id":184,"text":185},"16790672","I’m really happy people are sharing these! +1",{"id":65,"text":66},{"id":188,"text":189},"16788420","Say for example you want to do something dynamically when an app launches. You could open an app and the windows would automatically be arranged across your monitors the way you…",{"commenters":191,"max_depth":43,"maker_replies":180,"first_comment_mins":192,"lifespan_hours":193},36,59,55,[195,197,200,203,204,208,211,213,216,218,220,221,222,224,226,228,231,233,235,236,238,241,242,245,247,250,252,254,257,259,262,264,266,268,271,272,274,276,280,281,285,286,289,291,293,294,295,299,303,305,308,312,315,319,323,325,329,331],[87,33,43,196,88,33],"project\u002Fpositive\u002Fdocs",[198,33,43,196,199,33],"16788975","dangson",[201,33,33,202,88,33],"16789290","commenter\u002Fneutral\u002Fnone",[184,33,33,202,11,34],[205,33,40,206,207,33],"16791976","project\u002Fneutral\u002Fidea","finchisko",[209,33,40,210,88,33],"16792239","project\u002Fneutral\u002Fnone",[147,34,33,212,148,33],"other\u002Fneutral\u002Fnone",[214,34,33,202,215,33],"16788853","jaaames",[140,217,33,212,141,33],2,[91,40,43,219,92,33],"project\u002Fpositive\u002Fnone",[151,38,33,212,152,33],[169,43,40,206,170,33],[223,43,40,206,141,33],"16788346",[225,43,33,202,170,33],"16788374",[227,43,33,202,141,33],"16788432",[229,43,40,210,230,33],"16792491","e_proxus",[65,43,33,232,11,34],"project\u002Fpositive\u002Fidea",[234,43,40,206,170,33],"16788368",[188,43,33,206,11,34],[104,43,33,237,11,34],"project\u002Fneutral\u002Fdocs",[239,43,43,196,240,33],"16790072","brennebeck",[176,181,33,212,177,33],[243,181,33,212,244,33],"16788639","RBerenguel",[246,181,33,212,177,33],"16788909",[248,181,33,212,249,33],"16788963","innocentoldguy",[251,181,33,212,177,33],"16789027",[253,181,33,212,244,33],"16788978",[255,181,33,212,256,33],"16789084","freeone3000",[258,181,33,212,244,33],"16805447",[260,181,33,212,261,33],"16788693","lojack",[263,181,33,212,177,33],"16788884",[95,265,43,196,96,33],7,[267,265,33,212,112,33],"16790513",[269,31,43,232,270,33],"16788546","kemar",[158,180,33,212,159,33],[127,18,40,273,128,33],"project\u002Fneutral\u002Fperformance",[275,18,40,210,92,33],"16795348",[277,278,33,212,279,33],"16791336",11,"Improvotter",[162,278,33,212,163,33],[282,283,33,212,284,33],"16789664",12,"maksimum",[119,32,40,206,120,33],[287,32,33,202,288,33],"16807561","olliej",[51,290,40,206,52,33],14,[292,290,40,206,112,33],"16788239",[58,290,33,206,11,34],[55,290,33,232,11,34],[296,297,43,232,298,33],"16790172",15,"fouc",[300,301,40,210,302,33],"16788215",16,"mi100hael",[304,301,33,212,11,34],"16788325",[306,301,33,212,307,33],"16789619","marstall",[309,310,43,232,311,33],"16790111",17,"PowerGuido87",[313,310,33,212,314,33],"16790373","jkcjkc82",[316,317,33,212,318,33],"16789160",18,"azhenley",[320,321,33,212,322,33],"16790992",19,"Vosporos",[324,321,33,212,11,34],"16791469",[326,327,40,206,328,33],"16788762",20,"guzik",[111,327,34,330,112,33],"project\u002Fcritical\u002Fidea",[332,327,33,210,11,34],"16790692",[334,337,340,341],{"id":335,"t":336,"points":265,"comments":265},"12078605",1468328351,{"id":338,"t":339,"points":34,"comments":33},"12239156",1470507247,{"id":4,"t":12,"points":14,"comments":15},{"id":342,"t":343,"points":344,"comments":345},"22143415",1579909244,153,71,[347,352,357,362,367,371],{"id":348,"name":349,"points":350,"category":351},"16760736","AI Grant",323,"learning_science",{"id":353,"name":354,"points":355,"category":356},"16792638","Wey",277,"productivity",{"id":358,"name":359,"points":360,"category":361},"16812288","bvckup2 disk IO graph tool",207,"infrastructure",{"id":363,"name":364,"points":365,"category":366},"16782658","TerrainVer",198,"creative",{"id":368,"name":369,"points":370,"category":20},"16780382","gopro-py-api",131,{"id":372,"name":373,"points":374,"category":20},"16784320","React Pattern Book",114,false,"v2",{"id":378,"name":5,"line":6,"ai":375,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":379,"top":18,"kw":380,"maker":11,"domain":10,"tier":19,"attempts":38,"strip":381,"url":9,"mix":382,"praise":83,"objection":108,"sub":21},16787836,0.32,[24,25,26,27],"5503305030033050000000553300333053050031",[31,32,33,34],1793990972665]