Both sides previous revisionPrevious revisionNext revision | Previous revision |
plan9front_-_mailing_and_faces [2023/09/05 00:46] – [nedmail] hc9 | plan9front_-_mailing_and_faces [2023/12/18 00:56] (current) – [9p mail] %%:! m( hc9 |
---|
| ====== create face.1 ====== |
| |
| | The create //face.1// technique does vary\\ between the Boot Camp participants, with\\ some examples used more than others. | |
| |
| |x| A white background will look like a transparent background, after the install. | |
| |
| Adding a face: |
| |
| <code> |
| |
| cpu% jpg -c myface.jpg | iconv -c m8 | resample -x 48 -y 48 > myface.1 |
| </code> |
| |
| <code> |
| |
| cpu% png -c myface.png | iconv -c m8 | resample -x 48 -y 48 > myface.1 |
| </code> |
| |
| <code> |
| |
| cpu% jpg -c myface.jpg | resample -x 100 | crop -b 255 255 255 -i -30 | mug > myface.1 |
| </code> |
| |
| |An optional example:|''<nowiki>jpg -c myface.jpg | iconv -c k4 | resample -x 48 -y 48 > myface.1</nowiki>''| |
| |
| |x|Adding your face|https://9p.io/wiki/plan9/adding_your_face/index.html| |
| |x|Review //''mug'' ((The use of //''mug''// may call for the command //''broke''// ; ''man broke''.))//| ''cpu% jpg -c myface.jpg | mug > myface.1''| |
| |x| //''gif -c''// |http://man.9front.org/1/jpg| |
| |x| //''png -c''// |http://man.9front.org/1/jpg| |
| | | //**''-c''** Convert the image to a Plan 9 representation, as defined by image(6), and write it to standard output.// |"| |
| |
| |x| //''crop''// |crop, iconv - frame, crop, and convert image|http://man.9front.org/1/crop| |
| | | //''crop''// |//There are two ways to specify a crop, by color value or by geometry.//|"| |
| |x| //''resize''// |resample, resize - resample a picture|http://man.9front.org/1/resample| |
| |x| //''rotate''// |rotate - rotate or mirror a picture|http://man.9front.org/1/rotate| |
| |
| |x| //''paint''// |paint - create image files by drawing with a mouse or other pointing device|http://man.9front.org/1/paint| |
| |x| //''tweak''// |tweak - edit image files, subfont files, face files, etc.|http://man.9front.org/1/tweak| |
| | | //''tweak''// | //Report the coordinate and value of individual pixels indicated by pressing button 3.//|"| |
| |
| ===== quality control ===== |
| |
| Check the results with ''tweak'': |
| |
| <code> |
| |
| cpu% tweak myface.1 |
| </code> |
| |
| Check the classification with ''file'': |
| |
| <code> |
| |
| cpu% file myface.1 |
| </code> |
| |
| ^ Example 48x48 output ^ |
| | ''cpu% file /usr/$user/lib/face/$user.1'' | |
| | ''$user.1: //Compressed plan 9 image or subfont, depth 8, size 48x48//'' | |
| |
| Check the results with ''page'': |
| |
| <code> |
| |
| cpu% page myface.1 |
| </code> |
| |
| ===== 9p face install ===== |
| |
| |**1.**|If //myface.1// looks good, install it as ''$home/lib/face/$user.1''| |
| |//a.//|copy //''$user.1''// to the //''$home/lib/face''// directory.| |
| |
| <code> |
| |
| cpu% mkdir $home/lib/face |
| </code> |
| |
| |**2.**|Run //faceoff//. The //faceoff// updates are queued.| |
| |
| <code> |
| |
| cpu% faceoff |
| </code> |
| |
| ^ Example .dict format ^ |
| |''9p.sdf.org/$user $user.1''| |
| |''sdf.org/$user $user.1''| |
| |
| ===== face location ===== |
| |
| This is a people face, __example only__: |
| |
| <code> |
| |
| cpu% jpg -c USER.jpg | resample -x 100 | crop -b 255 255 255 -i -30 | mug > /lib/face/people/USER.1 |
| </code> |
| |
| This is a domains face, __example only__: |
| |
| <code> |
| |
| cpu% jpg -c sdf.jpg | resample -x 100 | crop -b 255 255 255 -i -30 | mug > /lib/face/domains/sdf.org.1 |
| </code> |
| |
| examples (in another format): |
| |
| <code> |
| |
| cpu% cd /lib/face/48x48x1 |
| cpu% page .dict |
| </code> |
| |
| ===== faces -i ===== |
| |
| |x| FACES -I: | ''faces [ -ihc ] [ -m maildir ]'' |http://man.9front.org/1/faces| |
| |
| <code> |
| |
| cpu% faces -i |
| </code> |
| |
| ====== 9p mail ====== |
| |
| Enter ''//upasname=$user@9p.sdf.org//'' if it's not already in the //$home/lib/profile//, below the bind lines. Try ''<nowiki>'</nowiki>sed 5q $home/lib/profile<nowiki>'</nowiki>'' to view the first 5 lines of //$home/lib/profile//. //(Although unrelated, a [[vps_-_9front#adding_a_user|Plan 9 VPS upas snippet]] is available for reference.)// |
| |
| Entering //''upasname=$user@9p.sdf.org''// (at the prompt) is **optional** if a ''$user'' [[boot_camp_9p_resource#default_9p_lib_profile|chooses to edit]] the //''$home/lib/profile''//. |
| |
| |x| //''upas/fs''// |upasfs - mail file server|http://man.9front.org/4/upasfs| |
| | | //''upas/fs''// |[%%:!:%%] ((The [%%:!:%%] is interchangeable with a //[CAUTION]//, for the [[plan9front_-_acme_sam_abaco_mothra_and_man#abaco|abaco]], and [[plan9front_-_acme_sam_abaco_mothra_and_man#mothra|mothra]] browsers. :!:)) //A user normally starts fs in his/her profile after starting plumber(4) and before starting a window system, such as rio(1) or acme(1).//|"| |
| |
| <code> |
| |
| cpu% upasname=$user@9p.sdf.org |
| </code> |
| |
| |x|Add //''upasname=$user@9p.sdf.org''// to the //''$home/lib/profile''//| |
| |x|A default **''lib/profile''** [[boot_camp_9p_resource#default_9p_lib_profile|example at the Boot Camp 9p resource]] page, with snippets/changes.| |
| |
| ^ **1.** ^ A checklist, or a possible task (//a,b,c,d//) order. ^ |
| |//a.//|Is //''upasname=$user@9p.sdf.org''// in the //''$home/lib/profile''// ?| |
| |//b.//|[%%:!:%%] ((The [%%:!:%%] is interchangeable with a //[CAUTION]//, for the [[plan9front_-_acme_sam_abaco_mothra_and_man#abaco|abaco]], and [[plan9front_-_acme_sam_abaco_mothra_and_man#mothra|mothra]] browsers. :!:)) Is //''upas/fs''// in the //''case cpu''// area of the profile, after //''plumber''// ?| |
| |//c.//|Was there a //Drawterm// restart after //a// & //b//?| |
| |//d.//|//''mail -c''//| |
| |//i.//|If //''mail -c''// **is not working**: //Such users have to ask nicely for someone to create the mailbox directory on the file system console.//| |
| |//ii.//|Option 1: rename //$home/lib/profile// so that it is not recognized, then reconnect with //Drawterm -G// and run //''mail -c''//. (untested) [%%:!:%%] ((The [%%:!:%%] is interchangeable with a //[CAUTION]//, for the [[plan9front_-_acme_sam_abaco_mothra_and_man#abaco|abaco]], and [[plan9front_-_acme_sam_abaco_mothra_and_man#mothra|mothra]] browsers. :!:))| |
| |//iii.//|Option 2: rename //$home/lib/profile// so that it is not recognized, then reconnect and run //''mail -c''//. (untested) [%%:!:%%] ((The [%%:!:%%] is interchangeable with a //[CAUTION]//, for the [[plan9front_-_acme_sam_abaco_mothra_and_man#abaco|abaco]], and [[plan9front_-_acme_sam_abaco_mothra_and_man#mothra|mothra]] browsers. :!:))| |
| |//iv.//|//term%// notes: [[misc:newuser_raspberry_pi_2_b|Create $user /mail/box files with 'mail -c'.]]| |
| |
| === a: === |
| |
| <code> |
| |
| cpu% sam -d profile.edit |
| -. profile.edit |
| /bind -q |
| bind -q |
| bind -qa $home/bin/rc /bin |
| |
| bind -qa $home/bin/$cputype /bin |
| |
| bind -qa $home/sys/lib /sys/lib |
| |
| bind -qa /usr/sdf/bin /bin |
| a |
| upasname=$user@9p.sdf.org |
| . |
| w |
| profile.edit: #972 |
| q |
| cpu% |
| </code> |
| |
| === b: === |
| |
| Check for //''upas/fs''//, or add it after //''plumber''// if it's not already //there ((//''plumber''// is located in the //''case cpu''// section of the //profile//, in this example.))// |
| |
| <code> |
| |
| cpu% grep upas/\fs $home/lib/profile |
| upas/fs |
| cpu% grep -n upas/\fs $home/lib/profile |
| :42: upas/fs |
| cpu% |
| </code> |
| |
| === c: === |
| |
| [[vps_-_9front#closing_drawterm|Closing Drawterm]] |
| |
| === d: === |
| |
| Create the //''<nowiki>/</nowiki>mail<nowiki>/</nowiki>box<nowiki>/</nowiki>$user''// with ''<nowiki>'</nowiki>mail -c<nowiki>'</nowiki>''. This is only necessary once; it creates the $user mbox. |
| |
| <code> |
| |
| cpu% mail -c |
| </code> |
| |
| Note: manually editing the //''/mail/box/$user''// files may interfere with //''qer''//. |
| |
| 9p mail reference: |
| |
| |x| //''qer''// |qer, runq - queue management for spooled files|http://man.9front.org/8/qer| |
| | | //''qer''// |//Qer creates a control and a data file in a queue directory. The control file contents consist of the tag, reply, and args separated by spaces. The data file contains the standard input to qer.//|"| |
| |
| Start acme to access the mbox. |
| |
| <code> |
| |
| % acme |
| </code> |
| |
| ^ Newcol Kill Putall Dump Exit ^^ |
| |**New Cut Paste Snarf Sort Zerox Delcol**|:::| |
| |
| ^ Newcol Kill Putall Dump Exit ^^^ |
| |**New Cut Paste Snarf Sort Zerox Delcol**|:::|⇐ Add //Mail// by typing ''Mail''.| |
| |
| ^ Newcol Kill Putall Dump Exit ^^^ |
| |**New Cut Paste Snarf Sort Zerox Delcol Mail**|:::|⇐ Mouse button 2 press //Mail//.| |
| |
| ^ Newcol Kill Putall Dump Exit ^^ |
| |**New Cut Paste Snarf Sort Zerox Delcol Mail**| |
| |**///mail/fs/mbox//** **Del Snarf : Look Put Mail Delmesg Undelmesg Next**| |
| |
| ^ Newcol Kill Putall Dump Exit ^^^ |
| |**New Cut Paste Snarf Sort Zerox Delcol Mail**| |
| |**///mail/fs/mbox//** **Del Snarf : Look Put Mail Delmesg Undelmesg Next**|:::|⇐ Mouse button 2 press //Mail// to compose a new mail.| |
| |1/|:::|⇐ Email messages arrive here.| |
| |
| ^ Newcol Kill Putall Dump Exit ^^^ |
| |**New Cut Paste Snarf Sort Zerox Delcol Mail**| |
| |**///mail/fs/mbox//** **Del Snarf : Look Put Mail Delmesg Undelmesg Next**| |
| |2/|:::|⇐ Email messages arrive here.| |
| |1/| |
| |**///mail/fs/mbox/Compose.1//** **Del Snarf : Look Post :fmt**|:::|⇐ Mouse button 2 press //Post// to send the mail; //fmt// ((//fmt, htmlfmt - simple text formatters//; ''man fmt''.)) to format the mail.| |
| |To:| |
| |Subject:| |
| |[blank]| |
| |some text here|:::|⇐ Type the email text here.| |
| |
| ^ Newcol Kill Putall Dump Exit ^^^ |
| |**New Cut Paste Snarf Sort Zerox Delcol Mail**| |
| |**///mail/fs/mbox//** **Del Snarf : Look Put Mail Delmesg Undelmesg Next**| |
| |5/|:::|⇐ Mouse button 3 press #5 (//5///) to open the message.| |
| |4/| |
| |3/| |
| |2/| |
| |1/| |
| |
| ===== mailing lists ===== |
| |
| |x|SDF hosts the //plan9-l// mailing list for participants in the Plan 9 Boot Camp. Email '[[=finding_help#the_definitive_guide_to_rtfming|majordomo]]' and 'subscribe plan9-l' to join.| |
| |
| A man page example: |
| |
| <code> |
| |
| $ man majordomo |
| </code> |
| |
| ^ Newcol Kill Putall Dump Exit ^^^ |
| |**New Cut Paste Snarf Sort Zerox Delcol Mail**| |
| |**///mail/fs/mbox//** **Del Snarf : Look Put Mail Delmesg Undelmesg Next**| |
| |1/|:::|⇐ Email messages arrive here.| |
| |**///mail/fs/mbox/Compose.1//** **Del Snarf : Look Post :fmt**|:::|⇐ Mouse button 2 press //Post// to send the mail; //fmt// ((//fmt, htmlfmt - simple text formatters//; ''man fmt''.)) to format the mail.| |
| |To: ''majordomo@sdf.org''| |
| |Subject:| |
| |[blank]| |
| |''subscribe plan9-l''|:::|⇐ Type the email text here.| |
| |
| ===== nedmail ===== |
| |
| |x| MAIL: |nedmail - reading mail|http://man.9front.org/1/nedmail| |
| |
| <file config Test E-mail key sequence while at the 9p prompt> |
| mail -s 'Test from 9p' $user@9p.sdf.org |
| Will this work? |
| ctrl-d |
| [Esc] |
| </file> |
| |
| |**1.**|The window frame will turn blue (hold), until the //''[Esc]''// toggles to the non-blue window frame.| |
| |//a.//|//The ''[Esc]'' character toggles hold mode.// – http://man.9front.org/1/rio| |
| |
| <code> |
| |
| cpu% mail -s 'Test from 9p' $user@9p.sdf.org |
| will this work? |
| </code> |
| |
| |x|Caution, //''ctrl-d''// can operate as the //''[Delete]''// on a rio rc window.| |
| |
| <code> |
| |
| cpu% mail |
| 42 messages, 1 unread |
| : q |
| cpu% |
| </code> |
| |
| |x|This **//nedmail//** section will use a //DokuWiki// unordered [[wiki:syntax#lists|list]] for ''abaco'', ''mothra'', and ''netsurf'' browser review.| |
| |x|//Optional//: try the section ((A section can become part of a new //mini-project// in the //Self Guided [[plan_9_9front#discoveries|Discoveries]]//.)) items with a Drawterm rc prompt ([[boot_camp_9p_resource#boot_camp_9p_resource|without rio; teletype only]]), without //''ctrl-d''//.| |
| |
| * //5 messages// and quit [''q''] <code> |
| |
| cpu% mail |
| 5 messages, 1 unread |
| : q |
| cpu% |
| </code> |
| |
| * //5 messages// and wait at the ''mail'' prompt ['':''] <code> |
| |
| cpu% mail |
| 5 messages, 1 unread |
| : |
| </code> |
| |
| * Save the message (without a //message delete//), then quit ['',q''] <code> |
| |
| : ,h |
| 5: 1H |
| 1 text/plain 2130 (from,example@lemmy.sdf.org)(subj,[SDF] Whats new with Lemmy?) |
| 5: 1w /tmp/message_1_write_example |
| !saved in /tmp/message_1_write_example |
| 5: ,q |
| cpu% |
| </code> |
| |
| * Save the message, then mark the message for delete [''d''], and quit ['',q''] <code> |
| |
| cpu% mail |
| : ,h |
| 5: 1H |
| 1 text/plain 2130 (from,example@lemmy.sdf.org)(subj,[SDF] Whats new with Lemmy?) |
| 1: 1w /tmp/message_1_write_example |
| 1: d |
| 1: ,q |
| !1 message deleted |
| cpu% |
| </code> |
| |
| * The delete [''d''] //!d requires an address// message <code> |
| |
| : d |
| !d requires an address |
| : 1d |
| 1: ,q |
| !1 message deleted |
| cpu% |
| </code> |
| |
| === create popmail: === |
| |
| |x|This is a DRAFT| |
| |
| Incomplete notes, regarding popmail on 9p, are located here: [[misc:plan_9_boot_camp_tea_note_presentation-notes|Notes from TEA NOTE #N Sunday August 22, 2021]]. |
| |