_____________________________ |Notes for plan9 by thedæmon| _____________________________ raspberry pi install % 9fs dos % acme /n/dos/cmdline.txt console=0 nobootprompt=local!/dev/sdN0/fs user=thedaemon % acme $home/lib/profile before switch structure auth/factotum -g 'key proto=p9sk1 dom=plan9 user=glenda !password=PASSWORD' aux/listen1 -t tcp!*!rcpu /rc/bin/service/tcp17019 -R & ip/ipconfig ================================================ @@APPLICATIONS acme - editor - builtin mothra - web browser - builtin abaco - web browser - builtin netsurf - newer web browser - external page - document and image viewer - builtin play & zuke - music - builtin stats - monitor - builtin vol - volume control - external masto9 - mastodon client - external castor - gemini - external vdir - directory gui - external bc - calculator webpaste - pastbin to okturing.com ptrap - use this for plumbing winwatch - task list ============= thedaemon's applications & scripts dpaint - my paint modified - CUSTOM save files at .bit for bitmap with plumbing rule updatemusic - clears and rescans music folder to creat list playmusic - plays list ======================================== @@TIPS================================== TERMINAL ctrl+f == file autocomplete type win in acme to the right and mouse2 to open a term rfork n; aux/realemu; aux/vga -l 2560x1440x16 rfork n; aux/realemu; aux/vga -l 1920x1080x32 //SCREENSHOT - THE WHOLE THING topng screen.png //Take a screenshot of only a windo topng window.png //Processes sorted by memory usage -r will make it descending ps | sort -g Show all processes ps -a cat /dev/screen | topng >/usr/thedaemon/html/theme-fall-2023.png cat /dev/screen | topng >/usr/thedaemon/docs/www/images/plan9/screen1.png //BACKUPS term% echo dump >>/srv/cwfs.cmd //Read Backups term% 9fs dump term% cd /n/dump //Open local html with mothra example term% mothra -a file://usr/glenda/docs/plan9_desktop.html //ACME //Loads dump file, which is restore session. term% acme -l acme.dump //opens document in active acme touch testfile; B testfile //Battery information term% cat /dev/battery //Shortcuts alt+a,e makes æ character! rc functions go in PROFILE //RC scripts put all rc scripts in $home/bin/rc for running 9fs tcp!wiki.a-b.xyz!909 /n/wiki bin/rc/thedaemon/init/mail upas/fs -f /imaps/disroot.org/me & srv tcp!registry.9p.zone!6675 registry /mnt/registry echo 'key proto=pass service=imap server=disroot.org user=me !password=PASSWORD' >/mnt/factotum/ctl echo 'key proto=pass server=disroot.org service=smtp user=me !password=PASSWORD' >/mnt/factotum/ctl echo 'key proto=pass server=irc.oftc.net service=irc user=me !password=PASSWORD' >/mnt/factotum/ctl;/ echo 'key proto=pass server=irc.libera.net service=irc user=me !password=PASSWORD' >>factotum echo 'key proto=pass server=123.123.123.123 service=ssh thumb=PASSWORD user=me !password=PASSWORD' >/mnt/factotum/ctl echo 'key proto=dp9ik dom=9sdf user=me !password=PASSWORD' echo 'key proto=p9sk1 dom=shithub.us role=client user=me !password=PASSWORD' >/mnt/factotum/ctl echo 'key proto=pass service=nntp server=new.news.org user=me !password=PASSWORD' >/mnt/factotum/ctl ======================================== @@NEWSGROUPS============================ echo 'key proto=pass service=nntp server=news.eternal-september.org user=me !password=TURTLE' >/mnt/factotum/ctl nntpfs -a news.eternal-september.org newt -f comp.os.plan9 ======================================== @@GIT=================================== echo 'key proto=p9sk1 dom=shithub.us role=client user=ME !password=LOLWHAT' >/mnt/factotum/ctl git/push -u hjgit://shithub.us/thedaemon/dpaint -- git/commit -me file.c ======================================== @@RIO=================================== Ctrl-b — Move cursor to the position immediately after the prompt. (rio only) To capture console messages in a rio window, open a new window and: cat /dev/kprint window -hide -scroll cat /dev/kprint Bar running with riow code /dev/kbdtap |[3] bar This turns off sound bind /dev/mordor /dev/audio plumber ; rio ctrl+f or INS key is autocomplete filenames. ======================================== @@IRC=================================== i have thedaemon and thedaemon9 both as registered ircrc -n thedaemon9 -P PASSWORD -r thedaemon ircrc -T -p 6697 -n thedaemon -P PASSWORD -r thedaemon irc.libera.chat This is how to regain nick on libera.chat /m nickserv regain thedaemon ***** ======================================== @@CONFIGURATION========================= 9fs 9fat /n/9fat/plan9.ini boot config /cfg/$SYSNAME/termrc /cfg/$SYSNAME/cpurc $home/bin/rc/riostart wm config $home/lib/profile startup profile /lib/ndb/local sysname, ethernet ======================================== @@NETWORK CONFIGURATION================= //MANUAL ip/ipconfig -g 192.168.0.1 ether /net/ether0 192.168.0.111 255.255.255.0 Don't do that, instead use /cfg/HOSTNAME/termrc, don't do that either. profile script? //DHCP ip/ipconfig This is like ipconfig ndb/query sys x61t //WIFI term% aux/wpa -s plan9 -p /net/ether0 term% ip/ipconfig ether /net/ether0 thedæmon → just trying to figure out the port to open for drawterm moody → 567 and 17019 netstat picker /dev/theme ======================================== @@MUSIC PLAYING========================= audio/mkplist /usr/glenda/mp3s/ > music.plist audio/zuke < /usr/glenda/mp3s/music.plist ======================================== @@SSH=================================== ssh root@192.168.1.1 sshfs root@123.123.123.123 location of files are /n/ssh/ //must visit each folder and 'lc' or something to download unmount /n/ssh //dircp doesn't work like you would think, by copying a directory. //instead it copies the content of a directory cd /n/ssh/www/www/htdocs/ I think at least //download website to local directory dircp thedaemons.space/ /usr/glenda/docs/www/ //when in the sshfs directory /thedaemons.space/ update site with this dircp /usr/thedaemon/docs/www/ . ======================================== @@USB DRIVES============================ //FAT formatted USB devices are auto mounted here //*fat or fat32 only /shr/$DEVICENAME ======================================== @@RIOSTART # run a system shell on the serial console ~ $#console 0 || window -scroll console ======================================== @@PROFILE fn cd { builtin cd $* && prompt=('{pwd}^% '' ) } This is supposed to show directory, when changing directory ======================================== @@OTHER================================= nobootprompt=local!/dev/sdE0/fscache plan9 X11 cursor «anthk_» ⇒ http://0x0.st/HjKu.tgz xcursor-plan9-0.2.tar.xz «anthk_» ⇒ now I'd like a plan9 like gtk theme, but there's none -- «moodman» ⇒ yes, by default plan9 keeps "broken" processes around for you to debug «moodman» ⇒ if you use broke(1) it will print a list of processes that are in this Broken state «moodman» ⇒ you can then do: acid «moodman» ⇒ and type: lstk() for a stack trace -- Stream anonradio, slowly. hget http://anonradio.net:8000/anonradio | play -- net/ndb == system name? -- Install treason term% rm -rf /tmp/treason term% mkdir /tmp/treason term% cd /tmp/treason term% hget https://ftrv.se/_/treason.gz | gunzip | disk/mkext -d . done term% ./treason/install.rc -- games/quake >/dev/null -- 6c -FTVw programming options to use for compiler in 9fronthamsters -- WEBSERVER be0ba → mostly, you'd just need something like be0ba → fs=1.2.3.4 be0ba → cpu=2.3.4.5 be0ba → auth=3.4.5.6 be0ba → kernel=9pi be0ba → nobootprompt=tls netstat -n ! in front of service meas not working ======================================== @@UPDATE================================ maybe bind -ac /dist/plan9front / sysupdate ------------- # directories needed for the build cd / . /sys/lib/rootstub --------------------- #compilers may need to be compiled first cd /sys/src/cmd/cc; mk install # choose the appropriate compiler for your architecture cd /sys/src/cmd/6c; mk install ------------- # build everything cd /sys/src mk install mk clean # build manpage indices cd /sys/man mk # build the papers and html (optional) cd /sys/doc mk mk html -------- Build the kernel for amd64: cd /sys/src/9/pc64 mk install -- open index: '.git/INDEX9' does not exist index format conversion needed: cd / && git/fs @{cd .git/index9/removed >[2]/dev/null && walk -f | sed 's/^/R NOQID 0 /'} >> .git/INDEX9 @{cd .git/fs/HEAD/tree && walk -f | sed 's/^/T NOQID 0 /'} >> .git/INDEX9 refs/heads/front: f9a61a0813fa1eb4ca026373f9b421cc3aeae040 -- term% cat /dev/theme rioback 777777 back ffffff high cccccc border 999999 text 000000 htext 000000 title 55aaaa ltitle 9eeeee hold 000099 lhold 005dbb palehold 4993dd paletext 666666 size ff0000 menubar 448844 menuback eaffea menuhigh 448844 menubord 88cc88 menutext 000000 menuhtext eaffea -- window 'cat /usr/thedaemon/lib/theme/gruv9.theme > /mnt/wsys/theme' UPDATE DONE as your screen and can be converted from a, for example, JPEG file as: jpg -9t /usr/glenda/lib/1920x1080.img -- picker /dev/theme -- aux/wpa -2 -s WIFI -p /net/ether0 -- NOTES echo dump >>/srv/cwfs.cmd /* plan9.ini */ bootfile=9pc64 bootargs=local!/dev/sdF0/fscache mouseport=ps2 monitor=vesa vgasize=2560x1440x16 tiltscreen=none /* IRC */ ircrc -T -p 6697 -n me -P PASSWORD -r me irc.libera.chat ircrc -T -p 6697 -n me -P PASSWORD -r me irc.oftc.net vesa mode 0x196 2560x1440x16 r5g6b5 direct rfork n; aux/realemu; aux/vga -p rfork n; aux/realemu;aux/vga -m vesa -l 2560x1440x16 /* riostart */ #!/bin/rc #riow & bar script wm #statistics window 0,0,161,117 stats -lmisce # console to keep the errors at bay window -hide -scroll cat /dev/kprint /* wm */ #!/bin/rc rfork ne /dev/kbdtap |[3] bar git/clone git://shithub.us/ auth/factotum -g 'key proto=p9sk1 dom=plan9 user=glenda !password=glenda' aux/listen1 -t tcp!*!rcpu /rc/bin/service/tcp17019 -R & ip/ipconfig ------------------------ DAEMONPAINT NOTES RESEARCH For fill tool: fractal area ddg fractal b &w with open figures [23:36] (#cat-v) «qeed» ⇒ you thought it was crashing cuz it seems frozen? [23:47] (#cat-v) «cinap_lenrek» ⇒ you found a bug in devdraw? [23:47] (#cat-v) «cinap_lenrek» ⇒ maybe you can reproduce it in vncs? [18:48] (#cat-v) «cinap_lenrek» ⇒ it uses the same code basically [23:48] (#cat-v) «cinap_lenrek» ⇒ but it would be easier to debug when it gets into infinite loop or crashes [23:48] (#cat-v) «cinap_lenrek» ⇒ you could attach acid to the vncs server [23:54] (#cat-v) «qeed» ⇒ https://www.travlerz.com/en/united-states-maps?ly=native_one yeah I thought acid was only for broke apps until I saw some document on it the other day [18:59] (#cat-v) ⇐ yeah I thought acid was only for broke apps until I saw some document on it the other day [18:59] (#cat-v) «qrstuv» ⇒ having never read paint.c, i wonder why it's fill would have anything to do with devdraw I haven't gotten into debugging just yet [19:00] (#cat-v) ⇐ I haven't gotten into debugging just yet [19:00] (#cat-v) «cinap_lenrek» ⇒ oh [19:00] (#cat-v) «cinap_lenrek» ⇒ its about floodfill? I am learning [19:01] (#cat-v) ⇐ I am learning yes, I thought it was zoom originally [00:01] (#cat-v) ⇐ yes, I thought it was zoom originally but I'm pretty sure it's floodfill as on this beefy pc it just takes a minute or seconds and it's done. [19:01] (#cat-v) ⇐ but I'm pretty sure it's floodfill as on this beefy pc it just takes a minute or seconds and it's done. [19:01] (#cat-v) «qeed» ⇒ its a common problem in gui programming, programmers are just lazy and assume all operations take less than the user experience time [19:01] (#cat-v) «qrstuv» ⇒ uhh, that's also slow as fuck [00:02] (#cat-v) «cinap_lenrek» ⇒ yeah [00:02] (#cat-v) «cinap_lenrek» ⇒ the floodfill isnt very efficient [19:02] (#cat-v) «cinap_lenrek» ⇒ it has to download pixels, to know where to paint [19:02] (#cat-v) «cinap_lenrek» ⇒ remember, paint doesnt know the pixels [19:02] (#cat-v) «cinap_lenrek» ⇒ they'r in devdraw's memory ohh [19:06] (#cat-v) ⇐ so I'll need to check devdraw's operation when paint is "stalled" ? [19:06] (#cat-v) «qrstuv» ⇒ you can start by profiling paint I'm writing all this down [19:09] (#cat-v) ⇐ I'm writing all this down [00:09] (#cat-v) «qrstuv» ⇒ prof(1) [19:09] (#cat-v) «cinap_lenrek» ⇒ you can always stop a program with acid [19:09] (#cat-v) «cinap_lenrek» ⇒ acid [19:09] (#cat-v) «cinap_lenrek» ⇒ acid: stop(pid) [19:10] (#cat-v) «cinap_lenrek» ⇒ acid: lstk(0 [19:10] (#cat-v) «cinap_lenrek» ⇒ lstk() --- DRAWTERM ghost% auth/factotum -n ghost% [tcp17019 tcp17020 telcodata telcofax] ghost% rcpu -h 9p.sdf.org -u me listen started incoming call for tcp!*!17019 from 192.168.122.1 in /net/tcp/5 tlssrv: auth_proxy: auth_proxy short read ghost% echo 'key proto=dp9ik dom=ghost user=me !password=PASSWORD' > /mnt/factotum/ctl ghost% aux/listen1 -t tcp!*!17019 /rc/bin/service/tcp17019 listen started incoming call for tcp!*!17019 from 192.168.122.1 in /net/tcp/5 -- ghost% echo tilt right >/dev/vgactl ghost% echo tilt none >/dev/vgactl -------- Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) ------ standard link - #0000FF //blue visited link - #800080 //purple active link - #FF0000 //red background-color: #f7e7b2; --------- jpg -9t /usr/me/iamges/out.img ---- cp /usr/thedaemon/docs/www/index.html /n/ssh/www/www/htdocs/thedaemons.space/ -- [rudi] I think you just `9fs 9p.sdf.org` and then in your /n/ you'll have a mount point with a bin directory to set up sdflink -- time for 12 hour date -f 'HH:mm:ss a' -- ======================================== @@VIDEO================================= nvi -i n69xj-t8WsI //play combined low quality video and audio nvi -V 18 -v /tmp/vid.mp4 n69xj-t8WsI && treason /tmp/vid.mp4 && rm /tmp/vid.mp4 //Download audio and video in best quality nvi -a /tmp/audio -v /tmp/video n69xj-t8WsI && treason -a /tmp/audio /tmp/video nvi -V 18 -v /tmp/Amutt.mp4 SwpHRZXVtZk && treason /tmp/Amutt.mp4 https://thedaemons.space/images/plan9/screen3.png An "wsys/n" window within Drawterm, or from a rio rc prompt. wsys is a directory containing a subdirectory for each window, named by the unique ID for that window. http://man.9front.org/4/rio topng window.png grep the window label to find the window number. x Mouse button 3 menu select 'hide', then target the window that you want to 'topng'. Mouse button 3 target confirm the window that you want to 'topng'. Mouse button 3 menu to visually review the hidden window label name. Mouse button 3 menu select 'label-name' to un-hide the target window. x The example window target label ends with the number 385. % grep 385 /dev/wsys/*/label /dev/wsys/10/label:rc 201318385 % topng window.png % png window.png x Run winwatch to view a window label list. % winwatch ======================================== @@FONTS=============================== void% cp /mnt/term/home/thedaemon/src/ttfs/kurinto/* /lib/font/bit/kurinto/ void% for(f in /lib/font/bit/kurinto/*.*-*){ {iconv; cat} <$f >$f.cmp && mv $f.cmp $f } void% font=/lib/font/bit/blexmono/blexmonotextmono.18.font void% rio blexmonomediummono.18 /lib/font/bit/kurinto/kurinto.18.mono.font font=/lib/font/bit/kurinto/kurinto.16.mono.font disk space percentage? echo statw >> /srv/cwfs.cmd dd -if /srv/cwfs.cmd -bs 1024 -count 21 -quiet 1 | grep wmax | sed 's/.*\+//' grep zuke /dev/wsys/*/label thedæmon → can I, execute rc scripts from C fairly easily? foura • you can just exec() it so long as you have #!/bin/rc moody → and has +x foura • yeah Adding key: proto=pass server=bsd.network service=mastodon masto9 DOMAIN [COMMAND] [DATA] Available commands: home to view your notifications. Abbrev h toot 'TEXT' to post a new textual toot. Abbrev t tootwithfile ['TEXT'] FILEPATH to post a new toot with a file and optional text. . Abbrev tf reply ID to reply to a toot. Abbrev r notifications to view your notifications. Abbrev n mentions to view your mentions. Abbrev m fav|unfav|boost|unboost ID to act on a toot. Abbrev f|uf|b|ub more ID to view the timeline starting from a toot debug ID to view a toot JSON pmjv@triapul.cz == prahou [15:45] thedaemon9 «prahou» ⇒ MACHINE WORM [15:45] thedaemon9 «prahou» ⇒ DEAD CRT [15:46] thedaemon9 «prahou» ⇒ BOOK OF THE CYBER WAR srv net!9p.io!wiki wiki /mnt/wiki now run this in acme Wiki /mnt/wiki/