BITTERS MANUAL Behold the manual! This disk describes what bitters is, and how you might use it. It's packed with information. Some useful, some maybe less? No, just kidding, how could any of that information be useful! Before we dive in, let's start by paying some due credits. ################################################################## CREDITS Bitters is not much more than a reproduction of the word processing abilities of the Canon Cat. All the ideas have been pioneered by Jef Rasking and the team that worked on the Canon Cat project. I'm in awe to see the attention to details the whole team had on every aspect the Cat. This manual itself has been inspired by the Canon Cat's Reference Manual that's available online. The Cat's manual is much more exhaustive and a definite read I'd suggest you to go through after you're done reading this one. As a matter of fact, I'm adding URLs to Cat documentation at the end of this manual. You've been warned! Of course, it's hard to learn the details of a machine when we can't fiddle with it. The Internet Archive has an emulator of the Cat that has been incredibly helpful. A little note on the font used: I've used the font_8x16 from the Linux kernel. It's provided under the GPL 2.0 license. Most of the work done on this project should also be attributed to my local coffee roaster. Let's be honest, the coffee she sells should absolutely take credit for what's been done here! ################################################################## A LITTLE INTRODUCTION What is bitters? Why is it called that way? How does it work? So many questions, and hopefully many more are currently floating in your brain. And don't get me started on brain. That should be the subject of another document. So you're here, reading this manual. Congratulations! Out of all the different activities the modern world provides us, you chose to read this manual. Let me tell you this: you chose well. You are about to hop on a journey that started in the late 80s, a point in time where many innovation started. I, myself, was born in the late 80s. I was too young to appreciate all the machines and ideas and paradigms that were invented back then. But here I am today! Bitters is a word processor that's inspired by the Canon Cat. The Cat is a machine that's been released in 1987 by Jef Raskin, who worked on the Macintosh project at Apple before that. The Cat's approach to what tech should be is vastly different from what computers are today. Instead of being a machine that allows everyone to do everything, the Cat had a much more utilitarian view. A computer should be an inexpensive tool that allows everyone to work with words. While the Cat wasn't a commercial success, it is PACKED with incredible ideas. Bitters only implements a fraction of them. But this little fraction makes writing so enjoyable that it's worth, in my opinion, exploring them. ################################################################## INSTALLING In order to install bitters, you need to have a C compiler and the SDL2 library installed. Compile directly from the source using the provided 'build.sh' script. ################################################################## KEYBOARD Your interface to writing with bitters is your keyboard, as I'm sure you have guessed! Bitters only supports standard ANSI QWERTY keyboards. If you are using an other type of keyboard, the modifiers key will be mapped to the ones of the QWERTY keyboard. In addition to that, bitters only allows characters that are part of the ASCII table, meaning that it's currently not possible to write accents, for example. Bitters uses special keys to work with text. In this manual, I'll be mentioning them enclosed in []. ----------------------------------------------------------------- KEY MAPPING ALT is used for leaping. Control is used as the "use front" modifier, which changes the behavior of some keys. [<- LEAP]: Left ALT [LEAP ->]: Right ALT [USE FRONT]: Control [ERASE]: Backspace [PAGE]: PageDown [DOCUMENT]: [SHIFT] + [PAGE] Pressing [USE FRONT] allows you to access other keys: [LEAP AGAIN]: [USE FRONT] + [LEAP] [PASTE]: [USE FRONT] + "p" [DISK]: [USE FRONT] + "l" (ell) Some keys are available only when the text is highlighted. The commands carried by these keys operate directly on the selection. [COPY]: "c" [CENTER]: "=" ################################################################## DISK In the Canon Cat, you'd insert a floppy disk in the machine and directly start typing. There were no file system, no OS. Just disks you'd write your text on. A lot like you'd have paper in a typewriter. On bitters, disks are files that contain all your writing. They aren't actual, real floppy disks like on the Cat. Just files. They are named disks because they serve a similar purpose and philosophy: they store all your documents. While the norm is to have many different files with their own names, on bitters you'd have one disk with all your documents. This allows you to quickly lookup information using LEAP. On bitters, a disk can store up to 250 KB of text. After that, the disk becomes full and you are not able to write in it anymore. This 250 KB limit is similar to the one of the Canon Cat. By convention, name your disks with the '.bit' extension. Disks are simple text files and contain no other information than the text you've written in them. To start bitters, you need to pass it the path of a disk. If the disk doesn't exist, bitters will create a new one for you. ----------------------------------------------------------------- SAVING YOUR WORK When you have unsaved changes on a disk, a * character should appear on the bottom line of the editor. To write the changes to the disk, use the [DISK] (CTRL + 'l' (ell)) key. Once saved, the * character disappear, indicating that your work has been successfully recorded. ################################################################## DOCUMENTS AND PAGES As we've just seen in the previous section (DISKS), there's no files in bitters, just disks which are a place where you can have documents. What you are reading right now, this whole document, is a disk. And as I'm sure you've noticed there are different sections. This section for example talks about DOCUMENTS and PAGES. It's separated from its neighbors with a very special character. The DOCUMENT character. It's a normal character, just like the 'o' or the 'i'. It's octal ASCII code is . Because it's a normal character, you can LEAP to it. But hey, we haven't covered LEAPing yet! Here's what to remember: DOCUMENTS should describe standalone parts of your disks. If we take the analogy of a file system: your disk is the folder, and the DOCUMENTS are its files. A PAGE is another character. Its octal code (not that you need to know about it, really) is . Since it's a character, you can also LEAP to it. A Page is a way to subdivide your DOCUMENTS. If DOCUMENTS can be viewed as files, PAGES are subsections of those files. To type a PAGE character, press PageDown. To type a DOCUMENT character, press [SHIFT] + [PAGE]. ################################################################## THE CURSOR AND THE HIGHLIGHT The way the Cat and bitters handle the cursor is a little different than what we tend to see. Instead of having a single like that shows where the next character will be inserted, there are two visual cues: - The cursor: the dotted rectangle that always shows you where your next character is going to be inserted. - The highlight: the filled rectangle that preceeds the cursor. It shows the character that would be removed if you pressed the [ERASE] key. When the cursor and the higlight are on different character, we say that the cursor is wide. When they are both on the same character, we say that the cursor is narrow. When you press [ERASE] on a wide cursor, it will erase backward. When you press [ERASE] on a narrow cursor, it will erase forward. When we LEAP, the cursor automatically becomes narrow. But what's leaping exactly?! ################################################################## LEAPING Leaping is the heart and soul of the Cat, and also of bitters. Without it, it'd be pretty dull to write with... So what's leaping? It's a way to "jump" (leap) to any character in the disk. Instead of using arrow keys or your mouse to get to a place in your document, you would just leap to that location directly. LEAP is a great way to edit parts of your text, but also to browse your disk, or to look up information. ----------------------------------------------------------------- LEAP PATTERN You can leap forward ([LEAP ->]) or backward ([<- LEAP]) from your current location. To do it, press one of the LEAP keys and start typing the pattern. A pattern can go up to 10 characters. It describes the sequence of letters to target. The target is the first letter of the sequence, that's where your cursor will land. Once it lands on the target, the cursor becomes narrow: [ERASE] will erase forward. Any character can be part of your LEAP pattern. That includes the DOCUMENT and PAGE character, as well as the RETURN character. ----------------------------------------------------------------- LEAP AGAIN Once you've leaped onto a target, you can ask bitters to LEAP to the next available target. That's done using the [LEAP AGAIN] key. To activate it, press [USE FRONT] and press either [<- LEAP] or [LEAP ->]. Note that [LEAP AGAIN] auto-repeats. Just keep your fingers on the key and bitters will jump around on all available targets. This makes [LEAP AGAIN] a great tool to browse your disk! Just press [LEAP ->] [RETURN] [RETURN] [LEAP AGAIN] to scroll your disk forward. Use [<- LEAP] instead to scroll backward. ----------------------------------------------------------------- CIRCULAR SEARCH When you LEAP too far in one direction, the search for the pattern will hit either the begining or end of the disk. When that happens, the search picks up from the opposite direction. This is called the "circular search". ----------------------------------------------------------------- CURSOR REBOUND So what happens when you LEAP to a pattern that isn't found on the disk? The cursor gets back to its original position. It's called the "cursor rebound". It's a great way to lookup for information! Just LEAP to a pattern you'd like to check on, then press "xx" (or any random string) to get back to where you were. ----------------------------------------------------------------- CREEPING There are no arrow keys on bitters or the Cat. Instead, you have your good old LEAP keys. If you press one of the LEAP keys and immediatly release it, it will move forward or backward one character, and narrow the cursor. This is called "creeping", and its helpful to adjust the target after a leap. Of course, you want to limit the use of creeping as much as possible and instead train on using LEAP to land on the correct target! ----------------------------------------------------------------- UPPERCASE AND LOWERCASE MATCHING When the LEAP pattern contains a lowercase character, it will try to match it with both lowercase AND uppercase targets. So if your pattern is "hello", it will match with both "hello" and "HELLO". However if your pattern is uppercase, only uppercase target will match. ################################################################## HIGHLIGHTING Highlighting is the process of selecting text to do things with it. You can ERASE it, CENTER it, COPY it or MOVE it. To highlight a part of your text, position yourself to one side of your selection. LEAP to the other side of the text you'd like to highlight, and press both LEAP keys. There you go! ----------------------------------------------------------------- ERASE You can erase your selection by pressing the [ERASE] key. ----------------------------------------------------------------- CENTER If your selection fits on a single line, you can center it by pressing the [CENTER] key. It will pad it with spaces. ----------------------------------------------------------------- COPY By pressing the [COPY] key, your selection goes into your system's clipboard and is available anywhere. Note that you can paste the text you have copied anywhere on your disk by pressing the [PASTE] key. ----------------------------------------------------------------- MOVE When your text is highlighted, you can move it to another location by LEAPING to the new location. As soon as you release the LEAP key, the text will be moved there. To cancel the move when you have started LEAPING, use the CURSOR REBOUND (by typing "xx" or any other random pattern). ################################################################## TAB AND TABSTOP When you press the [TAB] key, Bitters will insert a horizontal tab character ( ). This character will expand until it reaches the next tabstop. By default, there is a tabstop every 8 characters, but this can be changed. More on that in the next section! TAB is a great for tabular data, or for indenting lists. As any character, it's possible to LEAP to it, however many systems already use the ALT-TAB key binding. ################################################################## CONFIGURATION FILE You can pass the path of a configuration file as the second argument when you run bitter. The configuration file allows you to change default values and colors. Each line should be the name of an option followed by an '=' and the value. Every line that starts with a '#' won't be read, and can be used for comments. Below are the different options: OPTION DEFINITION ----------------------------------------------------------------- TAB_STOP Tab characters will be halted at every multiple of this number. Defaults to 8. ROWS The number of visible rows for editing text. This will change the height of the window. Defaults to 23. COLR_BG A hex number representing the color of the background. Defaults to 0. COLR_TXT A hex number representing the color of the text. Defaults to ffffff. ----------------------------------------------------------------- Note: Don't use the '#' when defining a COLR_* option. Simply write the hex value without it. ################################################################## BITTERS STYLE This section of the manual describes a simple style convention for writing with bitters. Feel free to use it for your own writing, or don't! As long as you stay consistent, you will be happy. And isn't being happy why we use bitters in the first place? - Name your disk with the '.bit' extension. - DOCUMENTs should be standalone sections in your disk. PAGEs should be used as sub-headings withing your DOCUMENTs. - The first DOCUMENT of your disk should describe its content. Its title should be the title of the disk. It should be centered horizontally to make it standout from other titles. Below the title should be a description of the disk. - Add a title to your DOCUMENTs and PAGEs. The title should be inserted after the DOCUMENT or PAGE character. Finish every title with two RETURN. - Finish every paragraph with two RETURN. - Indent lists with one TAB, and finish every list item by a period (".") followed by two RETURN. ----------------------------------------------------------------- GOING FURTHER The above convention should be a good balance between simplicity and practicalness. If you write a lot with bitters and edit text often, you can add those few rules to make working with LEAP easier. - Capitalize your titles. LEAP to a title using SHIFT. - Start your sentences with two spaces. LEAP to the start of a sentence by typing LEAP followed by SPACE and SPACE. ################################################################## BITTERS TIPS Below are some tips, methods and best practices to use bitters. You will for sure discover tips yourself! When you do, feel free to email them to me so I can add them. ----------------------------------------------------------------- LOOKUP INFORMATION Having all your DOCUMENTS on the same disk comes with a huge benefit: you can lookup any piece of information from anywhere! Here's how you'd do that: [LEAP] to the pattern you'd like to lookup. Once you've gotten the information you need, get back to where you were by adding "xx" to the pattern, thus causing the cursor to rebound. ----------------------------------------------------------------- LEAP SENTENCE-TO-SENTENCE Since sentences are separated by a "." (period), LEAP to "." to get to the next sentences. [LEAP] [.] [LEAP AGAIN] ----------------------------------------------------------------- LEAP PARAGRAPH-TO-PARAGRAPH If you follow the BITTERS STYLE (and I hope you do!) then all your paragraphs are separated by the [RETURN] keys. Use the following pattern: [LEAP] [RETURN] [RETURN] [LEAP AGAIN] This pattern is a great way to browse the content of a disk. Keep in mind that the [LEAP AGAIN] key auto-repeats, which makes it more convinent to scroll. ----------------------------------------------------------------- LEAP TO NEXT PAGE OR DOCUMENT Since PAGE and DOCUMENT are on the same key, you can LEAP to a PAGE to match both PAGEs and DOCUMENTs. ----------------------------------------------------------------- RETURN TO PREVIOUS POSITION AFTER LEAPING I find this one especially useful! Anytime to leap somewhere to edit a part of the text, you can get back to where you were by doing the following: Highlight the text with [LEAP ->] [<- LEAP] then CREEP to the side you'd like to go. ----------------------------------------------------------------- MOVE A PARAGRAPH Highlight from the RETURN before the start of the paragraph to the one after the end. Leap to the line you'd like the selection to go. ----------------------------------------------------------------- MOVE A SENTENCE Highlight from the first letter of the sentence (or the space, if it follows a period) up to the finishing period. Leap to the place you'd like the selection to go to. ################################################################## GOING FURTHER I hope you've enjoyed reading this manual and that you've learned a thing on two! Practice makes perfect, and the best you can do is to apply your knowledge: go ahead and start writing! After a little bit, you'll even forget about bitters and only care about what you write. That's the place you want to be in. There's great documentation of the Canon Cat, and I highly recommend giving them a look. You can find it on www.canoncat.net. ~~ QUESTIONS? COMMENTS? Let me know! You can contact me at m15o at posteo dot net Thanks for reading!