lite-xl/README.md

113 lines
4.7 KiB
Markdown
Raw Normal View History

2020-06-21 17:11:01 +02:00
# Lite XL
2019-12-28 12:16:32 +01:00
2020-06-21 17:11:01 +02:00
![screenshot-dark](https://user-images.githubusercontent.com/433545/85227778-b42abc80-b3df-11ea-9dd3-e788f6c71882.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
2020-05-08 21:07:15 +02:00
for Windows and Linux
* **[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
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-03-13 16:20:36 +01: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 macOS.
2020-06-21 17:11:01 +02:00
The following libraries are required:
- freetype2
- SDL2
2021-03-13 16:20:36 +01:00
The following libraries are optional:
- 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 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
2021-03-13 16:20:36 +01:00
When performing the `meson setup` command you may enable the `-Dportable=true` option to specify whether a portable build should be done.
2021-03-13 16:20:36 +01:00
If `portable` is enabled, Lite XL is built to use `data` and `user` directories placed next to the executable.
Otherwise, Lite XL will use Unix-like directory locations.
In this case, the `data` directory will be located in `$prefix/share/lite-xl`, and the `user`
directory will be `$HOME/.config/lite-xl`.
2021-03-13 16:20:36 +01:00
`$prefix` is determined such that `$prefix/bin` corresponds to the location of the executable.
`$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-03-13 16:20:36 +01:00
The script will run Meson and create two .zip files, one for the portable version, and
another one for the Unix-like version. Lite XL can be easily installed by unpacking one
of these .zip archives in some directory of your choice.
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.
2021-03-13 16:20:36 +01:00
Note that the Unix-like package can also work on Windows.
2020-07-04 22:07:12 +02:00
2021-03-13 16:20:36 +01:00
Please note that while compiling Lite XL on macOS should work, macOS is not officially supported.
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.