Something went wrong. Try again.
A hardware-accelerated GPU terminal emulator focusing to run in desktops and browsers.
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126{ # rust-overlay deps rust-toolchain, makeRustPlatform, # Normal deps lib, stdenv, darwin, autoPatchelfHook, cmake, ncurses, pkg-config, gcc-unwrapped, fontconfig, libGL, vulkan-loader, libxkbcommon, withX11 ? !stdenv.isDarwin, libX11, libXcursor, libXi, libXrandr, libxcb, withWayland ? !stdenv.isDarwin, wayland, shaderc, ...}: let readTOML = f: builtins.fromTOML (builtins.readFile f); cargoToml = readTOML ./Cargo.toml; rioToml = readTOML ./frontends/rioterm/Cargo.toml; rustPlatform = makeRustPlatform { cargo = rust-toolchain; rustc = rust-toolchain; }; rlinkLibs = lib.optionals stdenv.isLinux [ (lib.getLib gcc-unwrapped) fontconfig libGL libxkbcommon vulkan-loader ] ++ lib.optionals withX11 [ libX11 libXcursor libXi libXrandr libxcb ] ++ lib.optionals withWayland [ wayland ];
inherit (lib.fileset) unions toSource;in rustPlatform.buildRustPackage { inherit (cargoToml.workspace.package) version; name = "rio"; src = toSource { root = ./.; fileset = unions ([ ./Cargo.lock ./Cargo.toml ./misc # Extra desktop/terminfo files ] ++ (map (x: ./. + "/${x}") cargoToml.workspace.members)); }; cargoLock.lockFile = ./Cargo.lock;
cargoBuildFlags = "-p rioterm";
buildInputs = rlinkLibs ++ (lib.optionals stdenv.isDarwin [darwin.libutil]); runtimeDependencies = rlinkLibs;
nativeBuildInputs = [ rustPlatform.bindgenHook ncurses shaderc ] ++ lib.optionals stdenv.isLinux [ cmake pkg-config autoPatchelfHook ];
outputs = [ "out" "terminfo" ];
postInstall = '' install -D -m 644 misc/rio.desktop -t \ $out/share/applications install -D -m 644 misc/logo.svg \ $out/share/icons/hicolor/scalable/apps/rio.svg
# Install terminfo files install -dm 755 "$terminfo/share/terminfo/r/" tic -xe xterm-rio,rio,rio-direct -o "$terminfo/share/terminfo" misc/rio.terminfo mkdir -p $out/nix-support echo "$terminfo" >> $out/nix-support/propagated-user-env-packages '' + lib.optionalString stdenv.hostPlatform.isDarwin '' mkdir $out/Applications/ mv misc/osx/Rio.app/ $out/Applications/ mkdir $out/Applications/Rio.app/Contents/MacOS/ ln -s $out/bin/rio $out/Applications/Rio.app/Contents/MacOS/ '';
buildNoDefaultFeatures = true; buildFeatures = (lib.optionals withX11 ["x11"]) ++ (lib.optionals withWayland ["wayland"]); checkType = "debug"; meta = { description = rioToml.package.description; longDescription = rioToml.package.extended-description; homepage = cargoToml.workspace.package.homepage; license = lib.licenses.mit; platforms = lib.platforms.unix; changelog = "https://github.com/raphamorim/rio/blob/master/CHANGELOG.md"; mainProgram = "rio"; }; }