xC: make terminal attributes abstract

And translate them for frontends.

This is very long overdue, and a rather significant cleanup.

Bump liberty.
This commit is contained in:
2022-09-10 15:55:13 +02:00
parent add670212f
commit 4bc2f736f2
4 changed files with 313 additions and 226 deletions

View File

@@ -26,12 +26,13 @@ As a unique bonus, you can launch a full text editor from within.
xP
--
The web frontend for 'xC', making use of its networked relay interface.
So far it's somewhat basic, yet usable.
So far it's a bit rough around the edges, yet fully usable.
xF
--
The X11 frontend for 'xC', making use of its networked relay interface.
It's currently in development, and hidden behind a CMake option.
This subproject has been put on hold, partly because of its massive overlap
with 'xP', and is hidden behind a CMake option.
xD
--
@@ -117,8 +118,19 @@ as a `forking` type systemd user service.
xP
~~
Install the Go compiler, and build the server using `make` in its directory,
then run it from within the _public_ subdirectory.
The precondition for running 'xC' frontends is enabling its relay interface:
/set general.relay_bind = "127.0.0.1:9000"
To build the web server, you'll need to install the Go compiler, and run `make`
from the _xP_ directory. Then start it from the _public_ subdirectory,
and navigate to the adress you gave it as its first argument--in the following
example, that would be http://localhost:8080[]:
$ ../xP 127.0.0.1:8080 127.0.0.1:9000
For remote use, it's recommended to put 'xP' behind a reverse proxy, with TLS,
and some form of HTTP authentication.
Client Certificates
-------------------
@@ -165,12 +177,12 @@ properly set-up terminal emulator, it suffices to run:
/set general.pager = Press Tab here and change +Gb to +Gb1d
/set general.date_change_line = "%a %e %b %Y"
/set general.plugin_autoload += "fancy-prompt.lua"
/set attributes.userhost = "\x1b[38;5;109m"
/set attributes.join = "\x1b[38;5;108m"
/set attributes.part = "\x1b[38;5;138m"
/set attributes.external = "\x1b[38;5;248m"
/set attributes.timestamp = "\x1b[48;5;255m\x1b[38;5;250m"
/set attributes.read_marker = "\x1b[38;5;202m"
/set theme.userhost = "109"
/set theme.join = "108"
/set theme.part = "138"
/set theme.external = "248"
/set theme.timestamp = "250 255"
/set theme.read_marker = "202"
Configuration profiles
----------------------