diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0424753..275408c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,15 +1,4 @@ -build-and-test-buffyboard: - image: alpine:3.19 - tags: - - saas-linux-small-amd64 - script: - - apk -q add git bash build-base meson linux-headers inih-dev libinput-dev eudev-dev - - git submodule init - - git submodule update - - cd buffyboard - - ./test/test-all.sh - -build-and-test-unl0kr-with-drm: +build-and-test-with-drm: image: alpine:3.19 tags: - saas-linux-small-amd64 @@ -17,10 +6,9 @@ build-and-test-unl0kr-with-drm: - apk -q add git bash build-base meson linux-headers inih-dev libinput-dev libxkbcommon-dev libdrm-dev scdoc - git submodule init - git submodule update - - cd unl0kr - ./test/test-with-drm.sh -build-and-test-unl0kr-without-drm: +build-and-test-without-drm: image: alpine:3.19 tags: - saas-linux-small-amd64 @@ -28,7 +16,6 @@ build-and-test-unl0kr-without-drm: - apk -q add git bash build-base meson linux-headers inih-dev libinput-dev libxkbcommon-dev scdoc - git submodule init - git submodule update - - cd unl0kr - ./test/test-without-drm.sh build-iskey: diff --git a/README.md b/README.md index 92cad17..b871960 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,31 @@ BuffyBox is a suite of graphical applications for the terminal. You can join our development chat at [#buffybox:matrix.org]. +## Building & running + +Some of unl0kr's dependencies are included as git submodules in this repository. You can clone the repository and initialise the submodules with + +``` +$ git clone https://gitlab.com/postmarketOS/buffybox.git +$ cd buffybox +$ git submodule init +$ git submodule update +``` + +When pulling changes from the remote later, either use `git pull --recurse-submodules` or manually run `git submodule update` as needed after pulling. + +Once you have the sources, you can build the app and run it in a VT. Unless your user account has special privileges, `sudo` will be needed to access input device files. + +``` +$ meson setup _build +$ meson compile -C _build +$ sudo chvt 2 +$ sudo ./_build/unl0kr/unl0kr # For Unl0kr +$ sudo ./_build/buffyboard/buffyboard # For Buffyboard +``` + +With meson <0\.55 use `ninja` instead of `meson compile`\. + ## Making a release To make it easier for distributions to package BuffyBox, we include source tarballs including the LVGL submodule in GitLab releases. See [unl0kr#42] for more background on this. diff --git a/buffyboard/README.md b/buffyboard/README.md index 9683077..decb3d7 100644 --- a/buffyboard/README.md +++ b/buffyboard/README.md @@ -77,30 +77,6 @@ For an example configuration file, see [buffyboard.conf]. - evdev kernel module - uinput kernel module -## Building & running - -Some of buffyboard's dependencies are included as git submodules in this repository. You can clone the repository and initialise the submodules with - -``` -$ git clone https://gitlab.com/cherrypicker/buffyboard.git -$ cd buffyboard -$ git submodule init -$ git submodule update -``` - -When pulling changes from the remote later, either use `git pull --recurse-submodules` or manually run `git submodule update` as needed after pulling. - -Once you have the sources, you can build the app and run it in a VT. Unless your user account has special privileges, `sudo` will be needed to access input device files. - -``` -$ meson _build -$ meson compile -C _build -$ sudo chvt 2 -$ sudo ./_build/buffyboard -``` - -With meson <0.55 use `ninja` instead of `meson compile`. - ## Keyboard layouts Buffyboard uses [squeekboard layouts] converted to C via [squeek2lvgl]. To regenerate the layouts, ensure that you have pipenv installed (e.g. via `pip install --user pipenv`) and then run @@ -114,10 +90,10 @@ $ ./regenerate-layouts.sh To generate screenshots in a variety of common sizes, install [fbcat], build buffyboard and then run ``` -$ sudo ./regenerate-screenshots _build/buffyboard +$ sudo ./regenerate-screenshots ../_build/unl0kr/buffyboard ``` -where `_build/buffyboard` is the location of the buffyboard binary. +where `../_build/unl0kr/buffyboard` is the location of the buffyboard binary. # Acknowledgements diff --git a/buffyboard/doc/buffyboard.1.scd b/buffyboard/doc/buffyboard.1.scd new file mode 100644 index 0000000..6699a37 --- /dev/null +++ b/buffyboard/doc/buffyboard.1.scd @@ -0,0 +1,63 @@ +buffyboard(1) "buffyboard" + +# NAME + +BUFFYBOARD - Touch-enabled framebuffer keyboard (not only) for vampire slayers. + +# SYNOPSIS + +buffyboard [OPTION] + +# DESCRIPTION + +Buffyboard is a touch-enabled on-screen keyboard running on the Linux +framebuffer. It's primarily intended for vampire hunting but you can +also use it as a general purpose keyboard. + +Buffyboard uses LVGL for input processing and rendering. Key events are +forwarded directly to the kernel via a uinput device. Since the latter +emulates a hardware keyboard, the terminal keymap must match with +buffyboard's layout or else on-screen keys might not produce the correct +result. + +# OPTIONS + +## Optional + +*-C, --config-override* + Path to a config override file. Can be supplied multiple times. Config + files are merged in the following order: + - /etc/buffyboard.conf + - /etc/buffyboard.conf.d/\* (alphabetically) + - Override files (in supplied order) +*-g, --geometry=NxM[@X,Y]* + Force a display size of N horizontal times M vertical pixels, offset + horizontally by X pixels and vertically by Y pixels. +*-d --dpi=N* + Override the display's DPI value. +*-r, --rotate=[0-3]* + Rotate the UI to the given orientation. The + values match the ones provided by the kernel in + /sys/class/graphics/fbcon/rotate. + * 0 - normal orientation (0 degree) + * 1 - clockwise orientation (90 degrees) + * 2 - upside down orientation (180 degrees) + * 3 - counterclockwise orientation (270 degrees) +*-h, --help* + Print this message and exit. +*-v, --verbose* + Enable more detailed logging output on STDERR. +*-V, --version* + Print the unl0kr version and exit. + +# EXAMPLES + +*Execute Buffyboard using the default config* + buffyboard + +# SEE ALSO + *buffyboard.conf*(5) + +# AUTHORS + +*Undef* diff --git a/buffyboard/doc/buffyboard.conf.5.scd b/buffyboard/doc/buffyboard.conf.5.scd new file mode 100644 index 0000000..d82ff46 --- /dev/null +++ b/buffyboard/doc/buffyboard.conf.5.scd @@ -0,0 +1,53 @@ +buffyboard(5) "buffyboard" + +# NAME + +BUFFYBOARD - configuration file + +# DESCRIPTION + +BUFFYBOARD expects a configuration file with options in the following format, with +one option/value pair per line: + +``` +[section] +