diff --git a/pkgs/applications/video/screenkey/default.nix b/pkgs/applications/video/screenkey/default.nix new file mode 100644 index 0000000000000..5638fad39e5de --- /dev/null +++ b/pkgs/applications/video/screenkey/default.nix @@ -0,0 +1,60 @@ +{ lib +, substituteAll +, buildPythonApplication +, fetchFromGitHub +, distutils_extra +, setuptools-git +, intltool +, pygtk +, libX11 +, libXtst +, wrapGAppsHook +, defaultIconTheme +, hicolor_icon_theme +}: +buildPythonApplication rec { + pname = "screenkey"; + version = "0.9"; + + src = fetchFromGitHub { + owner = "wavexx"; + repo = "screenkey"; + rev = "screenkey-${version}"; + sha256 = "14g7fiv9n7m03djwz1pp5034pffi87ssvss9bc1q8vq0ksn23vrw"; + }; + + patches = [ + (substituteAll { + src = ./paths.patch; + inherit libX11 libXtst; + }) + ]; + + nativeBuildInputs = [ + distutils_extra + setuptools-git + intltool + + wrapGAppsHook + ]; + + buildInputs = [ + defaultIconTheme + hicolor_icon_theme + ]; + + propagatedBuildInputs = [ + pygtk + ]; + + # screenkey does not have any tests + doCheck = false; + + meta = with lib; { + homepage = https://www.thregr.org/~wavexx/software/screenkey/; + description = "A screencast tool to display your keys inspired by Screenflick"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = [ maintainers.rasendubi ]; + }; +} diff --git a/pkgs/applications/video/screenkey/paths.patch b/pkgs/applications/video/screenkey/paths.patch new file mode 100644 index 0000000000000..7e5ed47fc19da --- /dev/null +++ b/pkgs/applications/video/screenkey/paths.patch @@ -0,0 +1,20 @@ +--- a/Screenkey/xlib.py ++++ b/Screenkey/xlib.py +@@ -6,7 +6,7 @@ + from ctypes import * + + ## base X11 +-libX11 = CDLL('libX11.so.6') ++libX11 = CDLL('@libX11@/lib/libX11.so.6') + + # types + Atom = c_ulong +@@ -278,7 +278,7 @@ + + + ## record extensions +-libXtst = CDLL('libXtst.so.6') ++libXtst = CDLL('@libXtst@/lib/libXtst.so.6') + + # types + XPointer = String \ No newline at end of file diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 46f682e89dc26..bfc3c6fd8c2ac 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4620,6 +4620,10 @@ with pkgs; quazip = quazip_qt4; }; + screenkey = python2Packages.callPackage ../applications/video/screenkey { + inherit (gnome3) defaultIconTheme; + }; + quazip_qt4 = libsForQt5.quazip.override { qtbase = qt4; qmake = qmake4Hook; }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index b00b92bb05f66..a81d9ff2f5950 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -18400,38 +18400,6 @@ EOF }; }; - screenkey = buildPythonPackage rec { - version = "0.2-b3634a2c6eb6d6936c3b2c1ef5078bf3a84c40c6"; - name = "screenkey-${version}"; - - propagatedBuildInputs = with self; [ pygtk distutils_extra xlib pkgs.xorg.xmodmap ]; - - preConfigure = '' - substituteInPlace setup.py --replace "/usr/share" "./share" - - # disable the feature that binds a shortcut to turning on/off - # screenkey. This is because keybinder is not packages in Nix as - # of today. - substituteInPlace Screenkey/screenkey.py \ - --replace "import keybinder" "" \ - --replace " keybinder.bind(self.options['hotkey'], self.hotkey_cb, show_item)" "" - ''; - - src = pkgs.fetchgit { - url = https://github.com/scs3jb/screenkey.git; - rev = "b3634a2c6eb6d6936c3b2c1ef5078bf3a84c40c6"; - sha256 = "1535mpm5x6v85d4ghxhdiianhjrsz280dwvs61ss0yyjx4kivx3s"; - }; - - meta = { - homepage = https://github.com/scs3jb/screenkey; - description = "A screencast tool to show your keys"; - license = licenses.gpl3Plus; - maintainers = with maintainers; [ ]; - platforms = platforms.linux; - }; - }; - tarman = buildPythonPackage rec { version = "0.1.3"; name = "tarman-${version}";