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