| { |
| description = "A Clicks project"; |
| inputs.flake-utils.url = "github:numtide/flake-utils"; |
| inputs.fenix = { |
| url = "github:nix-community/fenix"; |
| inputs.nixpkgs.follows = "nixpkgs"; |
| }; |
| outputs = |
| { nixpkgs, flake-utils, fenix, ... }: |
| flake-utils.lib.eachDefaultSystem ( |
| system: |
| let |
| pkgs = import nixpkgs { |
| inherit system; |
| overlays = [ fenix.overlays.default ]; |
| }; |
| tauri_libraries = with pkgs;[ |
| webkitgtk |
| gtk3 |
| cairo |
| gdk-pixbuf |
| glib |
| dbus |
| openssl_3 |
| librsvg |
| ]; |
| tauri_packages = with pkgs; [ |
| curl |
| wget |
| pkg-config |
| dbus |
| openssl_3 |
| glib |
| gtk3 |
| libsoup |
| webkitgtk |
| librsvg |
| ]; |
| in |
| { |
| devShells.default = pkgs.mkShell { |
| packages = [ |
| pkgs.nodePackages.pnpm |
| pkgs.nodejs_22 |
| pkgs.eslint_d |
| pkgs.cargo-tauri |
| (pkgs.fenix.stable.withComponents [ |
| "cargo" |
| "clippy" |
| "rust-src" |
| "rustc" |
| "rustfmt" |
| "rust-analyzer" |
| ]) |
| pkgs.bacon |
| pkgs.pkg-config |
| ] ++ tauri_packages; |
| shellHook = '' |
| export PKG_CONFIG_PATH=${ |
| pkgs.lib.makeSearchPathOutput "dev" "lib/pkgconfig" [ |
| pkgs.webkitgtk |
| pkgs.libsoup |
| pkgs.glib |
| pkgs.gtk3 |
| pkgs.pango |
| pkgs.gdk-pixbuf |
| pkgs.cairo |
| pkgs.at-spi2-atk |
| pkgs.harfbuzz |
| pkgs.zlib |
| pkgs.gtk-layer-shell |
| ] |
| } |
| export LD_LIBRARY_PATH=${pkgs.lib.makeLibraryPath tauri_libraries}:$LD_LIBRARY_PATH |
| export XDG_DATA_DIRS=${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}:${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}:$XDG_DATA_DIRS |
| ''; |
| }; |
| formatter = pkgs.nixfmt; |
| } |
| ); |
| } |