Files
lan-mouse/nix/default.nix
Hannes Schulze 55bdf1e63e Update Nix Flake (#161)
* nix: add support for aarch64-linux

* nix: add librsvg to enable svg icons in gtk
2024-07-16 14:59:36 +02:00

56 lines
1.4 KiB
Nix

{
rustPlatform,
lib,
pkgs,
}: let
cargoToml = builtins.fromTOML (builtins.readFile ../Cargo.toml);
pname = cargoToml.package.name;
version = cargoToml.package.version;
in
rustPlatform.buildRustPackage {
pname = pname;
version = version;
nativeBuildInputs = with pkgs; [
pkg-config
cmake
makeWrapper
buildPackages.gtk4
];
buildInputs = with pkgs; [
xorg.libX11
gtk4
libadwaita
xorg.libXtst
] ++ lib.optionals stdenv.isDarwin [
darwin.apple_sdk_11_0.frameworks.CoreGraphics
];
src = builtins.path {
name = pname;
path = lib.cleanSource ../.;
};
cargoLock.lockFile = ../Cargo.lock;
# Set Environment Variables
RUST_BACKTRACE = "full";
# Needed to enable support for SVG icons in GTK
postInstall = ''
wrapProgram "$out/bin/lan-mouse" \
--set GDK_PIXBUF_MODULE_FILE ${pkgs.librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
'';
meta = with lib; {
description = "Lan Mouse is a mouse and keyboard sharing software";
longDescription = ''
Lan Mouse is a mouse and keyboard sharing software similar to universal-control on Apple devices. It allows for using multiple pcs with a single set of mouse and keyboard. This is also known as a Software KVM switch.
The primary target is Wayland on Linux but Windows and MacOS and Linux on Xorg have partial support as well (see below for more details).
'';
mainProgram = pname;
platforms = platforms.all;
};
}