λ Ocelot

(define-operating-system ocelot …)

The Ocelot operating system is a Lisp Machine-inspired, developer-oriented Linux distribution, based on NixOS. The driving idea behind Ocelot is that everything running on a computer, from the kernel to the user interface, should be easily, instantly, and safely extensible by the user.

Design Principles

Exploratory programming for your entire system.

The Nix package manager and a powerful Emacs-based UI come together to make systems development safer, easier, and faster. Prototype changes to your live system in Lisp, then use Nix to make your modifications reproducible across systems.

Text is powerful.

Since the beginning of computing, nothing has ever surpassed well-rendered text and keyboards in human interface efficiency. Ocelot's text-first, graphics-optional UI is fully customizable, and allows you to establish fast keyboard mnemonics to make any task feel as natural as editing text.

Always practical.

Ocelot has been a fully functional operating system from the beginning, backed by the modern Linux kernel's hardware support. Graphical applications blend naturally into the Emacs-based UI, and support many of the same editor actions as text-based apps.

Installation

From an existing NixOS installation

  1. Install NixOS if you don't already have it.
  2. As a user with wheel (sudo) access, clone Ocelot into your home directory:

    git clone https://github.com/ocelot-project/ocelot ~/ocelot

  3. Create a symbolic link to it in /etc/nixos:

    cd ~
    sudo ln -s ocelot /etc/nixos/ocelot

  4. Add a ./ocelot entry to your/etc/nixos/configuration.nix imports:

    imports =
      [
        ./hardware-configuration.nix
        # ...
        ./ocelot
      ];

  5. Set up Ocelot-related options in configuration.nix if desired.
  6. Run sudo nixos-rebuild switch.
  7. Logout of your current session and you should see the Ocelot Login Manager (olman) appear.
  8. Choose a graphical or textmode Emacs session. Ocelot should either pick up your existing Emacs configuration, or offer to create a new one.