From ded1963dd794191024c99579bdc43feb8e4a2777 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Jane=C5=BEi=C4=8D?= Date: Sun, 22 Mar 2026 12:05:15 +0100 Subject: [PATCH] feat: add calibre+kindle setup --- modules/nixos/calibre.nix | 32 ++++++++++++++++++++++++++++++++ profiles/desktop.nix | 1 + 2 files changed, 33 insertions(+) create mode 100644 modules/nixos/calibre.nix diff --git a/modules/nixos/calibre.nix b/modules/nixos/calibre.nix new file mode 100644 index 0000000..fc0f806 --- /dev/null +++ b/modules/nixos/calibre.nix @@ -0,0 +1,32 @@ +{ + lib, + config, + pkgs, + ... +}: +{ + options = { + calibre = { + enable = lib.mkEnableOption "Calibre e-book management with Kindle support"; + }; + }; + + config = lib.mkIf config.calibre.enable { + environment.systemPackages = [ pkgs.calibre ]; + + # udev rules for kindle and mtp device access + # NOTE:(@janezicmatej) uses services.udev.packages instead of extraRules + # because extraRules writes to 99-local.rules which is too late for uaccess + # see https://github.com/NixOS/nixpkgs/issues/308681 + services.udev.packages = [ + pkgs.libmtp + (pkgs.writeTextFile { + name = "kindle-udev-rules"; + text = '' + ACTION!="remove", SUBSYSTEM=="usb", ATTRS{idVendor}=="1949", TAG+="uaccess" + ''; + destination = "/etc/udev/rules.d/70-kindle.rules"; + }) + ]; + }; +} diff --git a/profiles/desktop.nix b/profiles/desktop.nix index ec08304..3836a89 100644 --- a/profiles/desktop.nix +++ b/profiles/desktop.nix @@ -16,5 +16,6 @@ printing.enable = lib.mkDefault true; workstation.enable = lib.mkDefault true; yubikey.enable = lib.mkDefault true; + calibre.enable = lib.mkDefault true; }; }