[{"data":1,"prerenderedAt":869},["ShallowReactive",2],{"project-34730520":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":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":45,"post_text":48,"what":49,"said":94,"maker_in_thread":190,"shape":203,"grid":208,"attempts":833,"same_week":834,"maker_shows":18,"maker_hidden":862,"reader_version":863,"card":864},"34730520","boxxy","Control where Linux programs put files, without symlinks","title","Show HN: boxxy – Control where Linux programs put files, without symlinks","https:\u002F\u002Fgithub.com\u002Fqueer\u002Fboxxy","github.com","notamy",1675973094,2023,384,239,88,3109,3,"legend","dev_tools","filesystem sandboxing","cli",[24,25,26,27,28],"linux","xdg base directory","home directory clutter","mount namespace","dotfiles","curious",0.2,{"positive":32,"neutral":33,"mixed":34,"critical":35},15,34,0,8,57,{"idea":38,"execution":41,"docs":43,"design":44},{"positive":39,"critical":40},11,4,{"positive":42,"critical":18},1,{"positive":34,"critical":34},{"positive":34,"critical":42},[34,46,34,34,34,34,34,34,34,34,34,34,34,34,34,34,18,34,18,34,18,46,18,40,46,18,42,18,18,47,40,42,46,40,46,46,46,34,34,34],5,2,null,{"problem":50,"audience":65,"pricing":48,"motivation":77,"time_to_build":48,"stack":84,"openness":92,"stage":93,"team_size":93},{"value":51,"source":52,"evidence":53},"Applications write config and data dotfiles into the home directory instead of XDG locations.","commenter",[54,58,62],{"id":55,"by":56,"text":57},"34730994","adhoc_slime","Hah I was literally just complaining about applications not following the XDG directory spec today. there's a non-exhaustive list of applications on the archwiki [0] that put…",{"id":59,"by":60,"text":61},"34733353","lelandbatey","The XDG base directory specification[0] was initially introduced in 2003; 20 years ago now. Yes there's plenty of software that existed before 2003 which didn't respect XDG, but…",{"id":63,"by":11,"text":64},"34731240","It creates a new mount namespace, and bind-mounts your ENTIRE filesystem into it, before chrooting, so that it can optionally remount \u002F as ro to prevent applications from writing…",{"value":66,"source":67,"evidence":68},"Linux users who want to control where programs store files.","inferred",[69,73],{"id":70,"by":71,"text":72},"34731222","iamdamian","This seems like a great idea, thank you for sharing. Are you aware of any notable caveats to using Boxxy, given the mount-based implementation? E.g., will this continue to work…",{"id":74,"by":75,"text":76},"34731346","bullfightonmars","This is very cool and would massively simplify how I build my dotfiles. Is there any way this could support macOS?",{"value":78,"source":52,"evidence":79},"Maker wanted to stop the AWS CLI cluttering $HOME while using it.",[80],{"id":81,"by":82,"text":83},"34731956","hdjjhhvvhga","It looks like a useful project. By the way, as for the original motivation: > I recently had to use the AWS CLI. It wants to save data in ~\u002F.aws, but I don't want it to just…",[85],{"value":86,"source":52,"evidence":87},"Rust",[88],{"id":89,"by":90,"text":91},"34731179","nyanpasu64","Does this use namespaces or chroot? The readme mentions namespaces (like Flatpak?), but https:\u002F\u002Fgithub.com\u002Fqueer\u002Fboxxy\u002Fblob\u002Fmistress\u002Fsrc\u002Fenclosure\u002Fmod.rs seems to indicate it…","open_source","unknown",{"praise":95,"objections":111,"requests":126,"questions":148,"alternatives":164},[96],{"value":97,"source":52,"evidence":98},"Useful, clever idea for tidying home directory.",[99,103,107],{"id":100,"by":101,"text":102},"34731193","sureglymop","This is awesome!! Good stuff",{"id":104,"by":105,"text":106},"34733305","29athrowaway","Amazing, I will use this for sure. My home directory is a mess.",{"id":108,"by":109,"text":110},"34731537","yesco","I'd been meaning to make something like this for ages but never had the patience to figure out the namespace API, great work!",[112,119],{"value":113,"source":114,"evidence":115},"Mount-based approach may break tools or need recursive path handling.","maker",[116],{"id":117,"by":11,"text":118},"34731259","> This seems like a great idea, thank you for sharing. Thanks :D > Are you aware of any notable caveats to using Boxxy, given the mount-based implementation? System configuration…",{"value":120,"source":52,"evidence":121},"Unprivileged user namespaces break suid programs like sudo inside the box.",[122],{"id":123,"by":124,"text":125},"34735321","Hello71","but... if you use unprivileged user namespaces, tmux isn't a very good use, because then you can't use any suid programs like su, sudo, doas, pkexec, fusermount, mount (user), etc.",[127,134,141],{"value":128,"source":52,"evidence":129},"Regex path rules.",[130],{"id":131,"by":132,"text":133},"34732511","jpeeler","Can boxxy make use of rules with regex? If not, consider this a feature request.",{"value":135,"source":52,"evidence":136},"Automatic interception without shell aliases.",[137],{"id":138,"by":139,"text":140},"34733743","OJFord","> suggested usage > alias aws=\"boxxy aws\" (repeat for other tools) If you could find a way to somehow intercept without requiring aliasing, this would be amazing. Also, as it is,…",{"value":142,"source":52,"evidence":143},"Nix integration.",[144],{"id":145,"by":146,"text":147},"34731654","pshirshov","It would be very nice to integrate it with Nix and make the hijacking automatic (perhaps with LD_LIBRARY_PATH).",[149,160],{"value":150,"source":52,"evidence":151},"How does it differ from chroot and containers?",[152,156],{"id":153,"by":154,"text":155},"34731728","arberx","Whats the difference between this and a chroot?",{"id":157,"by":158,"text":159},"34735407","jzombie","How does this differ from containers?",{"value":161,"source":52,"evidence":162},"Does it work with syncing home directories?",[163],{"id":70,"by":71,"text":72},[165,172,179,183],{"value":166,"source":52,"evidence":167},"xdg-ninja",[168],{"id":169,"by":170,"text":171},"34734440","doodlesdev","If anyone would like to actually force the non-compliant applications to do the thing correctly, then xdg-ninja is your friend [0]. The script looks at all the dotfiles in the…",{"value":173,"source":52,"evidence":174},"Symlink-based fake-home wrapper scripts.",[175],{"id":176,"by":177,"text":178},"34734524","superluserdo","Plug: I made a small set of shell scripts to achieve something similar to this a couple of years ago, but with symlinks: https:\u002F\u002Ftomwh.uk\u002Fblog\u002Fposts\u002F2020\u002F03\u002F28\u002Ffake-home-prison\u002F…",{"value":180,"source":52,"evidence":181},"Environment variables such as AWS_CONFIG_FILE.",[182],{"id":81,"by":82,"text":83},{"value":184,"source":52,"evidence":185},"GNU stow.",[186],{"id":187,"by":188,"text":189},"34739457","jessaustin","Whenever I install directly instead of using e.g. apt (typically because I want a more current version than the distro has), I use GNU stow [0], for precisely this reason. It…",{"comments":191,"answered":192,"key":193},26,13,[194,197,200],{"id":195,"text":196},"34730942","No! I just thought it was a cute name (\"put things in a box\"), and it wasn't a common repo name on GitHub.",{"id":198,"text":199},"34731125","I remember it quite well! Just not my particular cup of tea.",{"id":201,"text":202},"34731054","Only in the latter case; I didn't want to assume how people want things done, and implicitly magical tools break more often than not in my experience. You may also be able to…",{"commenters":204,"max_depth":205,"maker_replies":191,"first_comment_mins":206,"lifespan_hours":207},137,9,20,78,[209,211,215,219,222,225,228,230,233,236,239,242,245,248,251,254,256,259,262,264,267,270,274,275,277,280,281,284,286,289,291,293,295,298,300,302,305,308,310,313,315,318,320,322,325,328,331,333,336,339,342,345,347,349,351,354,357,360,362,365,367,370,372,374,376,378,381,383,386,388,390,393,396,398,401,403,405,407,409,411,413,416,419,421,423,425,427,430,433,435,438,440,442,444,447,450,452,454,456,458,462,465,468,470,473,476,478,481,483,485,487,490,492,493,497,498,501,504,507,510,511,514,517,520,523,525,528,530,533,536,538,540,542,545,547,551,553,556,559,562,564,568,570,571,575,577,581,584,587,589,591,593,596,599,601,604,607,609,612,615,618,620,621,623,625,626,628,630,634,636,640,643,647,649,651,653,655,657,661,663,665,666,668,670,672,674,676,678,680,682,685,687,690,694,698,702,704,706,710,713,717,719,724,726,730,732,737,739,742,745,749,751,754,757,760,762,764,766,769,771,773,777,779,783,786,789,792,794,797,799,801,804,807,809,811,814,817,820,823,826,829],[169,34,34,210,170,34],"other\u002Fneutral\u002Fnone",[212,34,34,213,214,34],"34735122","commenter\u002Fneutral\u002Fnone","thejosh",[216,34,34,217,218,34],"34736475","other\u002Fneutral\u002Fdocs","gdprrrr",[220,34,34,210,221,34],"34736580","Evan-Purkhiser",[223,34,34,210,224,34],"34737034","klntsky",[226,34,34,210,227,34],"34737430","shakna",[55,42,46,229,56,34],"project\u002Fpositive\u002Fidea",[231,42,34,213,232,34],"34732118","NoboruWataya",[234,42,34,210,235,34],"34732132","inanutshellus",[237,42,34,210,238,34],"34732314","vngzs",[240,42,34,213,241,34],"34732635","deadbunny",[243,42,34,210,244,34],"34733392","Already__Taken",[246,42,34,210,247,34],"34733745","0cf8612b2e1e",[249,42,34,210,250,34],"34734513","accoil",[252,42,34,213,253,34],"34738951","DragonMaus",[255,42,34,210,250,34],"34739637",[257,42,34,210,258,34],"34732728","toastal",[260,42,34,210,261,34],"34733316","boosteri",[263,42,34,210,247,34],"34733822",[265,42,34,210,266,34],"34732857","joshuaissac",[268,42,34,210,269,34],"34733261","remram",[271,42,34,272,273,34],"34733086","other\u002Fneutral\u002Fidea","ajsnigrutin",[59,42,34,272,60,34],[276,42,34,272,273,34],"34733479",[278,42,34,279,170,34],"34734391","commenter\u002Fneutral\u002Fidea",[187,42,34,210,188,34],[282,42,34,213,283,34],"34733788","cube2222",[285,42,34,210,170,34],"34734409",[287,42,34,210,288,34],"34748474","Jorengarenar",[290,42,34,210,170,34],"34766440",[292,42,34,210,288,34],"34766893",[294,42,34,210,170,34],"34768412",[296,42,34,213,297,34],"34733887","Animats",[299,42,34,210,170,34],"34734363",[301,42,34,272,188,34],"34739328",[303,42,34,210,304,34],"34739335","account42",[306,42,34,279,307,34],"34734014","__d",[309,42,34,279,304,34],"34739309",[311,42,34,279,312,34],"34734459","matheusmoreira",[314,42,34,279,60,34],"34735907",[316,42,34,213,317,34],"34736999","onli",[319,42,34,213,177,34],"34738414",[321,42,34,213,317,34],"34742131",[323,42,34,213,324,34],"34738475","AnIdiotOnTheNet",[326,42,34,279,327,34],"34739824","marssaxman",[329,42,34,210,330,34],"34733374","saulrh",[332,42,34,210,273,34],"34733524",[334,42,34,213,335,34],"34734898","kevin_thibedeau",[337,42,34,210,338,34],"34735356","interfixus",[340,42,34,213,341,34],"34735590","YourDadVPN",[343,42,34,217,344,34],"34736474","jchw",[346,42,34,210,304,34],"34739091",[348,42,34,210,344,34],"34745105",[350,42,34,210,304,34],"34739064",[352,42,34,210,353,34],"34735795","subsection1h",[355,42,34,210,356,34],"34737076","iforgotpassword",[358,42,34,210,359,34],"34733593","brigandish",[361,42,34,213,273,34],"34733739",[363,42,34,213,364,34],"34733881","chungy",[366,42,34,210,177,34],"34734579",[368,42,34,213,369,34],"34739348","xolox",[371,42,34,213,359,34],"34734127",[373,42,34,213,273,34],"34734458",[375,42,34,213,359,34],"34735387",[377,42,34,213,288,34],"34747597",[379,42,34,213,380,34],"34735756","hyperupcall",[382,42,34,213,356,34],"34737106",[384,42,34,210,385,34],"34737711","YeGoblynQueenne",[387,42,34,213,139,34],"34733793",[389,42,34,213,312,34],"34734277",[391,42,34,210,392,34],"34734607","renewiltord",[394,42,34,210,395,34],"34735255","vinnydiehl",[397,42,34,210,392,34],"34735290",[399,42,34,210,400,34],"34735645","recuter",[402,42,34,210,304,34],"34739180",[404,42,34,210,327,34],"34739769",[406,42,34,210,288,34],"34745115",[408,42,34,210,392,34],"34748406",[410,42,34,210,353,34],"34735808",[412,42,34,210,344,34],"34735979",[414,42,34,213,415,34],"34736167","happymellon",[417,42,34,210,418,34],"34738769","wink",[420,42,34,213,283,34],"34733327",[422,42,34,213,359,34],"34733639",[424,42,34,213,283,34],"34733860",[426,42,34,213,359,34],"34734090",[428,42,34,213,429,34],"34734460","dopidopHN",[431,42,34,213,432,34],"34735231","ikiris",[434,42,34,213,359,34],"34735376",[436,42,34,213,437,34],"34738290","SkeuomorphicBee",[439,42,34,213,304,34],"34739578",[441,42,34,210,139,34],"34733777",[443,42,34,213,312,34],"34734581",[445,42,34,213,446,34],"34735216","fsckboy",[448,42,34,213,449,34],"34736012","heleninboodler",[451,42,34,213,437,34],"34738242",[453,42,34,213,304,34],"34739512",[455,42,34,213,312,34],"34738448",[457,47,34,210,446,34],"34734640",[459,47,18,460,461,34],"34734711","project\u002Fneutral\u002Fidea","its-summertime",[463,47,18,464,446,34],"34735053","project\u002Fneutral\u002Fexecution",[466,47,18,460,467,34],"34735067","tadfisher",[469,47,34,210,304,34],"34739678",[471,47,34,210,472,34],"34735213","fomine3",[474,47,34,210,475,34],"34736263","jbverschoor",[477,47,34,210,472,34],"34736692",[479,47,34,210,480,34],"34737438","jeltz",[482,47,34,210,418,34],"34738815",[484,47,34,210,304,34],"34739649",[486,47,34,213,380,34],"34735684",[488,47,34,210,489,34],"34739307","jwilk",[491,47,34,213,304,34],"34739706",[176,18,18,460,177,34],[494,40,18,495,496,34],"34730908","maker\u002Fneutral\u002Fnone","whalesalad",[195,40,34,495,11,42],[499,40,34,210,500,34],"34731006","sosodev",[502,40,34,210,503,34],"34731118","warent",[505,40,34,210,506,34],"34733080","Gare",[508,40,34,210,509,34],"34734876","lozf",[198,40,34,210,11,42],[512,40,34,210,513,34],"34740295","ravenstine",[515,40,34,210,516,34],"34742665","trallnag",[518,40,34,210,519,34],"34733912","jamal-kumar",[521,40,34,210,522,34],"34741710","Izkata",[524,40,34,210,519,34],"34742589",[526,46,18,464,527,34],"34731040","oneplane",[201,46,34,529,11,42],"maker\u002Fneutral\u002Fdesign",[531,46,46,229,532,34],"34731171","bheadmaster",[534,46,34,535,11,42],"34731186","maker\u002Fneutral\u002Fexecution",[537,46,18,460,527,34],"34731375",[539,46,34,460,11,42],"34731467",[541,46,34,210,527,34],"34732359",[543,46,34,210,544,34],"34731382","yegle",[546,46,34,535,11,42],"34731803",[548,46,18,549,550,34],"34732464","maker\u002Fneutral\u002Fdocs","gary_0",[552,46,34,549,11,42],"34732557",[554,46,18,460,555,34],"34769184","efreak",[557,46,18,460,558,34],"34733582","lytigas",[560,46,18,460,561,34],"34732065","sjaak",[563,46,46,229,527,34],"34731343",[565,46,18,566,567,34],"34732028","project\u002Fneutral\u002Fdesign","blueblob",[70,569,46,229,71,34],6,[117,569,34,535,11,42],[572,569,42,573,574,34],"34731515","project\u002Fcritical\u002Fexecution","TechBro8615",[576,569,34,549,11,42],"34731653",[578,579,46,229,580,34],"34733469",7,"inamberclad",[582,579,18,460,583,34],"34733913","iuafhiuah",[585,35,34,210,586,34],"34737444","intsunny",[588,35,34,210,304,34],"34739731",[590,35,34,210,288,34],"34745228",[592,205,18,460,327,34],"34731420",[594,205,34,210,595,34],"34731743","JosephRedfern",[597,205,18,464,598,34],"34732645","stabbles",[600,205,34,464,11,42],"34732761",[602,205,34,210,603,34],"34734856","suyula",[605,205,34,210,606,34],"34738647","forgotpwd16",[608,205,34,210,288,34],"34745294",[81,610,42,611,82,34],10,"project\u002Fcritical\u002Fidea",[613,610,34,614,11,42],"34731968","maker\u002Fpositive\u002Fnone",[616,610,34,213,617,34],"34731980","jxf",[619,610,42,611,82,34],"34732350",[145,39,18,460,146,34],[108,622,46,229,109,34],12,[624,622,34,614,11,42],"34731552",[138,192,18,464,139,34],[627,192,18,464,364,34],"34733932",[629,192,18,464,139,34],"34734890",[631,192,42,632,633,34],"34734088","project\u002Fcritical\u002Fdesign","alerighi",[635,192,34,464,11,42],"34734120",[637,638,18,566,639,34],"34735974",14,"__turbobrew__",[641,638,18,566,642,34],"34736852","etu",[644,32,18,645,646,34],"34733288","project\u002Fneutral\u002Fnone","gnull",[648,32,34,213,489,34],"34738088",[650,32,34,213,646,34],"34742281",[652,32,34,213,606,34],"34738700",[654,32,34,213,646,34],"34742251",[656,32,42,573,646,34],"34742293",[658,659,18,460,660,34],"34732104",16,"boomskats",[662,659,34,495,11,42],"34732211",[89,664,18,464,90,34],17,[63,664,34,464,11,42],[667,664,18,464,598,34],"34732664",[669,664,34,464,11,42],"34733224",[74,671,46,229,75,34],18,[673,671,34,464,11,42],"34731371",[131,675,18,464,132,34],19,[677,675,34,464,11,42],"34732549",[679,675,18,460,132,34],"34732636",[681,675,34,460,11,42],"34733233",[683,206,42,611,684,34],"34731754","nmstoker",[686,206,34,464,11,42],"34731764",[688,206,42,611,689,34],"34732193","aendruk",[691,692,34,210,693,34],"34734731",21,"cdelsolar",[695,696,46,229,697,34],"34731170",22,"Zurrrrr",[699,700,34,210,701,34],"34738193",23,"solatic",[153,703,18,464,154,34],24,[705,703,34,464,11,42],"34731747",[707,708,34,210,709,34],"34733544",25,"ameminator",[711,191,18,464,712,34],"34734085","pjdkoch",[714,715,46,229,716,34],"34730842",27,"fezzez",[123,718,42,573,124,34],28,[720,721,46,722,723,34],"34737685",29,"project\u002Fpositive\u002Fexecution","royjacobs",[725,721,34,535,11,42],"34738450",[727,728,18,645,729,34],"34732654",30,"nikau",[104,731,46,229,105,34],31,[733,734,18,735,736,34],"34732613",32,"project\u002Fneutral\u002Fdocs","ossusermivami",[738,734,34,549,11,42],"34732699",[740,734,18,735,741,34],"34733169","acdw",[743,734,34,213,744,34],"34735254","149765",[746,747,46,614,748,34],"34734490",33,"winrid",[750,747,34,614,11,42],"34734777",[752,33,46,229,753,34],"34735819","patmcc",[755,33,18,464,756,34],"34737218","colinsane",[758,33,34,210,759,34],"34754549","cobby",[761,33,34,210,756,34],"34755636",[763,33,34,460,11,42],"34739264",[765,33,34,210,555,34],"34769276",[100,767,46,768,101,34],35,"project\u002Fpositive\u002Fnone",[157,770,18,460,158,34],36,[772,770,34,210,158,34],"34743452",[774,775,46,614,776,34],"34731676",37,"pipeline_peak",[778,775,34,495,11,42],"34731681",[780,781,34,210,782,34],"34730902",38,"vippy",[784,781,34,210,785,34],"34731106","userbinator",[787,781,34,210,788,34],"34731556","Insanity",[790,781,34,210,791,34],"34731732","RamblingCTO",[793,781,34,210,788,34],"34742093",[795,781,34,210,796,34],"34731836","swozey",[798,781,34,210,446,34],"34736318",[800,781,34,210,796,34],"34737849",[802,781,34,210,803,34],"34731139","cheapliquor",[805,781,34,210,806,34],"34733782","sodapopcan",[808,781,34,210,791,34],"34731251",[810,781,34,210,446,34],"34734481",[812,781,34,210,813,34],"34735065","sammalloy",[815,781,34,210,816,34],"34731366","bpiche",[818,781,34,210,819,34],"34731470","flangola7",[821,781,34,210,822,34],"34731530","sergiotapia",[824,781,34,210,825,34],"34731914","ghc",[827,781,34,210,828,34],"34737448","smcl",[830,831,34,210,832,34],"34736335",39,"japanman425",[],[835,840,844,848,853,858],{"id":836,"name":837,"points":838,"category":839},"34729849","ScreenStab",497,"creative",{"id":841,"name":842,"points":843,"category":839},"34795155","Peel",353,{"id":845,"name":846,"points":847,"category":20},"34740529","Spaghettify",323,{"id":849,"name":850,"points":851,"category":852},"34780579","Paperlist",287,"learning_science",{"id":854,"name":855,"points":856,"category":857},"34770898","WAAS",267,"ai",{"id":859,"name":860,"points":861,"category":857},"34727695","PodText.ai",219,false,"v2",{"id":865,"name":5,"line":6,"ai":862,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":30,"top":18,"kw":866,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":867,"url":9,"mix":868,"praise":97,"objection":113,"sub":21},34730520,[24,25,26,27,28],"0500000000000000303035345313324154555000",[32,33,34,35],1794036631060]