From 730070bc9d130c5ad5f6778b1be63329763e7e50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kier=C3=A1n=20Meinhardt?= Date: Sun, 13 Mar 2022 10:30:42 +0100 Subject: [PATCH] feat: rofi-hass --- configs/packages.nix | 1 + packages/scripts/default.nix | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/configs/packages.nix b/configs/packages.nix index 055a263..c9fac74 100644 --- a/configs/packages.nix +++ b/configs/packages.nix @@ -265,6 +265,7 @@ in { (pkgs.writers.writeDashBin "hass-cli" '' HASS_SERVER=http://zaatar.r:8123 HASS_TOKEN=${lib.strings.fileContents } exec ${pkgs.home-assistant-cli}/bin/hass-cli "$@" '') + scripts.rofi-hass ]; home-manager.users.me.xdg.configFile."pycodestyle".text = '' diff --git a/packages/scripts/default.nix b/packages/scripts/default.nix index c4d2e6e..85545e2 100644 --- a/packages/scripts/default.nix +++ b/packages/scripts/default.nix @@ -447,6 +447,20 @@ in ${pkgs.wget}/bin/wget -q -N https://github.com/Mic92/nix-index-database/releases/latest/download/$filename ln -f $filename files ''; + + rofi-hass = pkgs.writers.writeBashBin "rofi-hass" '' + export PATH=${lib.makeBinPath [pkgs.home-assistant-cli pkgs.jq pkgs.util-linux pkgs.rofi pkgs.gnused pkgs.libnotify]} + json=$(hass-cli -o json state list 2>/dev/null) + idx=$(jq -r '.[] | [.entity_id, .state] | join(" ")' <<< "$json" | column -t | rofi -dmenu -i -markup-rows -format d) + item=$(jq -r '.[].entity_id' <<< "$json" | sed "''${idx}q;d") + itype=$(sed -r 's/\..+$//' <<< "$item") + + case "$itype" in + light) hass-cli state toggle "$item" &>/dev/null ;; + scene) hass-cli service call --arguments entity_id="$item" scene.turn_on &>/dev/null ;; + *) notify-send "Error" "Event type '$itype' not implemented yet. Do you have time to file an issue or write a PR?" ;; + esac + ''; } // { devour = pkgs.callPackage {};