diff --git a/pkgs/applications/misc/remarkable/remarkable-mouse/default.nix b/pkgs/applications/misc/remarkable/remarkable-mouse/default.nix new file mode 100644 index 00000000000..8d668f7a38d --- /dev/null +++ b/pkgs/applications/misc/remarkable/remarkable-mouse/default.nix @@ -0,0 +1,20 @@ +{ stdenv, buildPythonApplication, fetchPypi, python3Packages }: + +buildPythonApplication rec { + pname = "remarkable-mouse"; + version = "5.2.1"; + + src = fetchPypi { + inherit pname version; + sha256 = "0k2wjfcgnvb8yqn4c4ddfyyhrvl6hj61kn1ddnyp6ay9vklnw160"; + }; + + propagatedBuildInputs = with python3Packages; [ screeninfo paramiko pynput libevdev ]; + + meta = with stdenv.lib; { + description = "A program to use a reMarkable as a graphics tablet"; + homepage = "https://github.com/evidlo/remarkable_mouse"; + license = licenses.gpl3; + maintainers = [ maintainers.nickhu ]; + }; +} diff --git a/pkgs/development/python-modules/libevdev/default.nix b/pkgs/development/python-modules/libevdev/default.nix new file mode 100644 index 00000000000..ab00340cfe1 --- /dev/null +++ b/pkgs/development/python-modules/libevdev/default.nix @@ -0,0 +1,21 @@ +{ stdenv, buildPythonPackage, isPy27, fetchPypi }: + +buildPythonPackage rec { + pname = "libevdev"; + version = "0.7"; + disabled = isPy27; + + src = fetchPypi { + inherit pname version; + sha256 = "10gwj08kn2rs4waq7807mq34cbavgkpg8fpir8mvnba601b8q4r4"; + }; + + doCheck = false; + + meta = with stdenv.lib; { + description = "Python wrapper around the libevdev C library"; + homepage = "https://gitlab.freedesktop.org/libevdev/python-libevdev"; + license = licenses.mit; + maintainers = with maintainers; [ nickhu ]; + }; +} diff --git a/pkgs/development/python-modules/pynput/default.nix b/pkgs/development/python-modules/pynput/default.nix new file mode 100644 index 00000000000..2b83f4c1223 --- /dev/null +++ b/pkgs/development/python-modules/pynput/default.nix @@ -0,0 +1,25 @@ +{ stdenv, buildPythonPackage, fetchPypi, sphinx, setuptools-lint, xlib }: + +buildPythonPackage rec { + pname = "pynput"; + version = "1.6.8"; + + src = fetchPypi { + inherit pname version; + sha256 = "16h4wn7f54rw30jrya7rmqkx3f51pxn8cplid95v880md8yqdhb8"; + }; + + nativeBuildInputs = [ sphinx ]; + + propagatedBuildInputs = [ setuptools-lint xlib ]; + + doCheck = false; + + meta = with stdenv.lib; { + description = "A library to control and monitor input devices"; + homepage = "https://github.com/moses-palmer/pynput"; + license = licenses.lgpl3; + maintainers = with maintainers; [ nickhu ]; + }; +} + diff --git a/pkgs/development/python-modules/screeninfo/default.nix b/pkgs/development/python-modules/screeninfo/default.nix new file mode 100644 index 00000000000..9ee04cb50a8 --- /dev/null +++ b/pkgs/development/python-modules/screeninfo/default.nix @@ -0,0 +1,35 @@ +{ stdenv, buildPythonApplication, fetchPypi, isPy36, dataclasses, libX11, libXinerama, libXrandr }: + +buildPythonApplication rec { + pname = "screeninfo"; + version = "0.6.5"; + + src = fetchPypi { + inherit pname version; + sha256 = "0vcw54crdgmbzwlrfg80kd1a8p9i10yks8k0szzi0k5q80zhp8xz"; + }; + + # dataclasses is a compatibility shim for python 3.6 ONLY + patchPhase = if isPy36 then "" else '' + substituteInPlace setup.py \ + --replace "\"dataclasses\"," "" + '' + '' + substituteInPlace screeninfo/enumerators/xinerama.py \ + --replace "load_library(\"X11\")" "ctypes.cdll.LoadLibrary(\"${libX11}/lib/libX11.so\")" \ + --replace "load_library(\"Xinerama\")" "ctypes.cdll.LoadLibrary(\"${libXinerama}/lib/libXinerama.so\")" + substituteInPlace screeninfo/enumerators/xrandr.py \ + --replace "load_library(\"X11\")" "ctypes.cdll.LoadLibrary(\"${libX11}/lib/libX11.so\")" \ + --replace "load_library(\"Xrandr\")" "ctypes.cdll.LoadLibrary(\"${libXrandr}/lib/libXrandr.so\")" + ''; + + propagatedBuildInputs = stdenv.lib.optional isPy36 dataclasses; + + buildInputs = [ libX11 libXinerama libXrandr]; + + meta = with stdenv.lib; { + description = "Fetch location and size of physical screens"; + homepage = "https://github.com/rr-/screeninfo"; + license = licenses.mit; + maintainers = [ maintainers.nickhu ]; + }; +} diff --git a/pkgs/development/python-modules/setuptools-lint/default.nix b/pkgs/development/python-modules/setuptools-lint/default.nix new file mode 100644 index 00000000000..fbe1528c4c3 --- /dev/null +++ b/pkgs/development/python-modules/setuptools-lint/default.nix @@ -0,0 +1,21 @@ +{ stdenv, buildPythonPackage, fetchPypi, pylint }: + +buildPythonPackage rec { + pname = "setuptools-lint"; + version = "0.6.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "16a1ac5n7k7sx15cnk03gw3fmslab3a7m74dc45rgpldgiff3577"; + }; + + propagatedBuildInputs = [ pylint ]; + + meta = with stdenv.lib; { + description = "Package to expose pylint as a lint command into setup.py"; + homepage = "https://github.com/johnnoone/setuptools-pylint"; + license = licenses.bsdOriginal; + maintainers = with maintainers; [ nickhu ]; + }; +} + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 934575e01ec..3760114301e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2174,6 +2174,8 @@ in rmapi = callPackage ../applications/misc/remarkable/rmapi { }; + remarkable-mouse = python3Packages.callPackage ../applications/misc/remarkable/remarkable-mouse { }; + scour = with python3Packages; toPythonApplication scour; s2png = callPackage ../tools/graphics/s2png { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index ed1127ba046..ec76eed9057 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1256,6 +1256,8 @@ in { pynisher = callPackage ../development/python-modules/pynisher { }; + pynput = callPackage ../development/python-modules/pynput { }; + pyparser = callPackage ../development/python-modules/pyparser { }; pyres = callPackage ../development/python-modules/pyres { }; @@ -2622,6 +2624,8 @@ in { libais = callPackage ../development/python-modules/libais { }; + libevdev = callPackage ../development/python-modules/libevdev { }; + libfdt = toPythonModule (pkgs.dtc.override { inherit python; pythonSupport = true; @@ -3454,6 +3458,8 @@ in { samplerate = callPackage ../development/python-modules/samplerate { }; + screeninfo = callPackage ../development/python-modules/screeninfo { }; + ssdeep = callPackage ../development/python-modules/ssdeep { }; ssdp = callPackage ../development/python-modules/ssdp { }; @@ -3476,6 +3482,8 @@ in { setuptools-git = callPackage ../development/python-modules/setuptools-git { }; + setuptools-lint = callPackage ../development/python-modules/setuptools-lint { }; + sievelib = callPackage ../development/python-modules/sievelib { }; watchdog = callPackage ../development/python-modules/watchdog { };