1{ pkgs, lib, ... }:
2{
3 name = "teleports-standalone";
4 meta.maintainers = lib.teams.lomiri.members;
5
6 nodes.machine =
7 { config, pkgs, ... }:
8 {
9 imports = [ ./common/x11.nix ];
10
11 services.xserver.enable = true;
12
13 environment = {
14 systemPackages = with pkgs.lomiri; [
15 suru-icon-theme
16 teleports
17 ];
18 variables = {
19 UITK_ICON_THEME = "suru";
20 };
21 };
22
23 i18n.supportedLocales = [ "all" ];
24
25 fonts.packages = with pkgs; [
26 # Intended font & helps with OCR
27 ubuntu-classic
28 ];
29 };
30
31 enableOCR = true;
32
33 testScript = ''
34 machine.wait_for_x()
35
36 with subtest("teleports launches"):
37 machine.succeed("teleports >&2 &")
38 machine.wait_for_console_text("authorizationStateWaitPhoneNumber")
39 # Not fullscreening, because main app colour makes OCR stuck
40 machine.sleep(2)
41 machine.wait_for_text(r"(TELEports|Phone Number)")
42 machine.screenshot("teleports_open")
43
44 machine.succeed("pkill -f teleports")
45
46 with subtest("teleports localisation works"):
47 machine.succeed("env LANG=de_DE.UTF-8 teleports >&2 &")
48 machine.wait_for_console_text("authorizationStateWaitPhoneNumber")
49 # Not fullscreening, because main app colour makes OCR stuck
50 machine.sleep(2)
51 machine.wait_for_text("Telefonnummer")
52 machine.screenshot("teleports_localised")
53 '';
54}