No description
  • Go 78.7%
  • Nix 8.3%
  • TypeScript 5.2%
  • GLSL 2.8%
  • Makefile 1.8%
  • Other 3.2%
Find a file
2026-09-07 11:59:59 +02:00
.circleci circleci: fix ident 2026-03-20 19:53:47 +01:00
.github/workflows remove golangci-lint actions runner (it is handled by nix now) 2026-05-30 23:44:17 +03:00
cmd hopefully fix fazantix-window 2025-11-08 15:56:11 +02:00
contrib contrib: script to show the metrics and their movement 2026-03-22 15:34:39 +01:00
debian Update wording 2025-11-21 13:48:41 +02:00
examples use hostname 2026-06-26 14:41:05 +03:00
external go4lv: set O_CLOEXEC on v4l2 devices 2026-09-04 14:24:45 +03:00
lib Add frame timing stats to the API 2026-09-07 11:59:59 +02:00
man Do both x11 and wayland builds for all GUI tools 2025-11-20 15:38:40 +02:00
nix nix final touches 2026-07-31 15:46:43 +02:00
web_ui Merge branch 'master' into api_url 2026-05-31 19:20:39 +03:00
.gitignore Add basic debian packaging 2025-11-20 09:58:42 +02:00
.golangci.yaml move libs to external/ and fix lint 2025-07-16 11:02:40 +03:00
flake.lock nix final touches 2026-07-31 15:46:43 +02:00
flake.nix make fazantix run on the frankenbox 2026-07-31 15:46:43 +02:00
generate_release.sh generate_release: also accept parameter 2026-09-06 10:51:34 +02:00
go.mod Use plutobook to render html sources 2025-09-18 01:58:34 +02:00
go.sum Use plutobook to render html sources 2025-09-18 01:58:34 +02:00
LICENSE Add GNU General Public License version 2 2026-05-21 13:39:08 +02:00
Makefile revert makefile variable 2026-06-26 12:32:00 +03:00
README.md web stuff readme 2025-08-06 15:38:45 +02:00

Fazantix vision mixer

Fazant Fazant Fazant

Building

Debian

$ apt install golang libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libglx-dev libgl-dev libxxf86vm-dev
$ make

NixOS

$ nix develop -c make fazantix-wayland

or

$ nix build

Running

Running on bare metal

$ xinit ./fazantix configfile.yaml

Running for development

$ make run

or

$ make run CONFIG=fosdem.yaml

To quit, press Ctrl+Shift+Q.

Control

Open the web UI with a browser! It is at http://localhost:8000 by default.

You can also send commands to the API directly:

Switch to the side-by-side scene on the projector stage
$ curl http://localhost:8000/api/scene/projector/side-by-side

Limited keyboard shortcuts are also available:

  • Use the digit keys to switch between scenes
  • Use Ctrl-Shift-q to exit

Development

Core development

Fazantix is written in Go with most of the code residing in lib/

Web API

The Web API uses Swagger, and is built automatically by the makefile. The relevant source is in lib/api. The automatically-generated API documentation can be accessed by loading the /swagger URL in a browser.

Web UI

The Web UI is built using vite and resides in web_ui/. A build.sh script is provided for building the UI into a single index.html file that is then included in fazantix's builtin web server by default.

This, however, is not suitable for development because the bundled index.html is, well, bundled, and also minified, and thus difficult to debug. In order to start a development webserver to aid with Web UI development, use ./web_ui/build.sh serve and then point your browser at http://localhost:5173. The development web server will proxy the api connections to a locally-running fazantix at port 8000, but you can also override the FAZANTIX_URL environment variable to make the locally-hosted web UI connect to a remote fazantix instance.

The development web server will refresh the webpage or show errors whenever the code is modified.