···
-
import ../make-test-python.nix (
-
meta.maintainers = with lib.maintainers; [ nevivurn ];
-
../common/user-account.nix
-
environment.systemPackages = [
-
# To avoid clashing with xfce4-terminal
-
services.displayManager.autoLogin = {
-
displayManager.lightdm.enable = true;
-
desktopManager.xfce.enable = true;
-
pkgs.fcitx5-chinese-addons
-
"Hotkey"."EnumerateSkipFirst" = "False";
-
"Hotkey/TriggerKeys"."0" = "Control+space";
-
"Hotkey/EnumerateForwardKeys"."0" = "Alt+Shift_L";
-
"Hotkey/EnumerateBackwardKeys"."0" = "Alt+Shift_R";
-
"Default Layout" = "us";
-
"Name" = "keyboard-us";
-
"Name" = "m17n_sa_harvard-kyoto";
-
user = nodes.machine.users.users.alice;
-
xauth = "${user.home}/.Xauthority";
-
machine.wait_for_file("${xauth}")
-
machine.succeed("xauth merge ${xauth}")
-
machine.wait_until_succeeds("pgrep fcitx5")
-
machine.succeed("su - ${user.name} -c 'kill $(pgrep fcitx5)'")
-
machine.succeed("su - ${user.name} -c 'alacritty >&2 &'")
-
machine.wait_for_window("alice@machine")
-
machine.succeed("su - ${user.name} -c 'fcitx5 >&2 &'")
-
machine.send_chars("echo ")
-
### Start fcitx Unicode input
-
machine.send_key("ctrl-alt-shift-u")
-
### Search for smiling face
-
machine.send_chars("smil")
-
### Navigate to the second one
-
machine.send_key("tab")
-
### Start fcitx language input
-
machine.send_key("ctrl-spc")
-
### Default wubi, enter 一下
-
machine.send_chars("gggh ")
-
machine.send_key("alt-shift")
-
machine.send_chars("gks")
-
### Switch to Harvard Kyoto
-
machine.send_key("alt-shift")
-
machine.send_chars("ka")
-
machine.send_key("alt-shift")
-
machine.send_chars("ka\n")
-
machine.send_key("ctrl-spc")
-
### Redirect typed characters to a file
-
machine.send_chars(" > fcitx_test.out\n")
-
machine.screenshot("terminal_chars")
-
### Verify that file contents are as expected
-
file_content = machine.succeed("cat ${user.home}/fcitx_test.out")
-
assert file_content == "☺一下한कか\n", f'output does not match input:\n{file_content}'