1{
2 lib,
3 buildPythonPackage,
4 pythonOlder,
5 fetchFromGitHub,
6 setuptools,
7 tkinter,
8 darkdetect,
9 packaging,
10 typing-extensions,
11}:
12let
13 pname = "customtkinter";
14 version = "5.2.2";
15in
16buildPythonPackage {
17 inherit pname version;
18 pyproject = true;
19 disabled = pythonOlder "3.7";
20
21 src = fetchFromGitHub {
22 owner = "TomSchimansky";
23 repo = "CustomTkinter";
24 tag = "v${version}";
25 hash = "sha256-1g2wdXbUv5xNnpflFLXvU39s16kmwvuegKWd91E3qm4=";
26 };
27
28 build-system = [
29 setuptools
30 tkinter
31 ];
32
33 dependencies = [
34 darkdetect
35 packaging
36 typing-extensions
37 ];
38
39 patches = [ ./0001-Add-Missing-Cfg-Packages.patch ];
40
41 pythonImportsCheck = [ "customtkinter" ];
42
43 meta = {
44 description = "Modern and customizable python UI-library based on Tkinter";
45 homepage = "https://github.com/TomSchimansky/CustomTkinter";
46 license = lib.licenses.mit;
47 longDescription = ''
48 CustomTkinter is a python UI-library based on Tkinter, which provides
49 new, modern and fully customizable widgets. They are created and
50 used like normal Tkinter widgets and can also be used in combination
51 with normal Tkinter elements. The widgets and the window colors
52 either adapt to the system appearance or the manually set mode
53 ('light', 'dark'), and all CustomTkinter widgets and windows support
54 HighDPI scaling (Windows, macOS). With CustomTkinter you'll get
55 a consistent and modern look across all desktop platforms
56 (Windows, macOS, Linux).
57 '';
58 maintainers = with lib.maintainers; [ FlameFlag ];
59 };
60}