{ lib , stdenv , fetchFromGitHub , autoreconfHook , desktop-file-utils , pkg-config , libwebsockets , json_c , openssl , asciidoctor , unixtools , zlib , # For including Java classes. Take note it doesn't compile them properly and it # still builds successfully so including them is disabled by default. openjdk , # For Qt backend which is included by default. qt5 , enableQt ? true , enableJava ? false }: # TODO: Compile with the experimental wry backend. # * Wait until gdk-pixbuf is >=3.0. stdenv.mkDerivation rec { pname = "domterm"; version = "unstable-2022-07-22"; src = fetchFromGitHub { owner = "PerBothner"; repo = "DomTerm"; rev = "ae3e4a0037f3ead62a8db0f93e25ec529e3b4756"; sha256 = "sha256-0RrmKm3YqypWBpsE2rfKAGcTJdItvS+K5HTZeq77Pks="; }; nativeBuildInputs = [ autoreconfHook pkg-config ] ++ lib.optional enableQt qt5.wrapQtAppsHook; buildInputs = [ asciidoctor desktop-file-utils json_c libwebsockets openssl unixtools.xxd zlib ] ++ lib.optionals enableQt (with qt5; [ qtbase qtwebengine qtwebchannel ]) ++ lib.optional enableJava openjdk; configureFlags = [ "--disable-java-pty" "--with-libwebsockets" # Until the dependencies are updated (e.g., `gdk-pixbuf >= 3.0`), this is # going to be painful to build. "--without-wry" ] ++ lib.optional enableJava "--with-java" ++ lib.optional enableQt "--with-qt"; # Force Java to take input as UTF-8 instead of ASCII. JAVA_TOOL_OPTIONS = "-Dfile.encoding=UTF8"; meta = with lib; { homepage = "https://domterm.org/"; description = "Terminal emulator based on web technologies."; license = licenses.bsd3; }; }