Nix · 1912 bytes Raw Blame History
1 {
2 description = "gartray - System tray and quick settings panel";
3
4 inputs = {
5 nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
6 flake-utils.url = "github:numtide/flake-utils";
7 rust-overlay = {
8 url = "github:oxalica/rust-overlay";
9 inputs.nixpkgs.follows = "nixpkgs";
10 };
11 };
12
13 outputs = { self, nixpkgs, flake-utils, rust-overlay }:
14 flake-utils.lib.eachDefaultSystem (system:
15 let
16 overlays = [ (import rust-overlay) ];
17 pkgs = import nixpkgs {
18 inherit system overlays;
19 };
20
21 rustToolchain = pkgs.rust-bin.stable.latest.default.override {
22 extensions = [ "rust-src" "rust-analyzer" ];
23 };
24 in
25 {
26 devShells.default = pkgs.mkShell {
27 buildInputs = with pkgs; [
28 rustToolchain
29 pkg-config
30
31 # X11 dependencies
32 xorg.libX11
33 xorg.libXcursor
34 xorg.libXrandr
35 xorg.libXi
36 xorg.libxcb
37
38 # GLib/GTK for gartk-render
39 glib
40 cairo
41 pango
42
43 # Audio (PulseAudio)
44 libpulseaudio
45
46 # D-Bus for SNI/zbus
47 dbus
48 ];
49
50 shellHook = ''
51 echo "gartray development shell"
52 echo "Run 'cargo build' to build"
53 echo "Run 'cargo run -- daemon' to start daemon"
54 '';
55
56 RUST_BACKTRACE = 1;
57 };
58
59 packages.default = pkgs.rustPlatform.buildRustPackage {
60 pname = "gartray";
61 version = "0.1.0";
62 src = ./.;
63 cargoLock.lockFile = ./Cargo.lock;
64
65 nativeBuildInputs = with pkgs; [ pkg-config ];
66 buildInputs = with pkgs; [
67 xorg.libX11
68 xorg.libxcb
69 glib
70 cairo
71 pango
72 libpulseaudio
73 dbus
74 ];
75 };
76 }
77 );
78 }