nextcompanion/flake.nix
Jonas Heinrich 256da4b440 add webview map, bike reservation, and desktop entry
- Replace list view with Leaflet.js WebView map with marker clustering
- Add floating action buttons over map (Rent, Show Rentals)
- Click station markers to show bikes with Rent/Reserve buttons
- Add bike type filter menu (All/Standard/E-bikes)
- Support bike reservations via booking API
- Show reserved bikes in rentals overview
- Add desktop entry for app launchers
- Update dependencies: webkit6 0.6, gtk4 0.11, libadwaita 0.9

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-27 22:41:24 +01:00

54 lines
1.6 KiB
Nix

{
description = "NextCompanion a minimal GTK4 Nextbike client for Linux";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
rust-overlay.url = "github:oxalica/rust-overlay";
};
outputs = { self, nixpkgs, rust-overlay, ... }:
let
system = "x86_64-linux";
overlays = [ (import rust-overlay) ];
pkgs = import nixpkgs { inherit system overlays; };
runtimeDeps = with pkgs; [
gtk4
libadwaita
glib
webkitgtk_6_0
];
buildDeps = with pkgs; [
pkg-config
rust-bin.stable.latest.default
];
in
{
devShells.${system}.default = pkgs.mkShell {
buildInputs = buildDeps ++ runtimeDeps;
shellHook = ''
export LD_LIBRARY_PATH="${pkgs.lib.makeLibraryPath runtimeDeps}:$LD_LIBRARY_PATH"
'';
};
packages.${system}.default = pkgs.rustPlatform.buildRustPackage {
pname = "next-companion";
version = "0.1.0";
src = ./.;
cargoLock.lockFile = ./Cargo.lock;
nativeBuildInputs = buildDeps;
buildInputs = runtimeDeps;
postInstall = ''
install -Dm644 data/icons/org.nextbike.NextCompanion.png \
$out/share/icons/hicolor/512x512/apps/org.nextbike.NextCompanion.png
install -Dm644 data/org.nextbike.NextCompanion.desktop \
$out/share/applications/org.nextbike.NextCompanion.desktop
'';
};
apps.${system}.default = {
type = "app";
program = "${self.packages.${system}.default}/bin/next-companion";
};
};
}