Lem
GitHubDiscord Matrix Toggle Dark/Light/Auto modeToggle Dark/Light/Auto modeToggle Dark/Light/Auto modeBack to homepage

Lem ncurses

Linux AppImage, MacOS and Windows binaries

Lem has nightly releases! for Linux, MacOS and Windows.

How to Fix “App Is Damaged and Can’t Be Opened” on OSX

Copy the app file to the applications folder and type the following in your terminal:

xattr -d com.apple.quarantine /Applications/lem.app

Installation with Docker

Use the ready-to-use Lem image in the GitHub Container Registry:

$ docker run --rm -it ghcr.io/lem-project/lem:latest

or clone the Lem repository and build the Docker image:

$ docker build -t lem .

You can now run it:

$ docker run --rm -it -v .:/shared lem

Debian/Mint/Ubuntu

There is an automatic installer that works on Debian, Linux Mint and Ubuntu.

Before that, install the dependencies:

sudo apt install sbcl curl git

Now, run the command that will install Lem:

The sh script is located here https://lem-project.github.io/linux_installer.sh which downloads

the lisp file that is interpreted for SBCL, it can be checked here https://lem-project.github.io/linux-installer.lisp

curl -L https://lem-project.github.io/linux_installer.sh | bash

Important places from the script installation:

  • $HOME/common-lisp/lem (Lem installation location)
  • /usr/local/bin/lem (Lem symlink)

Installation from scratch

Optional dependencies

This is a list of optional programs that we advise to install along of Lem:

fd
  • fd or fd-find on Debian repositories: if present, Lem will use it in commands that find files recursively (see Usage: Opening Files). fd respects .gitignore by default and ignores common large development directories such as node_modules/. If it isn’t present, Lem will fallback to a full Lisp solution.

Install SBCL and ncurses library

  • Debian-like distro
sudo apt install sbcl libncurses5-dev build-essential fd-find
  • Fedora
sudo yum install sbcl ncurses-devel make automake gcc gcc-c++ fd-find
  • OpenSuse
sudo zypper install sbcl ncurses-devel make devel_basis fd

Install qlot

  • Automatic installer
curl -L https://qlot.tech/installer | bash

For an alternative installation, https://github.com/fukamachi/qlot#installation

Build the executables

  • Create the directories
mkdir $HOME/common-lisp && cd $HOME/common-lisp
git clone https://github.com/lem-project/lem.git
cd lem && make ncurses

or run make sdl2-ncurses to build Lem with the two interfaces in it. Then choose the interface at startup with -i / --interface, either “sdl2” or “ncurses”.

Add the executable to PATH

  • Copying the PATH to ~/.bashrc
export PATH="$HOME/common-lisp/lem:$PATH"

Installation with roswell (deprecated)

Note: the installation with Roswell is deprecated.

Please install roswell at first, Roswell Installation Guide.

After that, please follow the steps bellow.

  1. Install lem by roswell
$ ros follow-dependency=t install lem-project/lem
  1. Add the PATH in the initialization file (such as ~/.bashrc)
export PATH=$PATH:~/.roswell/bin

Japanese Industrial Standard keyboard layout

If your keyboard is a JIS layout, you need to put the following settings in $HOME/.lem/init.lisp

#+lem-sdl2
(lem-sdl2:set-keyboard-layout :jis)