2020-06-21 17:11:01 +02:00
|
|
|
# Lite XL
|
2019-12-28 12:16:32 +01:00
|
|
|
|
2021-08-14 11:18:16 +02:00
|
|
|
[![CI]](https://github.com/lite-xl/lite-xl/actions/workflows/build.yml)
|
2023-09-28 10:16:13 +02:00
|
|
|
[![Discord Badge Image]](https://discord.gg/UQKnzBhY5H)
|
2019-12-28 12:16:32 +01:00
|
|
|
|
2021-06-03 18:57:26 +02:00
|
|
|
![screenshot-dark]
|
2020-06-21 17:11:01 +02:00
|
|
|
|
2021-06-03 18:57:26 +02:00
|
|
|
A lightweight text editor written in Lua, adapted from [lite].
|
2020-05-08 21:07:15 +02:00
|
|
|
|
2021-09-04 17:24:08 +02:00
|
|
|
* **[Get Lite XL]** — Download for Windows, Linux and Mac OS.
|
2021-06-03 18:57:26 +02:00
|
|
|
* **[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,
|
2021-08-11 20:33:25 +02:00
|
|
|
including [build] instructions details. A quick build guide is described below.
|
2021-06-03 18:57:26 +02:00
|
|
|
|
|
|
|
Lite XL has support for high DPI display on Windows and Linux and,
|
|
|
|
since 1.16.7 release, it supports **retina displays** on macOS.
|
2021-05-02 09:33:58 +02:00
|
|
|
|
2021-03-13 16:20:36 +01:00
|
|
|
Please note that Lite XL is compatible with lite for most plugins and all color themes.
|
2021-12-18 21:43:44 +01:00
|
|
|
We provide a separate lite-xl-plugins repository for Lite XL, because in some cases
|
2021-06-03 18:57:26 +02:00
|
|
|
some adaptations may be needed to make them work better with Lite XL.
|
2021-12-18 21:42:57 +01:00
|
|
|
The repository with modified plugins is https://github.com/lite-xl/lite-xl-plugins.
|
2020-12-16 18:05:41 +01:00
|
|
|
|
2021-06-03 18:57:26 +02:00
|
|
|
The changes and differences between Lite XL and rxi/lite are listed in the
|
|
|
|
[changelog].
|
2020-06-28 18:28:00 +02:00
|
|
|
|
2019-12-28 12:16:32 +01:00
|
|
|
## Overview
|
2021-05-02 09:33:58 +02:00
|
|
|
|
2022-08-07 23:09:54 +02:00
|
|
|
Lite XL is derived from [lite].
|
2021-06-03 18:57:26 +02:00
|
|
|
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.
|
2020-06-21 17:11:01 +02:00
|
|
|
|
2021-06-03 18:57:26 +02:00
|
|
|
The aim of Lite XL compared to lite is to be more user friendly,
|
|
|
|
improve the quality of font rendering, and reduce CPU usage.
|
2019-12-28 12:16:32 +01:00
|
|
|
|
2020-05-08 21:07:15 +02:00
|
|
|
## Customization
|
2021-06-03 18:57:26 +02:00
|
|
|
|
2021-03-13 16:20:36 +01:00
|
|
|
Additional functionality can be added through plugins which are available in
|
2021-06-03 18:57:26 +02:00
|
|
|
the [plugins repository] or in the [Lite XL plugins repository].
|
2021-03-13 16:20:36 +01:00
|
|
|
|
2021-06-03 18:57:26 +02:00
|
|
|
Additional color themes can be found in the [colors repository].
|
2021-03-13 16:20:36 +01:00
|
|
|
These color themes are bundled with all releases of Lite XL by default.
|
|
|
|
|
2021-08-11 20:33:25 +02:00
|
|
|
## Quick Build Guide
|
|
|
|
|
2024-11-25 13:32:21 +01:00
|
|
|
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:
|
2021-08-11 20:33:25 +02:00
|
|
|
|
|
|
|
```sh
|
2024-11-25 13:32:21 +01:00
|
|
|
apt-get install python3.8 python3-pip build-essential git cmake wayland-protocols libsdl2-dev
|
|
|
|
pip3 install meson ninja
|
2021-08-11 20:33:25 +02:00
|
|
|
```
|
|
|
|
|
2024-11-25 13:32:21 +01:00
|
|
|
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.
|
|
|
|
|
|
|
|
```sh
|
|
|
|
$ 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.
|
|
|
|
```
|
2021-08-11 20:33:25 +02:00
|
|
|
|
2024-11-25 13:32:21 +01:00
|
|
|
Alternatively, you can use the following commands to customize the build:
|
2021-08-11 20:33:25 +02:00
|
|
|
|
|
|
|
```sh
|
|
|
|
meson setup --buildtype=release --prefix <prefix> build
|
|
|
|
meson compile -C build
|
|
|
|
DESTDIR="$(pwd)/lite-xl" meson install --skip-subprojects -C build
|
|
|
|
```
|
|
|
|
|
2021-08-29 10:15:55 +02:00
|
|
|
where `<prefix>` might be one of `/`, `/usr` or `/opt`, the default is `/`.
|
|
|
|
To build a bundle application on macOS:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
meson setup --buildtype=release --Dbundle=true --prefix / build
|
|
|
|
meson compile -C build
|
|
|
|
DESTDIR="$(pwd)/Lite XL.app" meson install --skip-subprojects -C build
|
|
|
|
```
|
|
|
|
|
2021-08-11 20:33:25 +02:00
|
|
|
Please note that the package is relocatable to any prefix and the option prefix
|
|
|
|
affects only the place where the application is actually installed.
|
|
|
|
|
2021-11-02 20:14:13 +01:00
|
|
|
## Installing Prebuilt
|
|
|
|
|
|
|
|
Head over to [releases](https://github.com/lite-xl/lite-xl/releases) and download the version for your operating system.
|
|
|
|
|
2024-02-06 01:49:41 +01:00
|
|
|
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.
|
|
|
|
|
2023-10-11 18:24:42 +02:00
|
|
|
### 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**
|
2023-11-10 02:36:44 +01:00
|
|
|
> 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](https://support.apple.com/en-my/guide/mac-help/mh40616/mac).
|
|
|
|
>
|
|
|
|
> On an older version of Lite XL, you will need to run these commands instead:
|
2023-10-11 18:24:42 +02:00
|
|
|
>
|
|
|
|
> ```sh
|
|
|
|
> # 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.
|
|
|
|
|
2021-11-11 00:56:32 +01:00
|
|
|
### Linux
|
2021-11-02 20:14:13 +01:00
|
|
|
|
|
|
|
Unzip the file and `cd` into the `lite-xl` directory:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
tar -xzf <file>
|
|
|
|
cd lite-xl
|
|
|
|
```
|
|
|
|
|
2021-11-11 00:56:32 +01:00
|
|
|
To run lite-xl without installing:
|
2023-10-11 18:24:42 +02:00
|
|
|
|
2021-11-11 00:56:32 +01:00
|
|
|
```sh
|
|
|
|
./lite-xl
|
|
|
|
```
|
|
|
|
|
|
|
|
To install lite-xl copy files over into appropriate directories:
|
2021-11-02 20:14:13 +01:00
|
|
|
|
|
|
|
```sh
|
2023-08-04 15:46:35 +02:00
|
|
|
rm -rf $HOME/.local/share/lite-xl $HOME/.local/bin/lite-xl
|
2023-08-04 15:41:49 +02:00
|
|
|
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/
|
2021-11-02 20:14:13 +01:00
|
|
|
```
|
|
|
|
|
2023-10-11 18:24:42 +02:00
|
|
|
#### Add Lite XL to PATH
|
|
|
|
|
|
|
|
To run Lite XL from the command line, you must add it to PATH.
|
|
|
|
|
2021-11-02 20:14:13 +01:00
|
|
|
If `$HOME/.local/bin` is not in PATH:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
echo -e 'export PATH=$PATH:$HOME/.local/bin' >> $HOME/.bashrc
|
|
|
|
```
|
|
|
|
|
2023-10-11 18:24:42 +02:00
|
|
|
Alternatively on recent versions of GNOME and KDE Plasma,
|
|
|
|
you can add `$HOME/.local/bin` to PATH via `~/.config/environment.d/envvars.conf`:
|
|
|
|
|
|
|
|
```ini
|
|
|
|
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:
|
|
|
|
|
|
|
|
```ini
|
|
|
|
[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:
|
2021-11-02 20:14:13 +01:00
|
|
|
|
|
|
|
```sh
|
|
|
|
xdg-desktop-menu forceupdate
|
|
|
|
```
|
|
|
|
|
2023-10-11 18:24:42 +02:00
|
|
|
Alternatively, you may log out and log in again.
|
2021-11-02 20:14:13 +01:00
|
|
|
|
2023-10-11 18:24:42 +02:00
|
|
|
#### Uninstall
|
|
|
|
|
|
|
|
To uninstall Lite XL, run:
|
2021-11-02 20:14:13 +01:00
|
|
|
|
|
|
|
```sh
|
|
|
|
rm -f $HOME/.local/bin/lite-xl
|
|
|
|
rm -rf $HOME/.local/share/icons/hicolor/scalable/apps/lite-xl.svg \
|
2023-06-09 15:18:02 +02:00
|
|
|
$HOME/.local/share/applications/com.lite_xl.LiteXL.desktop \
|
|
|
|
$HOME/.local/share/metainfo/com.lite_xl.LiteXL.appdata.xml \
|
2021-11-11 00:56:32 +01:00
|
|
|
$HOME/.local/share/lite-xl
|
2021-11-02 20:14:13 +01:00
|
|
|
```
|
|
|
|
|
2019-12-28 12:16:32 +01:00
|
|
|
## Contributing
|
2021-06-03 18:57:26 +02:00
|
|
|
|
2019-12-28 12:16:32 +01:00
|
|
|
Any additional functionality that can be added through a plugin should be done
|
2021-12-18 21:42:57 +01:00
|
|
|
as a plugin, after which a pull request to the [Lite XL plugins repository] can be made.
|
2021-03-13 16:20:36 +01:00
|
|
|
|
2020-06-21 17:11:01 +02:00
|
|
|
Pull requests to improve or modify the editor itself are welcome.
|
2019-12-28 12:16:32 +01:00
|
|
|
|
2021-06-03 18:57:26 +02:00
|
|
|
## Licenses
|
|
|
|
|
2019-12-28 12:16:32 +01:00
|
|
|
This project is free software; you can redistribute it and/or modify it under
|
2021-06-03 18:57:26 +02:00
|
|
|
the terms of the MIT license. See [LICENSE] for details.
|
|
|
|
|
|
|
|
See the [licenses] file for details on licenses used by the required dependencies.
|
|
|
|
|
|
|
|
|
2021-08-14 11:18:16 +02:00
|
|
|
[CI]: https://github.com/lite-xl/lite-xl/actions/workflows/build.yml/badge.svg
|
2021-06-03 18:57:26 +02:00
|
|
|
[Discord Badge Image]: https://img.shields.io/discord/847122429742809208?label=discord&logo=discord
|
|
|
|
[screenshot-dark]: https://user-images.githubusercontent.com/433545/111063905-66943980-84b1-11eb-9040-3876f1133b20.png
|
|
|
|
[lite]: https://github.com/rxi/lite
|
2021-12-18 21:42:57 +01:00
|
|
|
[website]: https://lite-xl.com
|
2022-08-07 23:09:54 +02:00
|
|
|
[build]: https://lite-xl.com/en/documentation/build
|
2021-12-18 21:42:57 +01:00
|
|
|
[Get Lite XL]: https://github.com/lite-xl/lite-xl/releases/latest
|
|
|
|
[Get plugins]: https://github.com/lite-xl/lite-xl-plugins
|
2021-12-19 04:37:33 +01:00
|
|
|
[Get color themes]: https://github.com/lite-xl/lite-xl-colors
|
2021-12-18 21:42:57 +01:00
|
|
|
[changelog]: https://github.com/lite-xl/lite-xl/blob/master/changelog.md
|
2021-12-18 21:43:44 +01:00
|
|
|
[Lite XL plugins repository]: https://github.com/lite-xl/lite-xl-plugins
|
2022-03-06 06:59:22 +01:00
|
|
|
[plugins repository]: https://github.com/rxi/lite-plugins
|
2021-12-19 04:37:33 +01:00
|
|
|
[colors repository]: https://github.com/lite-xl/lite-xl-colors
|
2021-06-03 18:57:26 +02:00
|
|
|
[LICENSE]: LICENSE
|
|
|
|
[licenses]: licenses/licenses.md
|
2024-11-25 13:32:21 +01:00
|
|
|
[lite-xl-build-box]: https://github.com/lite-xl/lite-xl-build-box
|