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 = "${src.name}/tailor_gui";
19 pname = "tailor_gui";
20 version = "0.2.3";
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-jcjq0uls28V8Ka2CMM8oOQmZZRUr9eEQeVtW56AmU28=";
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 mainProgram = "tailor_gui";
52 longDescription = ''
53 An alternative to the TUXEDO Control Center (https://www.tuxedocomputers.com/en/TUXEDO-Control-Center.tuxedo),
54 written in Rust.
55 '';
56 homepage = "https://github.com/AaronErhardt/tuxedo-rs";
57 license = licenses.gpl2Plus;
58 maintainers = with maintainers; [ mrcjkb xaverdh ];
59 platforms = platforms.linux;
60 };
61}