diff --git a/home/packages/cli/default.nix b/home/packages/cli/default.nix index befd2c7..7d6900b 100644 --- a/home/packages/cli/default.nix +++ b/home/packages/cli/default.nix @@ -3,5 +3,6 @@ _: { ./shared.nix ./desktop.nix ./wayland.nix + ./scripts ]; } diff --git a/home/packages/cli/scripts/default.nix b/home/packages/cli/scripts/default.nix new file mode 100644 index 0000000..aeb9128 --- /dev/null +++ b/home/packages/cli/scripts/default.nix @@ -0,0 +1,11 @@ +{ + pkgs, + ... +}: let + + scriptPkgs = (import ./packages {inherit pkgs;}); +in { + home.packages = with scriptPkgs; [ + bitcoin + ]; +} diff --git a/home/packages/cli/scripts/packages/bitcoin.nix b/home/packages/cli/scripts/packages/bitcoin.nix new file mode 100644 index 0000000..737e0d4 --- /dev/null +++ b/home/packages/cli/scripts/packages/bitcoin.nix @@ -0,0 +1,18 @@ +{pkgs, ...}: +(pkgs.writeShellApplication { + name = "bitcoin"; + runtimeInputs = with pkgs; [coreutils curl jq]; + text = '' + #!/bin/sh + + BTC_DATA=$(curl https://api.coindesk.com/v1/bpi/currentprice.json 2>/dev/null || echo 'ERR') + + if [ "$BTC_DATA" != "ERR" ]; then + BTC_PRICE=$(echo "$BTC_DATA" | jq -r ".bpi.USD.rate_float") + BTC_PRICE=$(printf "%.0f" "$BTC_PRICE") + echo \$"$BTC_PRICE" + else + echo "N/A" + fi + ''; +}) diff --git a/home/packages/cli/scripts/packages/default.nix b/home/packages/cli/scripts/packages/default.nix new file mode 100644 index 0000000..a7d2384 --- /dev/null +++ b/home/packages/cli/scripts/packages/default.nix @@ -0,0 +1,10 @@ +{ + pkgs, + ... +}: let + packages = { + bitcoin = pkgs.callPackage ./bitcoin.nix {}; + }; +in + packages + diff --git a/home/programs/graphical/bars/eww/config/modules/bitcoin.yuck b/home/programs/graphical/bars/eww/config/modules/bitcoin.yuck index 963ef6c..e0e9778 100644 --- a/home/programs/graphical/bars/eww/config/modules/bitcoin.yuck +++ b/home/programs/graphical/bars/eww/config/modules/bitcoin.yuck @@ -1,6 +1,6 @@ (defwidget bitcoin_module [] (eventbox - :onclick "~/.local/bin/scripts/cli/bitcoin | xargs -I_ ${EWW_CMD} update bitcoin=_" + :onclick "bitcoin | xargs -I_ ${EWW_CMD} update bitcoin=_" :class "module bitcoin" (box diff --git a/home/programs/graphical/bars/eww/config/modules/variables.yuck b/home/programs/graphical/bars/eww/config/modules/variables.yuck index 3dbc09e..f3be245 100644 --- a/home/programs/graphical/bars/eww/config/modules/variables.yuck +++ b/home/programs/graphical/bars/eww/config/modules/variables.yuck @@ -37,7 +37,7 @@ (defpoll bitcoin :interval "5m" :initial "$N/A" - `~/.local/bin/scripts/cli/bitcoin`) + `bitcoin`) ; TODO: Figure out how to store this one-time (defpoll kernel diff --git a/home/programs/graphical/bars/eww/default.nix b/home/programs/graphical/bars/eww/default.nix index 3988409..66f6164 100644 --- a/home/programs/graphical/bars/eww/default.nix +++ b/home/programs/graphical/bars/eww/default.nix @@ -6,6 +6,8 @@ }: let inherit (lib) mkIf; + scriptPkgs = (import ../../../../packages/cli/scripts/packages {inherit pkgs;}); + cfg = osConfig.myOptions.home-manager.programs.bars.eww; in { config = mkIf cfg.enable { @@ -36,6 +38,7 @@ in { wireplumber pulseaudio hyprland + scriptPkgs.bitcoin ]; in { Unit = {