This month I spent much time programming on rlworkbench.
After being inspired by the Canon Cat and The Humane Interface I decided to design the editor interface to be modeless. The first step I took towards that was to eliminate the modal interface that I had created at first and then implement LEAP for cursor movement. I wrote a little about that in Editor Navigation Progress. I also wrote a note with some thoughts about modeless interfaces.
Another important thing that I did this month was to replace Vim with rlworkbench as my default editor. I now have this setup:
$ which vim ~/.local/bin/vim $ cat ~/.local/bin/vim #!/usr/bin/env bash exec ~/.local/bin/rlworkbench/rlworkbench_sdl.sh "$@"
If it hurts too much to use rlworkbench for an editing task, I have to explicitly type /usr/bin/vim. This gives me good feedback on what to work on next to make rlworkbench a worthy replacement for Vim.
I also recorded demos of new features that I implemented. I collected them in a Youtube playlist. At the time of this writing, the following demos exist:
select + delete
copy + paste
extend selection to line boundaries
selection and copy/paste with the mouse
select mode
filter selection through external program
Even though I've made lots of progress on rlworkbench this month, there is still a lot left before it is "production ready" for the masses. One limitation at the moment is that it only supports ASCII. I've spent some time reading about Unicode and thought about how to support that. It's quite tricky if you want to support all of Unicode, but I think I can add support for incrementally larger subsets.
I also might want to make rlworkbench support editing "rich text" documents. So I spent some time reading and thinking about how to represent such documents. For now, this is not a priority to implement though.
Also, this month I learned that copy and paste only works if the program that you copy from is still running. Did you know that? I wonder if this is only on Linux, or other operating systems as well?
Here are the things that I'm currently most interested in working on next month:
Continue making it a worthy replacement for Vim
Continue practice interface design
Migrate all blog posts to it
Make different post types render nicely (bookmarks, runs, notes, posts)
Write blog post about minimalist approach to monitoring servers (mentioned in newsletter)
Continue course and do more homework
What is Rickard working on and thinking about right now?
Every month I write a newsletter about just that. You will get updates about my current projects and thoughts about programming, and also get a chance to hit reply and interact with me. Subscribe to it below.