diff options
| author | Chris Wells <chris@mathematicaster.org> | 2024-09-03 12:13:30 -0500 |
|---|---|---|
| committer | Chris Wells <chris@mathematicaster.org> | 2024-09-03 12:13:30 -0500 |
| commit | 849bdb056feb8e064396970f79c8962b20b0c07f (patch) | |
| tree | 03c220b6f90ad1f68a45bb55cfba377c11260cf9 /modules/koreader/default.nix | |
| parent | d7483ed8505710033384d7fabad34470818bc760 (diff) | |
| download | kobo-manager-849bdb056feb8e064396970f79c8962b20b0c07f.tar kobo-manager-849bdb056feb8e064396970f79c8962b20b0c07f.tar.gz kobo-manager-849bdb056feb8e064396970f79c8962b20b0c07f.tar.bz2 kobo-manager-849bdb056feb8e064396970f79c8962b20b0c07f.tar.lz kobo-manager-849bdb056feb8e064396970f79c8962b20b0c07f.tar.xz kobo-manager-849bdb056feb8e064396970f79c8962b20b0c07f.tar.zst kobo-manager-849bdb056feb8e064396970f79c8962b20b0c07f.zip | |
Re-doing a bunch of this
Diffstat (limited to 'modules/koreader/default.nix')
| -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"; + ]; + }; + }; + }; +} |
