diff options
author | kirillrdy <kirillrdy@gmail.com> | 2024-05-11 07:15:27 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-11 07:15:27 +1000 |
commit | 2a827b9393040bc275de9e7a9311cc7c4bbc6df2 (patch) | |
tree | f3fb8ad103cc6680f9c7e885e36bbdc6165855ba | |
parent | 81b80434b6b370e93b67ea9d140cf4d24a6f858c (diff) | |
parent | 9e405368284ec757329ed6c61492ad15e66c945b (diff) |
Merge pull request #307508 from Sigmanificient/tuifi-experimental-dnd
tuifimanager: Add experimental drag and drop support
-rw-r--r-- | pkgs/by-name/tu/tuifimanager/package.nix | 42 |
1 files changed, 39 insertions, 3 deletions
diff --git a/pkgs/by-name/tu/tuifimanager/package.nix b/pkgs/by-name/tu/tuifimanager/package.nix index 569dff59703d1..7d54de40be3b0 100644 --- a/pkgs/by-name/tu/tuifimanager/package.nix +++ b/pkgs/by-name/tu/tuifimanager/package.nix @@ -1,8 +1,22 @@ -{ lib +{ stdenv +, lib , python3 , fetchFromGitHub +, kdePackages +, gnome +, qt6 +, makeWrapper +, x11Support ? stdenv.isLinux +# pypinput is marked as broken for darwin +, pynputSupport ? stdenv.isLinux +# Experimental Drag & Drop support requires x11 & pyinput suport +, hasDndSupport ? x11Support && pynputSupport +, enableDragAndDrop ? false }: +lib.throwIf (enableDragAndDrop && !hasDndSupport) + "Drag and drop support is only available for linux with xorg." + python3.pkgs.buildPythonApplication rec { pname = "tuifimanager"; version = "4.0.6"; @@ -18,12 +32,34 @@ python3.pkgs.buildPythonApplication rec { nativeBuildInputs = [ python3.pkgs.setuptools python3.pkgs.setuptools-scm - ]; + ] ++ (lib.optionals enableDragAndDrop [ + qt6.wrapQtAppsHook + makeWrapper + ]); propagatedBuildInputs = [ python3.pkgs.send2trash python3.pkgs.unicurses - ]; + ] ++ (lib.optionals enableDragAndDrop [ + python3.pkgs.pynput + python3.pkgs.pyside6 + python3.pkgs.requests + python3.pkgs.xlib + kdePackages.qtbase + kdePackages.qt6gtk2 + ]); + + postFixup = let + # fix missing 'adwaita' warning missing with ncurses tui + # see: https://github.com/NixOS/nixpkgs/issues/60918 + theme = gnome.gnome-themes-extra; + in + lib.optionalString enableDragAndDrop '' + wrapProgram $out/bin/tuifi \ + --prefix GTK_PATH : "${theme}/lib/gtk-2.0" \ + --set tuifi_synth_dnd True + ''; + pythonImportsCheck = [ "TUIFIManager" ]; meta = with lib; { |