about summary refs log tree commit diff
path: root/pkgs/applications/misc/input-leap
diff options
context:
space:
mode:
authorJames ‘Twey’ Kay <twey@twey.co.uk>2023-02-12 14:23:35 +0000
committerAnderson Torres <torres.anderson.85@protonmail.com>2023-07-03 20:59:17 -0300
commitc36301bcc0433a1acb6e1815d346239381ae7630 (patch)
treea7e17fe668c9dfa142bcf5db3405a4542f4deea1 /pkgs/applications/misc/input-leap
parent93ae7729be038a4969ae01760c83bf16029c7907 (diff)
input-leap: init at unstable-2023-05-24
Co-authored-by: Anderson Torres <torres.anderson.85@protonmail.com>
Diffstat (limited to 'pkgs/applications/misc/input-leap')
-rw-r--r--pkgs/applications/misc/input-leap/default.nix77
1 files changed, 77 insertions, 0 deletions
diff --git a/pkgs/applications/misc/input-leap/default.nix b/pkgs/applications/misc/input-leap/default.nix
new file mode 100644
index 0000000000000..810dd76db68e7
--- /dev/null
+++ b/pkgs/applications/misc/input-leap/default.nix
@@ -0,0 +1,77 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, cmake
+
+, withLibei ? true
+
+, avahi
+, curl
+, libICE
+, libSM
+, libX11
+, libXdmcp
+, libXext
+, libXinerama
+, libXrandr
+, libXtst
+, libei
+, libportal
+, openssl
+, pkg-config
+, qtbase
+, qttools
+, wrapGAppsHook
+}:
+
+mkDerivation rec {
+  pname = "input-leap";
+  version = "unstable-2023-05-24";
+
+  src = fetchFromGitHub {
+    owner = "input-leap";
+    repo = "input-leap";
+    rev = "5e2f37bf9ec17627ae33558d99f90b7608ace422";
+    hash = "sha256-55RqdRu/Hi2OTiLjAFJ6Gdgg9iO5NIIJCsOkUQjR9hk=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ pkg-config cmake wrapGAppsHook qttools ];
+  buildInputs = [
+    curl qtbase avahi
+    libX11 libXext libXtst libXinerama libXrandr libXdmcp libICE libSM
+  ] ++ lib.optionals withLibei [ libei libportal ];
+
+  cmakeFlags = [
+    "-DINPUTLEAP_REVISION=${builtins.substring 0 8 src.rev}"
+  ] ++ lib.optional withLibei "-DINPUTLEAP_BUILD_LIBEI=ON";
+
+  dontWrapGApps = true;
+  preFixup = ''
+    qtWrapperArgs+=(
+      "''${gappsWrapperArgs[@]}"
+        --prefix PATH : "${lib.makeBinPath [ openssl ]}"
+    )
+  '';
+
+  postFixup = ''
+    substituteInPlace $out/share/applications/input-leap.desktop \
+      --replace "Exec=input-leap" "Exec=$out/bin/input-leap"
+  '';
+
+  meta = {
+    description = "Open-source KVM software";
+    longDescription = ''
+      Input Leap is software that mimics the functionality of a KVM switch, which historically
+      would allow you to use a single keyboard and mouse to control multiple computers by
+      physically turning a dial on the box to switch the machine you're controlling at any
+      given moment. Input Leap does this in software, allowing you to tell it which machine
+      to control by moving your mouse to the edge of the screen, or by using a keypress
+      to switch focus to a different system.
+    '';
+    homepage = "https://github.com/input-leap/input-leap";
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ kovirobi phryneas twey shymega ];
+    platforms = lib.platforms.linux;
+  };
+}