Thanks for the feedback, moody. My inline explanations below. On Tue, Aug 27, 2024, at 3:05 PM, Jacob Moody wrote: > On 8/27/24 13:40, Romano wrote: >> I use drawterm from different OSes to connect to my >> 9front systems and noticed that there's a generic >> pattern that I usually take in modifying my lib/profile >> for different clients that I'm drawterm'ing from. >> I also noticed that the newuser(1) man page's >> presentation of what is generated for lib/profile was >> out-dated and not all architectures had underlying 'bin' >> directories created for the user. So I figured I'd take >> a stab at updating newuser(1) and its man page to have >> newuser also create a lib/drawterm directory, with >> lib/drawterm/default being the corresponding profile for >> when someone drawterm's in to the system. Here's a >> link to my attempt in case anyone finds it useful: >> >> http://only9fans.com/unobe/patches/4ac3a0224ed9d54818f858fba69c8e94f38f2c12/9front/2235c398fa9e7b48e0c84cda05c6994a14736e55.patch/raw > > I know this isn't a request to merge this in to 9front, but I still > wanted to comment on some things I noticed in your patch. > The whole lib/drawterm/* thing doesn't seem like it would be too useful > to me personally in general. It helps me setup my drawterm defaults based on what client I am dialing in from (e.g. work laptop, my wife's laptop, my macbook). I anticipate having more but also I don't assume it's useful for everyone. > diff c32dabd4853888f62f09a6d3f8e0deed4077b6a7 > 2235c398fa9e7b48e0c84cda05c6994a14736e55 > --- a/sys/lib/newuser > +++ b/sys/lib/newuser > @@ -1,5 +1,4 @@ > #!/bin/rc > - > user=`{cat /dev/user} > home=/usr/$user > if(test -f $home/lib/profile){ > > This seems like accidental noise that got in to your patch. I didn't see a point in the blank line. > > @@ -8,10 +7,10 @@ > } > cd $home > x='$' > -mkdir bin bin/rc bin/mips bin/386 bin/amd64 bin/power bin/arm bin/arm64 > -mkdir lib tmp > +mkdir bin/^('' rc spim arm arm64 amd64 386 power power64 mips) > +mkdir lib lib/drawterm tmp > chmod +t tmp > -bind -qc /n/other/usr/$user/tmp $home/tmp > +if(test -d /n/other/usr/$user/tmp) bind -qc /n/other/usr/$user/tmp $home/tmp > bind -c $home/tmp /tmp > mail -c > auth/cron -c > @@ -22,38 +21,41 @@ > > You can use mkdir -p instead to clean up these calls, and remove this > bin/('') thing. > It'll read more naturally. Thanks! I had considered that but didn't know if I wanted to force directory creation and that's why it wasn't done before. So I opted for at least a list expansion. > @@ -22,38 +21,41 @@ > font=/lib/font/bit/vga/unicode.font > switch($x^service){ > case terminal > - webcookies > - webfs > - plumber > echo -n accelerated > '#m/mousectl' > echo -n 'res 3' > '#m/mousectl' > prompt=('term% ' ' ') > fn term%{ $x^* } > + webcookies > + webfs > + plumber > rio > > What does moving this around achieve? I didn't think it was foolish to have consistency with the other case (cpu) to have those run at the end. I didn't see the point of having them before those other commands. > case cpu > - bind /mnt/term/dev/cons /dev/cons > - bind -q /mnt/term/dev/consctl /dev/consctl > - >[2] /dev/null { > - cp /dev/sysname /mnt/term/dev/label > - if(wsys=`{cat /mnt/term/env/wsys} && ~ $x^#wsys 1) { > - wsys=/mnt/term^$x^wsys > - } > - if not { > - wsys=() > - } > - } > - bind -a /mnt/term/dev /dev > + # if rcpu or drawterm: > + if(test -d /mnt/term/dev){ > + bind /mnt/term/dev/cons /dev/cons > + bind -q /mnt/term/dev/consctl /dev/consctl > + >[2] /dev/null { > + cp /dev/sysname /mnt/term/dev/label > + if(wsys=`{cat /mnt/term/env/wsys} && ~ $x^#wsys 1) > + wsys=/mnt/term^$x^wsys > + if not > + wsys=() > + } > + bind -a /mnt/term/dev /dev > + } > prompt=('cpu% ' ' ') > fn cpu%{ $x^* } > - if(! test -e /mnt/term/dev/wsys){ > - # call from drawterm > - if(test -e /mnt/term/dev/secstore){ > - auth/factotum -n > - read -m /mnt/term/dev/secstore >/mnt/factotum/ctl > - echo >/mnt/term/dev/secstore > - } > - if not > - auth/factotum > > The reason this check is written this way is because drawterm will not > have a /mnt/term/dev on windows. > So your first check here will fail with a windows client. I was surpised by this. It just so happens that the Windows recovery USB stick (which cost $20) for an ideapad I got for $5 came in today. So I installed Windows 10 Home and downloaded drawterm.exe; I see a /mnt/term/dev directory (see the attached screenshot), and as I drawterm'd in, my patch works as I expected. Is it perhaps different for different versions of Windows? Does your drawterm.exe not provide a dev dir?