guix_mirror_bot pushed a commit to branch master
in repository guix.

commit 9256d8ad94e33e910ee09bcee4396398d1eccc3b
Author: Andy Tai <[email protected]>
AuthorDate: Thu Dec 25 04:20:25 2025 -0800

    gnu: Add python-customtkinter.
    
    * gnu/packages/python-xyz.scm (python-customtkinter): New variable.
    
    Merges guix/guix#5108
    
    Change-Id: Iacfe7220ace7396e6d878283a2d36b6f97da3ca4
    Modified-by: Cayetano Santos <[email protected]>
    Signed-off-by: Cayetano Santos <[email protected]>
---
 gnu/packages/python-xyz.scm | 46 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 508eff5f19..9175813727 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -177,6 +177,7 @@
 ;;; Copyright © 2025 Hennadii Stepanov <[email protected]>
 ;;; Copyright © 2025 Luca Kredel <[email protected]>
 ;;; Copyright © 2025 Isidor Zeuner <[email protected]>
+;;; Copyright © 2025 Andy Tai <[email protected]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -860,6 +861,51 @@ features string-like objects which carry formatting 
information, per-line
 fullscreen terminal rendering, and keyboard input event reporting.")
     (license license:expat)))
 
+(define-public python-customtkinter
+  (package
+    (name "python-customtkinter")
+    (version "5.2.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/TomSchimansky/CustomTkinter";)
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0vma6x8zg7d5h2ggphi6m7bnqzskxysi9rcpkr6rrgylfrsv03fn"))))
+    (build-system pyproject-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'check 'start-xorg-server
+            (lambda _
+              (setenv "HOME" "/tmp")
+              ;; The test suite requires a running X server.
+              (system "Xvfb :99 -screen 0 1024x768x24 &")
+              (setenv "DISPLAY" ":99.0")))
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                (with-directory-excursion "test"
+                  (invoke "python" "unit_tests/test_all.py"))))))))
+    (propagated-inputs
+     (list (list python "tk")
+           python-darkdetect
+           python-packaging))
+    (native-inputs
+     (list python-setuptools
+           xorg-server-for-tests))
+    (home-page "https://customtkinter.tomschimansky.com";)
+    (synopsis
+     "Python @acronym{User Interface, UI} library based on Tkinter")
+    (description
+     "CustomTkinter provides fully customizable widgets, created and used
+like normal Tkinter widgets, which can also be used in combination with normal
+Tkinter elements.")
+    (license license:expat)))
+
 (define-public python-darkdetect
   (package
     (name "python-darkdetect")

Reply via email to