No description
  • Common Lisp 96.3%
  • QML 1.3%
  • C 1.3%
  • Shell 0.6%
  • C++ 0.2%
Find a file
2026-05-30 22:18:40 +02:00
external Remove lexy and promote tree-sitter 2026-05-16 22:05:12 +02:00
icons Generate png icons from svg version 2022-10-04 12:57:43 +02:00
lisp Start implementing editor model 2026-05-30 22:18:40 +02:00
qml Start implementing editor model 2026-05-30 22:18:40 +02:00
rpm Fix compilation and packaging 2026-05-29 23:41:35 +02:00
src Manually require asdf in order to properly load cffi 2026-05-29 23:41:53 +02:00
tests Fix collect-files tests 2026-05-27 23:58:42 +02:00
.gitignore Add build dir to .gitignore 2026-05-29 23:43:14 +02:00
.gitmodules Add submodules tree-sitter and tree-sitter-org 2025-08-26 21:13:48 +02:00
COPYING Add license file 2022-10-04 21:15:23 +02:00
dependencies.sexp Bundle osicat for better symlinks handling 2026-05-27 23:57:39 +02:00
harbour-sextant.desktop Fix application name in desktop file 2022-10-04 13:47:27 +02:00
harbour-sextant.pro Cleanup build process 2026-05-17 23:04:24 +02:00
install-bundle.lisp Bundle reinitialized dependencies 2025-08-26 23:14:41 +02:00
load.lisp Fix compilation errors caught by sbcl 2026-05-27 22:04:48 +02:00
make-sextant-app.lisp Revamp app build system 2025-09-07 16:22:59 +02:00
make.lisp Remove redundant conditionnal 2026-05-30 22:18:40 +02:00
README.org type in README.org 2021-12-09 14:06:22 +01:00
sextant-tests.lisp Fix collect-files tests 2026-05-27 23:58:42 +02:00
sextant.pro Start implementing editor model 2026-05-30 22:18:40 +02:00
tests.lisp WIP 2025-07-20 21:27:03 +09:00
ts-parser.pro Fix compilation and packaging 2026-05-29 23:41:35 +02:00
webserver.sh Display host’s ip address before starting the webserver 2022-01-19 13:16:49 +01:00
welcome.org WIP Backup 2025-10-09 09:25:45 +02:00

This package is here to help bootstrap application development for Sailfish OS using ecl and eql5.

Dependencies

You’ll need ecl and eql5 installed in the build engine that comes with sfos sdk. These are available through my repository on openrepos.net. You can activate it and install the packages with the following command:

rpm --import https://sailfish.openrepos.net/openrepos.key
zypper ar -f https://sailfish.openrepos.net/razcampagne/personal-main.repo
zypper in eql5

Build and deploy

You can use the build button in qtcreator or do this manually in the sdk engine:

qmake harbour-sextant.pro
make

But the way I recommend to do it is by using the command-line tool sfdk that comes with the sdk. Use the following command for a comprehensive manual:

sfdk --help-building

The TL;DR would be one of the following:

sfdk build

Or,

sfdk qmake
sfdk make
sfdk make-install
sfdk package

You also have the option to build against ecl and eql5 statically to distribute your application without the need to depend on development packages. You can do this by configuring qmake like so:

sfdk qmake -- 'CONFIG += standalone'

Once the target and device options have been set, you just have to issue the command:

sfdk deploy

This will compile and build the package and send it to your phone as a rpm.

Attach a REPL

Upon initialization of the application, a slynk server is created with the port 4005. You just have to fire up emacs and connect to it using sly-connect. Only sly-fancy contribs are supported for now so you’ll have to disable the others you may have configured for it to work with this application.

If you wish to disable this feature, you can configure qmake like so:

sfdk qmake -- 'CONFIG += norepl'

Note that statically linking ecl and eql5 will also disable the repl.

Reload QML files

You can find a file `webserver.sh` in the repository which will launch a simple http server. You can then edit the qml files on your host machine and issue the following command in the application REPL:

(reload-qml "http://host-ip-address:8000")

This will reload all qml files but not the ones packaged on the device, the ones on your host system, served by the http server. You can even do that directly in emacs with the following code:

(let ((httpd-port 8000)) ; default 8080 port is already used by the sdk build engine
  (call-interactively 'httpd-serve-directory))

Customize

The code included in this repository is voluntarily barebone. Fill free to use it to bootstrap your application development and rename or replace files, packages to better suit your needs. You can even replace slynk with swank if you prefer.