diff options
Diffstat (limited to 'modules/koreader')
| -rw-r--r-- | modules/koreader/default.nix | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/modules/koreader/default.nix b/modules/koreader/default.nix new file mode 100644 index 0000000..db12219 --- /dev/null +++ b/modules/koreader/default.nix @@ -0,0 +1,57 @@ +{ config, pkgs, lib, ... }: +with builtins // lib; +let + cfg = config.koreader; +in { + options.koreader = { + enable = mkEnableOption "KOReader"; + + package = mkPackageOption pkgs "kobo-koreader" {}; + + _allFiles = mkOption { + type = types.package; + readOnly = true; + internal = true; + default = (pkgs.callPackage ../lib/merge-files.nix {}) ([ + cfg.package + ] ++ attrValues cfg.file); + }; + + path = mkOption { + type = types.str; + readOnly = true; + internal = true; + default = ".adds/koreader"; + }; + + devicePath = mkOption { + type = types.str; + readOnly = true; + internal = true; + default = "/mnt/onboard/${cfg.path}"; + }; + + file = mkOption { + default = {}; + type = types.attrsOf (types.submodule (pkgs.callPackage ../lib/file-type.nix {})); + }; + + nickel = { + enable = mkEnableOption "Add NickelMenu entry" // { default = true; }; + }; + }; + + config = { + nickel.menu.item = mkIf (cfg.enable && cfg.nickel.enable) { + koreader = singleton { + location = "main"; + label = "KOReader"; + action = "cmd_spawn"; + arg = [ + "quiet" + "exec ${cfg.devicePath}/koreader.sh"; + ]; + }; + }; + }; +} |
