From c30cd8782527dc7c38bc5c5dfead55e35804f48b Mon Sep 17 00:00:00 2001 From: Jordan Holt Date: Sun, 26 Jan 2025 22:58:15 +0000 Subject: [PATCH] home-assistant-minimalist: add required lovelace modules --- pkgs/lovelace-auto-entities/package.nix | 43 +++++++++++++++++++++++++ pkgs/lovelace-layout-card/package.nix | 37 +++++++++++++++++++++ pkgs/lovelace-my-cards/package.nix | 37 +++++++++++++++++++++ pkgs/lovelace-state-switch/package.nix | 37 +++++++++++++++++++++ 4 files changed, 154 insertions(+) create mode 100644 pkgs/lovelace-auto-entities/package.nix create mode 100644 pkgs/lovelace-layout-card/package.nix create mode 100644 pkgs/lovelace-my-cards/package.nix create mode 100644 pkgs/lovelace-state-switch/package.nix diff --git a/pkgs/lovelace-auto-entities/package.nix b/pkgs/lovelace-auto-entities/package.nix new file mode 100644 index 0000000..3456e7e --- /dev/null +++ b/pkgs/lovelace-auto-entities/package.nix @@ -0,0 +1,43 @@ +{ + lib, + buildNpmPackage, + fetchFromGitHub, +}: + +buildNpmPackage rec { + pname = "lovelace-auto-entities"; + version = "v1.13.0"; + + src = fetchFromGitHub { + owner = "thomasloven"; + repo = "lovelace-auto-entities"; + rev = version; + hash = "sha256-ls8Jqt5SdiY5ROhtaSS4ZvoY+nHv6UB1RYApOJzC1VQ="; + }; + + npmDepsHash = "sha256-9z4YzLNxNh7I4yFxuPT3/erZO4itAiqyxL1a0pUTFRs="; + + installPhase = '' + runHook preInstall + + mkdir $out + cp ./auto-entities.js $out/ + + runHook postInstall + ''; + + passthru = { + entrypoint = "auto-entities.js"; + }; + + makeCacheWritable = true; + + meta = with lib; { + description = "Automatically populate the entities-list of lovelace cards"; + homepage = "https://github.com/thomasloven/lovelace-auto-entities"; + license = licenses.mit; + maintainers = [ ]; + mainProgram = "lovelace-auto-entities"; + platforms = platforms.linux; + }; +} diff --git a/pkgs/lovelace-layout-card/package.nix b/pkgs/lovelace-layout-card/package.nix new file mode 100644 index 0000000..173e455 --- /dev/null +++ b/pkgs/lovelace-layout-card/package.nix @@ -0,0 +1,37 @@ +{ + lib, + buildNpmPackage, + fetchFromGitHub, +}: + +buildNpmPackage rec { + pname = "lovelace-layout-card"; + version = "v2.4.5"; + + src = fetchFromGitHub { + owner = "thomasloven"; + repo = "lovelace-layout-card"; + rev = version; + hash = "sha256-JqHpd3u3HT9JuAfCQW0Bg/UIQ/pzurQBp9/PFa+0/u0="; + }; + + npmDepsHash = "sha256-1Crvtux1IbdtZ5dMxhYcrCw/6IxLpNwNwUMEJpWm4HM="; + + installPhase = '' + runHook preInstall + + mkdir $out + install -m0644 layout-card.js $out + + runHook postInstall + ''; + + makeCacheWritable = true; + + meta = with lib; { + description = "Get more control over the placement of lovelace cards."; + homepage = "https://github.com/thomasloven/lovelace-layout-card"; + license = licenses.mit; + maintainers = [ ]; + }; +} diff --git a/pkgs/lovelace-my-cards/package.nix b/pkgs/lovelace-my-cards/package.nix new file mode 100644 index 0000000..48d3873 --- /dev/null +++ b/pkgs/lovelace-my-cards/package.nix @@ -0,0 +1,37 @@ +{ + lib, + buildNpmPackage, + fetchFromGitHub, +}: + +buildNpmPackage rec { + pname = "my-cards"; + version = "v1.0.6"; + + src = fetchFromGitHub { + owner = "AnthonMS"; + repo = "my-cards"; + rev = version; + hash = "sha256-x0vOq87P1uOq5ILB4CSAowaAtUo4Nu9m6DFRiqa/Sw4="; + }; + + npmDepsHash = "sha256-QohapCm6ABarHYwLlAhubvlrU5Z626vNAX1OB8b9A6g="; + + installPhase = '' + runHook preInstall + + mkdir $out + install -m0644 dist/my-cards.js $out + + runHook postInstall + ''; + + makeCacheWritable = true; + + meta = with lib; { + description = "Bundle of my custom Lovelace cards for Home Assistant. Includes: my-slider, my-slider-v2, my-button"; + homepage = "https://github.com/AnthonMS/my-cards"; + license = licenses.mit; + maintainers = [ ]; + }; +} diff --git a/pkgs/lovelace-state-switch/package.nix b/pkgs/lovelace-state-switch/package.nix new file mode 100644 index 0000000..bd4d61f --- /dev/null +++ b/pkgs/lovelace-state-switch/package.nix @@ -0,0 +1,37 @@ +{ + lib, + buildNpmPackage, + fetchFromGitHub, +}: + +buildNpmPackage rec { + pname = "lovelace-state-switch"; + version = "1.9.5"; + + src = fetchFromGitHub { + owner = "thomasloven"; + repo = "lovelace-state-switch"; + rev = version; + hash = "sha256-jrybRchpZWmqauKKv4i4ht/CAdMNykOuPjlDnZh4KPw="; + }; + + npmDepsHash = "sha256-p+XPG6nB9wDmaWrmSc0dmJdKBdIivbM337Gf4j6xqBg="; + + installPhase = '' + runHook preInstall + + mkdir $out + install -m0644 state-switch.js $out + + runHook postInstall + ''; + + makeCacheWritable = true; + + meta = with lib; { + description = "Dynamically replace lovelace cards depending on occasion"; + homepage = "https://github.com/thomasloven/lovelace-state-switch"; + license = licenses.mit; + maintainers = [ ]; + }; +}