at 18.09-beta 2.5 kB view raw
1import ./make-test.nix ({ pkgs, ...} : 2 3{ 4 name = "plasma5"; 5 meta = with pkgs.stdenv.lib.maintainers; { 6 maintainers = [ ttuegel ]; 7 }; 8 9 machine = { ... }: 10 let 11 sddm_theme = pkgs.stdenv.mkDerivation { 12 name = "breeze-ocr-theme"; 13 phases = "buildPhase"; 14 buildCommand = '' 15 mkdir -p $out/share/sddm/themes/ 16 cp -r ${pkgs.plasma-workspace}/share/sddm/themes/breeze $out/share/sddm/themes/breeze-ocr-theme 17 chmod -R +w $out/share/sddm/themes/breeze-ocr-theme 18 printf "[General]\ntype=color\ncolor=#1d99f3\nbackground=\n" > $out/share/sddm/themes/breeze-ocr-theme/theme.conf 19 ''; 20 }; 21 in 22 { 23 imports = [ ./common/user-account.nix ]; 24 services.xserver.enable = true; 25 services.xserver.displayManager.sddm.enable = true; 26 services.xserver.displayManager.sddm.theme = "breeze-ocr-theme"; 27 services.xserver.desktopManager.plasma5.enable = true; 28 services.xserver.desktopManager.default = "plasma5"; 29 virtualisation.memorySize = 1024; 30 environment.systemPackages = [ sddm_theme ]; 31 32 # fontconfig-penultimate-0.3.3 -> 0.3.4 broke OCR apparently, but no idea why. 33 nixpkgs.config.packageOverrides = superPkgs: { 34 fontconfig-penultimate = superPkgs.fontconfig-penultimate.override { 35 version = "0.3.3"; 36 sha256 = "1z76jbkb0nhf4w7fy647yyayqr4q02fgk6w58k0yi700p0m3h4c9"; 37 }; 38 }; 39 }; 40 41 enableOCR = true; 42 43 testScript = { nodes, ... }: let 44 user = nodes.machine.config.users.users.alice; 45 xdo = "${pkgs.xdotool}/bin/xdotool"; 46 in '' 47 startAll; 48 # Wait for display manager to start 49 $machine->waitForText(qr/${user.description}/); 50 $machine->screenshot("sddm"); 51 52 # Log in 53 $machine->sendChars("${user.password}\n"); 54 $machine->waitForFile("/home/alice/.Xauthority"); 55 $machine->succeed("xauth merge ~alice/.Xauthority"); 56 57 $machine->waitUntilSucceeds("pgrep plasmashell"); 58 $machine->waitForWindow("^Desktop "); 59 60 # Check that logging in has given the user ownership of devices. 61 $machine->succeed("getfacl /dev/snd/timer | grep -q alice"); 62 63 $machine->execute("su - alice -c 'DISPLAY=:0.0 dolphin &'"); 64 $machine->waitForWindow(" Dolphin"); 65 66 $machine->execute("su - alice -c 'DISPLAY=:0.0 konsole &'"); 67 $machine->waitForWindow("Konsole"); 68 69 $machine->execute("su - alice -c 'DISPLAY=:0.0 systemsettings5 &'"); 70 $machine->waitForWindow("Settings"); 71 72 $machine->execute("${xdo} key Alt+F1 sleep 10"); 73 $machine->screenshot("screen"); 74 ''; 75})