From 725c13a6b620c048cf54741e5b782f78e393ab46 Mon Sep 17 00:00:00 2001 From: autumn Date: Tue, 30 Sep 2025 09:50:05 -0600 Subject: [PATCH] custom weather notifier --- flake.nix | 4 +++ home/autumn/home.nix | 9 +++-- home/packages/mako/mako.nix | 10 +++--- home/packages/waybar/waybar.nix | 8 +++++ system/extras/currents/flake.nix | 61 ++++++++++++++++++++++++++++++++ 5 files changed, 84 insertions(+), 8 deletions(-) create mode 100644 system/extras/currents/flake.nix diff --git a/flake.nix b/flake.nix index 90e7f64..fea2a36 100644 --- a/flake.nix +++ b/flake.nix @@ -3,7 +3,10 @@ description = "Autumn's multi-system configs"; inputs = { + #dev stuff pydev.url ="./system/extras/pydev/"; + currents.url = "./system/extras/currents/"; + #regular flakes nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; lix.url = "https://git.lix.systems/lix-project/lix/archive/main.tar.gz"; lix.flake = false; @@ -24,6 +27,7 @@ lix, home-manager, pydev, + currents, nixos-wsl, ... }@inputs: diff --git a/home/autumn/home.nix b/home/autumn/home.nix index 98ab4d3..08f3d12 100644 --- a/home/autumn/home.nix +++ b/home/autumn/home.nix @@ -1,4 +1,4 @@ -{ config, pkgs, ... }: +{ config, pkgs, inputs, ... }: { home = { @@ -52,5 +52,10 @@ ../packages/zsh/zsh.nix # package bundles ./bundles/langs.nix - ]; + + ## Development + inputs.currents.homeManagerModules.currents + ]; + + services.currents.enable = true; } diff --git a/home/packages/mako/mako.nix b/home/packages/mako/mako.nix index 13bcd0a..6c504e3 100644 --- a/home/packages/mako/mako.nix +++ b/home/packages/mako/mako.nix @@ -1,13 +1,11 @@ { config, pkgs, ... }: { - programs.mako = { + services.mako = { enable = true; - settings = '' - { - anchor = "top-center" - } - ''; + settings = { + anchor = "top-center"; + }; }; } diff --git a/home/packages/waybar/waybar.nix b/home/packages/waybar/waybar.nix index adadb29..eb08729 100644 --- a/home/packages/waybar/waybar.nix +++ b/home/packages/waybar/waybar.nix @@ -17,6 +17,7 @@ "river/tags" ]; modules-center = [ + "custom/currents" "river/window" ]; modules-right = [ @@ -153,6 +154,13 @@ on-click = "pavucontrol"; }; }; + + "custom/currents"= { + interval= 30; + exec= "currents --waybar"; + return-type= "json"; + }; + }; }; diff --git a/system/extras/currents/flake.nix b/system/extras/currents/flake.nix new file mode 100644 index 0000000..0a2d29b --- /dev/null +++ b/system/extras/currents/flake.nix @@ -0,0 +1,61 @@ +{ + description = "Currents, a weather alert daemon"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + home-manager.url = "github:nix-community/home-manager"; + }; + + outputs = { self, nixpkgs, home-manager }: + let + system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; + in + { + packages.${system}.default = pkgs.rustPlatform.buildRustPackage { + pname = "currents"; + version = "0.1.0"; + src = ./.; + cargoLock.lockFile = ./Cargo.lock; + }; + + # NixOS module (existing) + nixosModules.currents = { config, lib, pkgs, ... }: + with lib; + let cfg = config.services.currents; + in { + options.services.currents = { + enable = mkEnableOption "Currents, a weather alert daemon"; + }; + config = mkIf cfg.enable { + systemd.services."currents@" = { + # ... existing service config + }; + }; + }; + + # Home Manager module (new) + homeManagerModules.currents = { config, lib, pkgs, ... }: + with lib; + let cfg = config.services.currents; + in { + options.services.currents = { + enable = mkEnableOption "Currents, a weather alert daemon"; + }; + config = mkIf cfg.enable { + home.packages = [ self.packages.${system}.default ]; + systemd.user.services.currents = { + Unit.Description = "Currents, a weather alert daemon"; + Service = { + Type = "simple"; + ExecStart = "${self.packages.${system}.default}/bin/currents"; + Restart = "always"; + RestartSec = 10; + Environment = "RUST_LOG=info"; + }; + Install.WantedBy = [ "default.target" ]; + }; + }; + }; + }; +}