aboutsummaryrefslogtreecommitdiff
path: root/modules/koreader.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/koreader.nix')
-rw-r--r--modules/koreader.nix41
1 files changed, 32 insertions, 9 deletions
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"
+ ];
+ };
};
};
}