lite-xl/README.md

127 lines
5.5 KiB
Markdown
Raw Normal View History

2020-06-21 17:11:01 +02:00
# Lite XL
2019-12-28 12:16:32 +01:00
2021-03-20 18:54:45 +01:00
![screenshot-dark](https://user-images.githubusercontent.com/433545/111063905-66943980-84b1-11eb-9040-3876f1133b20.png)
2019-12-28 12:16:32 +01:00
2021-03-13 16:20:36 +01:00
A lightweight text editor written in Lua, adapted from [lite](https://github.com/rxi/lite)
2020-06-21 17:11:01 +02:00
2020-12-16 18:05:41 +01:00
* **[Get Lite XL](https://github.com/franko/lite-xl/releases/latest)** — Download
for Windows, Linux and Mac OS (notarized app).
* **[Get started](doc/usage.md)** — A quick overview on how to get started
2020-12-16 18:05:41 +01:00
* **[Get plugins](https://github.com/franko/lite-plugins)** — Add additional
functionality, adapted for Lite XL
2020-05-08 21:07:15 +02:00
* **[Get color themes](https://github.com/rxi/lite-colors)** — Add additional colors
themes
Lite XL has support for high DPI display on Windows and Linux and, since 1.16.7 release, it supports **retina displays** on Mac OS.
2021-03-13 16:20:36 +01:00
Please note that Lite XL is compatible with lite for most plugins and all color themes.
We provide a separate lite-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 http://github.com/franko/lite-plugins.
2020-12-16 18:05:41 +01:00
The changes and differences between Lite XL and rxi/lite are listed in the [changelog](https://github.com/franko/lite-xl/blob/master/changelog.md).
2020-06-28 18:28:00 +02:00
2019-12-28 12:16:32 +01:00
## Overview
2021-03-13 16:20:36 +01:00
Lite XL is derived from lite. It is a lightweight text editor written mostly in Lua — it aims to provide
2020-06-21 17:11:01 +02:00
something practical, pretty, *small* and fast easy to modify and extend, or to use without doing either.
2021-03-13 16:20:36 +01: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-03-13 16:20:36 +01:00
Additional functionality can be added through plugins which are available in
the [plugins repository](https://github.com/rxi/lite-plugins) or in the [Lite XL-specific plugins repository](https://github.com/franko/lite-plugins).
Additional color themes can be found in the [colors repository](https://github.com/rxi/lite-colors).
These color themes are bundled with all releases of Lite XL by default.
The editor can be customized by making changes to the [user module](data/user/init.lua).
2019-12-28 12:16:32 +01:00
## Building
2020-07-04 22:07:12 +02:00
2021-03-13 16:20:36 +01:00
You can build Lite XL yourself using Meson.
2020-12-16 18:05:41 +01:00
2021-04-19 16:45:20 +02:00
In addition, the `build-packages.sh` script can be used to compile Lite XL and create an OS-specific package for Linux, Windows or Mac OS.
2020-06-21 17:11:01 +02:00
The following libraries are required:
- freetype2
- SDL2
The following libraries are **optional**:
2021-03-13 16:20:36 +01:00
- libagg
- Lua 5.2
2020-07-04 22:07:12 +02:00
2021-03-13 16:20:36 +01:00
If they are not found, they will be downloaded and compiled by Meson.
Otherwise, if they are present, they will be used to compile Lite XL.
On Debian-based systems the required libraries and Meson can be installed using the following commands:
2019-12-28 12:16:32 +01:00
2020-06-21 17:11:01 +02:00
```sh
# To install the required libraries:
2020-07-04 22:07:12 +02:00
sudo apt install libfreetype6-dev libsdl2-dev
2020-06-21 17:11:01 +02:00
# To install Meson:
sudo apt install meson
# or pip3 install --user meson
```
2020-07-04 22:07:12 +02:00
To build Lite XL with Meson the commands below can be used:
2020-06-21 17:11:01 +02:00
```sh
meson setup --buildtype=release build
2020-12-16 18:05:41 +01:00
meson compile -C build
meson install -C build
2020-06-21 17:11:01 +02:00
```
2020-07-04 22:07:12 +02:00
If you are using a version of Meson below 0.54 you need to use diffent commands to compile and install:
```sh
meson setup --buildtype=release build
ninja -C build
ninja -C build install
```
When performing the `meson setup` command you may enable the `-Dportable=true` option to specify whether files should be installed as in a portable application.
If `portable` is enabled, Lite XL is built to use a `data` directory placed next to the executable.
Otherwise, Lite XL will use unix-like directory locations.
In this case, the `data` directory will be `$prefix/share/lite-xl` and the executable will be located in `$prefix/bin`.
`$prefix` is determined when the application starts as a directory such that `$prefix/bin` corresponds to the location of the executable.
The `user` directory does not depend on the `portable` option and will always be `$HOME/.config/lite-xl`.
2021-03-13 16:20:36 +01:00
`$HOME` is determined from the corresponding environment variable.
As a special case on Windows the variable `$USERPROFILE` will be used instead.
2021-03-13 16:20:36 +01:00
If you compile Lite XL yourself, it is recommended to use the script `build-packages.sh`:
2020-07-04 22:07:12 +02:00
```sh
bash build-packages.sh <arch>
2020-07-04 22:07:12 +02:00
```
2021-04-19 16:45:20 +02:00
The script will run Meson and create a zip file with the application or, for linux, a tar compressed archive.
Lite XL can be easily installed by unpacking the archive in any directory of your choice.
On Windows two packages will be created, one called "portable" using the "data" folder next to the executable and
the other one using a unix-like file layout. Both packages works correctly. The one with unix-like file layout
is meant for people using a unix-like shell and the command line.
2021-03-13 16:20:36 +01:00
Please note that there aren't any hard-coded directories in the executable, so that the
package can be extracted and used in any directory.
Mac OS X is fully supported and a notarized app disk image is provided in the [release page](https://github.com/franko/lite-xl/releases).
In addition the application can be compiled using the generic instructions given above.
2020-07-04 22:07:12 +02:00
2019-12-28 12:16:32 +01:00
## Contributing
Any additional functionality that can be added through a plugin should be done
2021-03-13 16:20:36 +01:00
as a plugin, after which a pull request to the
2020-06-21 17:11:01 +02:00
[plugins repository](https://github.com/rxi/lite-plugins) can be made.
2021-03-13 16:20:36 +01:00
If the plugin uses any Lite XL-specific functionality, please open a pull request to the
[Lite XL plugins repository](https://github.com/franko/lite-plugins).
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
## License
This project is free software; you can redistribute it and/or modify it under
the terms of the MIT license. See [LICENSE](LICENSE) for details.