Files
Kaloyan DanchevandClaude Opus 4.6 cbea5a322f
CI / Identify a merged version PR (push) Canceled after 0s
CI / Rust checks, rendering, and native package (push) Canceled after 0s
CI / Publish release and Homebrew feed (push) Canceled after 0s
Release PR / Maintain Version Packages PR (push) Canceled after 0s
Merge Luma launcher fork into monorepo
Move trampoline files (boot-hook, watcher, overlay) into trampoline/
subdirectory. Add upstream Luma v2.3.1 source at repo root with our
additions:

- Page::Ha (4th nav tab) with placeholder empty state
- HA tab config schema and default entity mapping (ha-home/)
- Nav keys renamed: "home" → "start", new "ha" tab between Apps and Settings
- All state.rs/view.rs/main.rs/tests.rs updated for 4-tab navigation

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-10-24 11:52:55 +03:00

87 lines
2.2 KiB
Nix

{
description = "Luma Rust/SDL2 development and packaging environment";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
rust-overlay = {
url = "github:oxalica/rust-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{ nixpkgs, rust-overlay, ... }:
let
systems = [
"aarch64-darwin"
"aarch64-linux"
"x86_64-linux"
];
forEachSystem =
f:
nixpkgs.lib.genAttrs systems (
system:
f (
import nixpkgs {
inherit system;
overlays = [ rust-overlay.overlays.default ];
}
)
);
project = builtins.fromJSON (builtins.readFile ./package.json);
pnpmVersion = nixpkgs.lib.removePrefix "pnpm@" project.packageManager;
in
{
devShells = forEachSystem (
pkgs:
let
# Match the native CI toolchain and include the TV's soft-float Rust std.
rust = pkgs.rust-bin.stable."1.93.0".minimal.override {
extensions = [
"clippy"
"rustfmt"
];
targets = [ "armv7-unknown-linux-gnueabi" ];
};
pnpm =
assert pkgs.lib.assertMsg (
pkgs.pnpm_10.version == pnpmVersion
) "The flake's pnpm must match package.json; update flake.lock and packageManager together.";
pkgs.pnpm_10;
in
{
default = pkgs.mkShell ({
name = "luma";
packages = [
pkgs.nodejs_24
pnpm
rust
pkgs.pkg-config
pkgs.SDL2
pkgs.woff2
(pkgs.python3.withPackages (python: [ python.fonttools ]))
pkgs.cmake
pkgs.git
]
++ pkgs.lib.optionals pkgs.stdenv.hostPlatform.isLinux [
pkgs.libGL
pkgs.mesa
pkgs.xvfb-run
];
});
}
);
formatter = forEachSystem (
pkgs:
pkgs.writeShellApplication {
name = "luma-nixfmt";
runtimeInputs = [ pkgs.nixfmt ];
text = ''
exec nixfmt "$@" flake.nix
'';
}
);
};
}