System 59 Introduction System 59 is a basic window system together with a basic terminal emulator. It can be a comfortable programming environment if Vim and Bash are all you need to be productive. System 59 is written in C, runs on Linux, and has few runtime dependencies (systemd-logind, libsystemd, libudev, libdrm). Here are the user-commands implemented by System 59: META+ESC Exit. META+TAB Move focus to the next window. META+1 Move focus to workspace 1. META+2 Move focus to workspace 2. META+3 Move focus to workspace 3. META+4 Move focus to workspace 4. META+F1 Switch to VT 1. META+F2 Switch to VT 2. META+F3 Switch to VT 3. META+F4 Switch to VT 4. META+T Start a terminal emulator in the focused window. META+G Start an application launcher in the focused window. Here are the message types in the System 59 client-server protocol: WELCOME SHOW BUFFER_UNLOCKED KEYBOARD_EVENT KEYBOARD_ATTACHED KEYBOARD_DETACHED RESET RESET_COMPLETED Notes The keymap is configured like so (you can also choose dvorak, or write your own): $ cp keymap-qwerty.c keymap.c To use the terminal, you need to install the terminfo entry. The following will create ~/.terminfo/e/ebt. $ tic ebt.info Use GNU Make to build: $ make The client programs ("term", "germ", etc) must be in $PATH. An easy solution is the following: $ PATH=$PATH:$PWD ./shell See also http://norstrulde.org/system59