mirror of
https://github.com/kmein/niveum
synced 2026-03-16 10:11:08 +01:00
traadfri: move out to module
This commit is contained in:
@@ -49,6 +49,7 @@
|
|||||||
<configs/theming.nix>
|
<configs/theming.nix>
|
||||||
<configs/tmux.nix>
|
<configs/tmux.nix>
|
||||||
<configs/todo-txt.nix>
|
<configs/todo-txt.nix>
|
||||||
|
<configs/traadfri.nix>
|
||||||
<configs/unclutter.nix>
|
<configs/unclutter.nix>
|
||||||
<configs/urxvt.nix>
|
<configs/urxvt.nix>
|
||||||
<configs/vscode.nix>
|
<configs/vscode.nix>
|
||||||
@@ -112,17 +113,8 @@
|
|||||||
odyssey = pkgs.callPackage <packages/odyssey.nix> {};
|
odyssey = pkgs.callPackage <packages/odyssey.nix> {};
|
||||||
wttr = pkgs.callPackage <packages/wttr.nix> {};
|
wttr = pkgs.callPackage <packages/wttr.nix> {};
|
||||||
git-quick-stats = pkgs.callPackage <packages/git-quick-stats.nix> {};
|
git-quick-stats = pkgs.callPackage <packages/git-quick-stats.nix> {};
|
||||||
libcoap = pkgs.callPackage <packages/libcoap.nix> {};
|
|
||||||
writeDash = pkgs.writers.writeDash;
|
writeDash = pkgs.writers.writeDash;
|
||||||
writeDashBin = pkgs.writers.writeDashBin;
|
writeDashBin = pkgs.writers.writeDashBin;
|
||||||
traadfri =
|
|
||||||
let traadfri-package = pkgs.fetchFromGitHub {
|
|
||||||
owner = "kmein";
|
|
||||||
repo = "traadfri";
|
|
||||||
rev = "9a34ce96363e0709adf9ff842e3dfc6d469e5217";
|
|
||||||
sha256 = "1dj4xvzq51n2s3vnwh8f83lxn00x895wc92jp83x3pkcrjvkkzxn";
|
|
||||||
};
|
|
||||||
in pkgs.python3Packages.callPackage traadfri-package {};
|
|
||||||
|
|
||||||
dic = pkgs.callPackage <stockholm/krebs/5pkgs/simple/dic> {};
|
dic = pkgs.callPackage <stockholm/krebs/5pkgs/simple/dic> {};
|
||||||
yt-next = pkgs.callPackage <stockholm/lass/5pkgs/yt-next> {};
|
yt-next = pkgs.callPackage <stockholm/lass/5pkgs/yt-next> {};
|
||||||
@@ -409,9 +401,6 @@
|
|||||||
n
|
n
|
||||||
wtf
|
wtf
|
||||||
depp
|
depp
|
||||||
] ++ [
|
|
||||||
libcoap
|
|
||||||
traadfri
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|||||||
21
configs/traadfri.nix
Normal file
21
configs/traadfri.nix
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{ pkgs, lib, ... }:
|
||||||
|
{
|
||||||
|
imports = [ <modules/traadfri.nix> ];
|
||||||
|
|
||||||
|
niveum.traadfri = {
|
||||||
|
enable = true;
|
||||||
|
user = "kmein";
|
||||||
|
host = "192.168.178.28";
|
||||||
|
key = lib.strings.removeSuffix "\n" (builtins.readFile <secrets/traadfri.key>);
|
||||||
|
rooms = {
|
||||||
|
bedroom = 131074;
|
||||||
|
corridor = 131076;
|
||||||
|
kitchen = 131075;
|
||||||
|
living-room = 131073;
|
||||||
|
};
|
||||||
|
bulbs = {
|
||||||
|
bedread = 65546;
|
||||||
|
livingread = 65537;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
46
modules/traadfri.nix
Normal file
46
modules/traadfri.nix
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
{ pkgs, lib, config, ... }:
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.niveum.traadfri;
|
||||||
|
traadfri =
|
||||||
|
let traadfri-package = pkgs.fetchFromGitHub {
|
||||||
|
owner = "kmein";
|
||||||
|
repo = "traadfri";
|
||||||
|
rev = "9a34ce96363e0709adf9ff842e3dfc6d469e5217";
|
||||||
|
sha256 = "1dj4xvzq51n2s3vnwh8f83lxn00x895wc92jp83x3pkcrjvkkzxn";
|
||||||
|
};
|
||||||
|
in pkgs.python3Packages.callPackage traadfri-package {
|
||||||
|
libcoap = pkgs.callPackage <packages/libcoap.nix> {};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.niveum.traadfri = {
|
||||||
|
enable = mkEnableOption "Trådfri CLI";
|
||||||
|
user = mkOption { type = types.str; };
|
||||||
|
host = mkOption { type = types.str; };
|
||||||
|
key = mkOption { type = types.str; };
|
||||||
|
rooms = mkOption { type = types.attrsOf types.int; default = {}; };
|
||||||
|
bulbs = mkOption { type = types.attrsOf types.int; default = {}; };
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
environment.shellAliases =
|
||||||
|
lib.attrsets.mapAttrs'
|
||||||
|
(name: value:
|
||||||
|
lib.nameValuePair "traadfri-${name}" "traadfri bulb ${toString value}")
|
||||||
|
cfg.bulbs
|
||||||
|
// lib.attrsets.mapAttrs'
|
||||||
|
(name: value:
|
||||||
|
lib.nameValuePair "traadfri-${name}" "traadfri group ${toString value}")
|
||||||
|
cfg.rooms;
|
||||||
|
|
||||||
|
environment.systemPackages = [
|
||||||
|
(pkgs.writeShellScriptBin "traadfri" ''
|
||||||
|
TRAADFRI_USER="${cfg.user}" \
|
||||||
|
TRAADFRI_KEY="${cfg.key}" \
|
||||||
|
TRAADFRI_HUB="${cfg.host}" \
|
||||||
|
${traadfri}/bin/traadfri $@
|
||||||
|
'')
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -13,26 +13,16 @@ in {
|
|||||||
<configs/nixpkgs-unstable.nix>
|
<configs/nixpkgs-unstable.nix>
|
||||||
<configs/save-space.nix>
|
<configs/save-space.nix>
|
||||||
<configs/tmux.nix>
|
<configs/tmux.nix>
|
||||||
|
<configs/traadfri.nix>
|
||||||
<modules/retiolum.nix>
|
<modules/retiolum.nix>
|
||||||
<modules/telegram-bot.nix>
|
<modules/telegram-bot.nix>
|
||||||
{
|
{
|
||||||
nixpkgs.config.packageOverrides = pkgs: {
|
environment.systemPackages = [ pkgs.wtf ];
|
||||||
libcoap = pkgs.callPackage <packages/libcoap.nix> {};
|
|
||||||
traadfri =
|
|
||||||
let traadfri-package = pkgs.fetchFromGitHub {
|
|
||||||
owner = "kmein";
|
|
||||||
repo = "traadfri";
|
|
||||||
rev = "9a34ce96363e0709adf9ff842e3dfc6d469e5217";
|
|
||||||
sha256 = "1dj4xvzq51n2s3vnwh8f83lxn00x895wc92jp83x3pkcrjvkkzxn";
|
|
||||||
};
|
|
||||||
in pkgs.python3Packages.callPackage traadfri-package {};
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = [ pkgs.traadfri ];
|
systemd.services.wtf = {
|
||||||
environment.variables = {
|
wantedBy = [ "multi-user.target" ];
|
||||||
TRAADFRI_USER = "kmein";
|
script = "${pkgs.tmux}/bin/tmux new-session -d '${pkgs.wtf}/bin/wtf --config=${wtf-config}'";
|
||||||
TRAADFRI_HUB = "192.168.178.28";
|
serviceConfig.Type = "oneshot";
|
||||||
TRAADFRI_KEY = builtins.readFile <secrets/traadfri.key>;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|||||||
Reference in New Issue
Block a user