From a4e239898c38b79c5b7aaf42ba699596afef397c Mon Sep 17 00:00:00 2001 From: tristan Date: Wed, 17 May 2023 09:21:27 +0100 Subject: [PATCH] add input-leap --- custom/input-leap/default.nix | 57 +++++++++++++++++++++++++++++++++++ system/global/home.nix | 9 +++++- 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 custom/input-leap/default.nix diff --git a/custom/input-leap/default.nix b/custom/input-leap/default.nix new file mode 100644 index 0000000..85ea759 --- /dev/null +++ b/custom/input-leap/default.nix @@ -0,0 +1,57 @@ +{ lib, fetchFromGitHub, cmake, curl, xorg, avahi, stdenv, pkgs, + openssl, wrapGAppsHook, + avahiWithLibdnssdCompat ? avahi.override { withLibdnssdCompat = true; }, + fetchpatch +}: + +stdenv.mkDerivation rec { + pname = "barrier"; + version = "2.4.0"; + + src = fetchFromGitHub { + owner = "input-leap"; + repo = "input-leap"; + rev = "v${version}"; + sha256 = "sha256-2tHqLF3zS3C4UnOVIZfpcuzaemC9++nC7lXgFnFSfKU="; + fetchSubmodules = true; + }; + + patches = [ + # This patch can be removed when a new version of barrier (greater than 2.4.0) + # is released, which will contain this commit. + (fetchpatch { + name = "add-missing-cstddef-header.patch"; + url = "https://github.com/debauchee/barrier/commit/4b12265ae5d324b942698a3177e1d8b1749414d7.patch"; + sha256 = "sha256-ajMxP7szBFi4h8cMT3qswfa3k/QiJ1FGI3q9fkCFQQk="; + }) + ]; + + buildInputs = [ curl xorg.libX11 xorg.libXext xorg.libXtst avahiWithLibdnssdCompat pkgs.libsForQt5.qt5.qtbase ]; + nativeBuildInputs = [ cmake wrapGAppsHook pkgs.libsForQt5.qt5.wrapQtAppsHook ]; + + postFixup = '' + substituteInPlace "$out/share/applications/barrier.desktop" --replace "Exec=barrier" "Exec=$out/bin/barrier" + ''; + + qtWrapperArgs = [ + ''--prefix PATH : ${lib.makeBinPath [ openssl ]}'' + ]; + + 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"; + downloadPage = "https://github.com/input-leap/input-leap/releases"; + license = lib.licenses.gpl2; + maintainers = [ lib.maintainers.phryneas ]; + platforms = lib.platforms.linux; + }; +} diff --git a/system/global/home.nix b/system/global/home.nix index fddf51f..4a8389a 100644 --- a/system/global/home.nix +++ b/system/global/home.nix @@ -20,6 +20,7 @@ let gawk = "${pkgs.gawk}/bin/awk"; }; lf-sixel = pkgs.callPackage ../../custom/lf-sixel/. { }; + input-leap = pkgs.callPackage ../../custom/input-leap/. { }; in { programs.home-manager.enable = true; @@ -38,10 +39,12 @@ in imv libsixel lf-sixel + input-leap yt-dlp playerctl swww neofetch + obs-studio inkscape libsForQt5.okular @@ -519,7 +522,7 @@ in }; } { - name = "typescript"; + name = "tsx"; auto-format = true; language-server = { command = "${pkgs.nodePackages.typescript-language-server}/bin/typescript-language-server"; @@ -867,6 +870,10 @@ color body red default "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,-]|%[0-9a- command = "${pkgs.rnix-lsp}/bin/rnix-lsp"; filetypes = [ "nix" ]; }; + typescript = { + command = "${pkgs.nodePackages.typescript-language-server}/bin/typescript-language-server"; + filetypes = [ "ts" "tsx" ]; + }; }; }; };