1{ stdenv
2, lib
3, rustPlatform
4, cargo
5, rustc
6, pkg-config
7, desktop-file-utils
8, appstream-glib
9, wrapGAppsHook4
10, meson
11, ninja
12, libadwaita
13, gtk4
14, tuxedo-rs
15}:
16let
17 src = tuxedo-rs.src;
18 sourceRoot = "source/tailor_gui";
19 pname = "tailor_gui";
20 version = tuxedo-rs.version;
21in
22stdenv.mkDerivation {
23
24 inherit src sourceRoot pname version;
25
26 cargoDeps = rustPlatform.fetchCargoTarball {
27 inherit src sourceRoot;
28 name = "${pname}-${version}";
29 hash = "sha256-mt4YQ0iB/Mlnm+o9sGgYVEdbxjF7qArxA5FIK4MAZ8M=";
30 };
31
32 nativeBuildInputs = [
33 rustPlatform.cargoSetupHook
34 pkg-config
35 desktop-file-utils
36 appstream-glib
37 wrapGAppsHook4
38 ];
39
40 buildInputs = [
41 cargo
42 rustc
43 meson
44 ninja
45 libadwaita
46 gtk4
47 ];
48
49 meta = with lib; {
50 description = "Rust GUI for interacting with hardware from TUXEDO Computers";
51 longDescription = ''
52 An alternative to the TUXEDO Control Center (https://www.tuxedocomputers.com/en/TUXEDO-Control-Center.tuxedo),
53 written in Rust.
54 '';
55 homepage = "https://github.com/AaronErhardt/tuxedo-rs";
56 license = licenses.gpl2Plus;
57 maintainers = with maintainers; [ mrcjkb ];
58 platforms = platforms.linux;
59 };
60}