From 45156e2bdb359c22398f8c7a60fb729ad168786a Mon Sep 17 00:00:00 2001 From: Chris Wells Date: Thu, 25 Jan 2024 11:26:31 -0600 Subject: This distribution is coming together --- modules/koreader.nix | 41 ++++++++++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 9 deletions(-) (limited to 'modules/koreader.nix') diff --git a/modules/koreader.nix b/modules/koreader.nix index b4b6551..0a7300a 100644 --- a/modules/koreader.nix +++ b/modules/koreader.nix @@ -1,21 +1,44 @@ -{ config, pkgs, lib, ... }: +{ config, pkgs, lib, options, ... }: with builtins // lib; let cfg = config.koreader; in { options.koreader = { - enable = mkEnableOption "koreader"; - - generate = mkOption { - type = types.lines; - default = ""; - description = "Script used to generate the KOReader config"; - }; + enable = mkEnableOption "KOReader"; path = mkOption { type = types.str; default = ".adds/koreader"; - description = "Releative path to KOReader within src"; + description = "Relative path to KOReader within src"; + }; + + nickelEntry = mkEnableOption "Launch KOReader directly via nickelMenu"; + + file = mkOption { + type = options.file.type; + default = {}; + description = "Files relative to ${cfg.path}"; + }; + }; + + config = mkIf cfg.enable { + file = mapAttrs' (n: v: { + name = "koreader-${n}"; + value = v // { + target = "${cfg.path}/${v.target}"; + }; + }) cfg.file + + nickel.menu.items = mkIf cfg.nickelEntry { + koreader = singleton { + location = "main"; + label = "KOReader"; + action = "cmd_spawn"; + arg = [ + "quiet" + "exec /mnt/onboard/${cfg.path}/koreader.sh" + ]; + }; }; }; } -- cgit v1.2.3