lite-xl is a free, open source ides & code editors project written in Lua and released under MIT. It has 6,387 GitHub stars, 317 forks and 330 open issues, and was last pushed 6 months ago. On this registry it ranks #11 of 12 tracked projects in IDEs & Code Editors, with 5 head-to-head comparisons available.

What is lite-xl?

Lite XL is a lightweight text editor written mostly in Lua and built on SDL2, released under the MIT licence for developers who want a small, fast, extensible editor whose entire source they can read and change.

What it is

Lite XL is a text editor derived from lite (rxi/lite). Most of it is written in Lua, with a C core sitting on SDL2, and the project states its aim as providing something practical, pretty, small and fast that is easy to modify and extend, or to use without doing either. Against lite, the stated goals are to be more user friendly, to improve the quality of font rendering, and to reduce CPU usage.

The concrete problem it solves is the gap between lite's minimalism and everyday desktop use. Lite XL keeps the small footprint and Lua-level customisation of its ancestor while adding high DPI display support on Windows and Linux and retina display support on macOS since release 1.16.7, together with the font rendering and CPU improvements above. It remains compatible with lite for most plugins and all colour themes, so a user migrating from lite does not start over; where adaptations are needed the project maintains a separate lite-xl-plugins repository and records the differences in its changelog.

Key capabilities

  • A Lua plugin system, with additional functionality published in the plugins repository and the dedicated lite-xl-plugins repository.
  • Colour themes bundled with all releases by default, with a further colours repository available.
  • High DPI display support on Windows and Linux, and retina display support on macOS from release 1.16.7.
  • Compatibility with lite for most plugins and all colour themes.
  • A Meson (>=0.63) and Ninja build against SDL2, PCRE2, FreeType2, Lua 5.4 and a C compiler such as GCC, Clang or MSVC.
  • A scripts/build.sh build script offering options including --bundle for a macOS App bundle, --portable for a portable binary package, --pgo for profile guided optimisations, --debug-build and --forcefallback.
  • Cross compilation through --cross-platform and --cross-arch, using cross files located in resources/cross.

Who uses it and how

  • Developers on high DPI or retina screens, who depend on the display support added for Windows, Linux and macOS.
  • Existing lite users who want the more user friendly behaviour, better font rendering and lower CPU usage while keeping their plugin and theme setup intact.
  • Linux packagers and release engineers: official releases are packaged in the lite-xl-build-box environment, and an Ubuntu build requires packages such as libsdl2-dev, wayland-protocols, libX11-devel, libXi-devel, libxkbcommon-devel, libXrandr-devel, dbus-devel and ibus-devel for the SDL2 X11 and Wayland backends.
  • macOS builders, who must install bash via Brew because the default macOS bash version is antiquated and may not run the build script correctly.
  • Windows users taking the official downloads rather than MSVC-compiled binaries, since MSVC is used in CI but those binaries are not distributed officially or tested extensively for bugs.

Getting started

Download a prebuilt binary for Windows, Linux or macOS from the project website, or build from source with scripts/build.sh after installing Meson, Ninja, SDL2, PCRE2, FreeType2, Lua 5.4 and a working C compiler.

How it compares

The facts name one close relative: lite (rxi/lite), the editor Lite XL is derived from and the tool it effectively replaces for users who want more polish. Lite XL retains lite's Lua customisation model and its plugin and theme compatibility, and separates itself by targeting more user friendly behaviour, better font rendering and lower CPU usage.

When to use it — and when not to

Self-hosting means owning the build toolchain: Meson >=0.63, Ninja, SDL2, PCRE2, FreeType2, Lua 5.4 and a C compiler, plus the X11 and Wayland development headers on Linux and a newer bash from Brew on macOS. Anyone who wants a batteries-included IDE with a managed plugin marketplace, or an MSVC-built Windows binary, should look elsewhere, because MSVC-compiled binaries are neither officially distributed nor extensively tested. The repository also carries a long tail of 330 open issues, so users who need fast turnaround on bug reports should weigh that before committing.

project readme (upstream, from github) — read inline

Lite XL

![CI] ![Discord Badge Image]

![screenshot-dark]

A lightweight text editor written in Lua, adapted from [lite].

  • [Get Lite XL] — Download for Windows, Linux and Mac OS.
  • [Get plugins] — Add additional functionality, adapted for Lite XL.
  • [Get color themes] — Add additional colors themes.

Please refer to our [website] for the user and developer documentation, including [build] instructions details. A quick build guide is described below.

Lite XL has support for high DPI display on Windows and Linux and, since 1.16.7 release, it supports retina displays on macOS.

Please note that Lite XL is compatible with lite for most plugins and all color themes. We provide a separate lite-xl-plugins repository for Lite XL, because in some cases some adaptations may be needed to make them work better with Lite XL. The repository with modified plugins is https://github.com/lite-xl/lite-xl-plugins.

The changes and differences between Lite XL and rxi/lite are listed in the [changelog].

Overview

Lite XL is derived from [lite]. It is a lightweight text editor written mostly in Lua — it aims to provide something practical, pretty, small and fast easy to modify and extend, or to use without doing either.

The aim of Lite XL compared to lite is to be more user friendly, improve the quality of font rendering, and reduce CPU usage.

Customization

Additional functionality can be added through plugins which are available in the [plugins repository] or in the [Lite XL plugins repository].

Additional color themes can be found in the [colors repository]. These color themes are bundled with all releases of Lite XL by default.

Quick Build Guide

To compile Lite XL yourself, you must have the following dependencies installed via your desired package manager, or manually.

Prerequisites

  • Meson (>=0.63)
  • Ninja
  • SDL2
  • PCRE2
  • FreeType2
  • Lua 5.4
  • A working C compiler (GCC / Clang / MSVC)

SDL2, PCRE2, FreeType2 and Lua will be downloaded by Meson if --wrap-mode=forcefallback or --wrap-mode=default is specified.

[!NOTE] MSVC is used in the CI, but MSVC-compiled binaries are not distributed officially or tested extensively for bugs.

On Linux, you may install the following dependencies for the SDL2 X11 and/or Wayland backend to work properly:

  • libX11-devel
  • libXi-devel
  • libXcursor-devel
  • libxkbcommon-devel
  • libXrandr-devel
  • wayland-devel
  • wayland-protocols-devel
  • dbus-devel
  • ibus-devel

The following command can be used to install the dependencies in Ubuntu:

apt-get install python3.8 python3-pip build-essential git cmake wayland-protocols libsdl2-dev
pip3 install meson ninja

Please refer to [lite-xl-build-box] for a working Linux build environment used to package official Lite XL releases.

On macOS, you must install bash via Brew, as the default bash version on macOS is antiquated and may not run the build script correctly.

Building

You can use scripts/build.sh to set up Lite XL and build it.

$ bash build.sh --help
# Usage: scripts/build.sh <OPTIONS>
# 
# Available options:
# 
# -b --builddir DIRNAME         Sets the name of the build directory (not path).
#                               Default: 'build-x86_64-linux'.
#    --debug                    Debug this script.
# -f --forcefallback            Force to build dependencies statically.
# -h --help                     Show this help and exit.
# -d --debug-build              Builds a debug build.
# -p --prefix PREFIX            Install directory prefix. Default: '/'.
# -B --bundle                   Create an App bundle (macOS only)
# -A --addons                   Add in addons
# -P --portable                 Create a portable binary package.
# -r --reconfigure              Tries to reuse the meson build directory, if possible.
#                               Default: Deletes the build directory and recreates it.
# -O --pgo                      Use profile guided optimizations (pgo).
#                               macOS: disabled when used with --bundle,
#                               Windows: Implicit being the only option.
#    --cross-platform PLATFORM  Cross compile for this platform.
#                               The script will find the appropriate
#                               cross file in 'resources/cross'.
#    --cross-arch ARCH          Cross compile for this architecture.
#                               The script will find the appropriate
#                               cross file in 'resources/cross'.
#    --cross-file CROSS_FILE    Cross compile with the given cross file.

Alternatively, you can use the following commands to customize the build:

meson setup --buildtype=release --prefix <prefix> build
meson compile -C build
DESTDIR="$(pwd)/lite-xl" meson install --skip-subprojects -C build

where `` might be one of /, /usr or /opt, the default is /. To build a bundle application on macOS:

meson setup --buildtype=release --Dbundle=true --prefix / build
meson compile -C build
DESTDIR="$(pwd)/Lite XL.app" meson install --skip-subprojects -C build

Please note that the package is relocatable to any prefix and the option prefix affects only the place where the application is actually installed.

Installing Prebuilt

Head over to releases and download the version for your operating system.

The prebuilt releases supports the following OSes:

  • Windows 7 and above
  • Ubuntu 18.04 and above (glibc 2.27 and above)
  • OS X El Capitan and above (version 10.11 and above)

Some distributions may provide custom binaries for their platforms.

Windows

Lite XL comes with installers on Windows for typical installations. Alternatively, we provide ZIP archives that you can download and extract anywhere and run directly.

To make Lite XL portable (e.g. running Lite XL from a thumb drive), simply create a user folder where lite-xl.exe is located. Lite XL will load and store all your configurations and plugins in the folder.

macOS

We provide DMG files for macOS. Simply drag the program into your Applications folder.

Important Newer versions of Lite XL are signed with a self-signed certificate, so you'll have to follow these steps when running Lite XL for the first time.

  1. Find Lite XL in Finder (do not open it in Launchpad).
  2. Control-click Lite XL, then choose Open from the shortcut menu.
  3. Click Open in the popup menu.

The correct steps may vary between macOS versions, so you should refer to the macOS User Guide.

On an older version of Lite XL, you will need to run these commands instead:

# clears attributes from the directory
xattr -cr /Applications/Lite\ XL.app

Otherwise, macOS will display a very misleading error saying that the application is damaged.

Linux

Unzip the file and cd into the lite-xl directory:

tar -xzf <file>
cd lite-xl

To run lite-xl without installing:

./lite-xl

To install lite-xl copy files over into appropriate directories:

rm -rf  $HOME/.local/share/lite-xl $HOME/.local/bin/lite-xl
mkdir -p $HOME/.local/bin && cp lite-xl $HOME/.local/bin/
mkdir -p $HOME/.local/share/lite-xl && cp -r data/* $HOME/.local/share/lite-xl/
Add Lite XL to PATH

To run Lite XL from the command line, you must add it to PATH.

If $HOME/.local/bin is not in PATH:

echo -e 'export PATH=$PATH:$HOME/.local/bin' >> $HOME/.bashrc

Alternatively on recent versions of GNOME and KDE Plasma, you can add $HOME/.local/bin to PATH via ~/.config/environment.d/envvars.conf:

PATH=$HOME/.local/bin:$PATH

Note Some systems might not load .bashrc when logging in. This can cause problems with launching applications from the desktop / menu.

Add Lite XL to application launchers

To get the icon to show up in app launcher, you need to create a desktop entry and put it into /usr/share/applications or ~/.local/share/applications.

Here is an example for a desktop entry in ~/.local/share/applications/com.lite_xl.LiteXL.desktop, assuming Lite XL is in PATH:

[Desktop Entry]
Type=Application
Name=Lite XL
Comment=A lightweight text editor written in Lua
Exec=lite-xl %F
Icon=lite-xl
Terminal=false
StartupWMClass=lite-xl
Categories=Development;IDE;
MimeType=text/plain;inode/directory;

To get the icon to show up in app launcher immediately, run:

xdg-desktop-menu forceupdate

Alternatively, you may log out and log in again.

Uninstall

To uninstall Lite XL, run:

rm -f $HOME/.local/bin/lite-xl
rm -rf $HOME/.local/share/icons/hicolor/scalable/apps/lite-xl.svg \
          $HOME/.local/share/applications/com.lite_xl.LiteXL.desktop \
          $HOME/.local/share/metainfo/co

readme truncated — read the full docs on github

Frequently asked questions

Is lite-xl free to use?

lite-xl is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does lite-xl do?

A lightweight text editor written in Lua

What is lite-xl written in?

lite-xl is primarily written in Lua. Its source is publicly available at https://github.com/lite-xl/lite-xl, and it has 6,387 GitHub stars.