109 lines
2.1 KiB
Nix
109 lines
2.1 KiB
Nix
{
|
|||
lib,
|
|||
stdenv,
|
|||
fetchFromGitHub,
|
|||
cmake,
|
|||
ninja,
|
|||
pkg-config,
|
|||
tomlplusplus,
|
|||
cli11,
|
|||
gtest,
|
|||
libei,
|
|||
libportal,
|
|||
libX11,
|
|||
libxkbfile,
|
|||
libXtst,
|
|||
libXinerama,
|
|||
libXi,
|
|||
libXrandr,
|
|||
libxkbcommon,
|
|||
pugixml,
|
|||
python3,
|
|||
gdk-pixbuf,
|
|||
libnotify,
|
|||
qt6,
|
|||
xkeyboard_config,
|
|||
openssl,
|
|||
wayland-protocols,
|
|||
wayland,
|
|||
libsysprof-capture,
|
|||
lerc,
|
|||
doxygen,
|
|||
}:
|
|||
stdenv.mkDerivation rec {
|
|||
pname = "deskflow";
|
|||
version = "1.17.1";
|
|||
|
|||
src = fetchFromGitHub {
|
|||
owner = "deskflow";
|
|||
repo = "deskflow";
|
|||
rev = "v${version}";
|
|||
hash = "sha256-cEKG9MwENbZqrfRdwiZtRWmIfRndrWUoaZQ5O7YRpBs=";
|
|||
};
|
|||
|
|||
postPatch = ''
|
|||
substituteInPlace src/lib/deskflow/unix/AppUtilUnix.cpp \
|
|||
--replace-fail "/usr/share/X11/xkb/rules/evdev.xml" "${xkeyboard_config}/share/X11/xkb/rules/evdev.xml"
|
|||
substituteInPlace src/lib/gui/tls/TlsCertificate.cpp \
|
|||
--replace-fail "\"openssl\"" "\"${lib.getBin openssl}/bin/openssl\""
|
|||
'';
|
|||
|
|||
nativeBuildInputs = [
|
|||
cmake
|
|||
ninja
|
|||
pkg-config
|
|||
qt6.wrapQtAppsHook
|
|||
doxygen # docs
|
|||
];
|
|||
|
|||
cmakeFlags = [
|
|||
"-DCMAKE_SKIP_RPATH=ON" # Avoid generating incorrect RPATH
|
|||
];
|
|||
|
|||
strictDeps = true;
|
|||
|
|||
buildInputs = [
|
|||
tomlplusplus
|
|||
cli11
|
|||
gtest
|
|||
libei
|
|||
libportal
|
|||
libX11
|
|||
libxkbfile
|
|||
libXinerama
|
|||
libXi
|
|||
libXrandr
|
|||
libXtst
|
|||
libxkbcommon
|
|||
pugixml
|
|||
gdk-pixbuf
|
|||
libnotify
|
|||
python3
|
|||
qt6.qtbase
|
|||
wayland-protocols
|
|||
qt6.qtwayland
|
|||
wayland
|
|||
libsysprof-capture
|
|||
lerc
|
|||
];
|
|||
|
|||
postInstall = ''
|
|||
substituteInPlace $out/share/applications/deskflow.desktop \
|
|||
--replace-fail "Path=/usr/bin" "Path=$out/bin" \
|
|||
--replace-fail "Exec=/usr/bin/deskflow" "Exec=deskflow"
|
|||
'';
|
|||
|
|||
qtWrapperArgs = [
|
|||
"--set QT_QPA_PLATFORM_PLUGIN_PATH ${qt6.qtwayland}/${qt6.qtbase.qtPluginPrefix}/platforms"
|
|||
];
|
|||
|
|||
meta = {
|
|||
homepage = "https://github.com/deskflow/deskflow";
|
|||
description = "Share one mouse and keyboard between multiple computers on Windows, macOS and Linux";
|
|||
mainProgram = "deskflow";
|
|||
maintainers = with lib.maintainers; [ aucub ];
|
|||
license = lib.licenses.gpl2Plus;
|
|||
platforms = lib.platforms.linux;
|
|||
};
|
|||
}
|