diff options
| author | Chris Wells <chris@mathematicaster.org> | 2024-09-11 10:50:30 -0500 |
|---|---|---|
| committer | Chris Wells <chris@mathematicaster.org> | 2024-09-11 10:50:30 -0500 |
| commit | c3052ddc4e54092bfc9220d550ab4d8fcba166de (patch) | |
| tree | 836e2f11242afe8911e9eabd644c9a20ab668f3d | |
| parent | 4f471484b3a1e16230979a8406503a220b9101f4 (diff) | |
| download | kobo-manager-c3052ddc4e54092bfc9220d550ab4d8fcba166de.tar kobo-manager-c3052ddc4e54092bfc9220d550ab4d8fcba166de.tar.gz kobo-manager-c3052ddc4e54092bfc9220d550ab4d8fcba166de.tar.bz2 kobo-manager-c3052ddc4e54092bfc9220d550ab4d8fcba166de.tar.lz kobo-manager-c3052ddc4e54092bfc9220d550ab4d8fcba166de.tar.xz kobo-manager-c3052ddc4e54092bfc9220d550ab4d8fcba166de.tar.zst kobo-manager-c3052ddc4e54092bfc9220d550ab4d8fcba166de.zip | |
The modules seem fairly solid now. Now to write the cli
| -rw-r--r-- | data/affiliates.nix | 1 | ||||
| -rw-r--r-- | kobo/clara/Kobo eReader.conf | 125 | ||||
| -rw-r--r-- | kobo/clara/default.nix | 17 | ||||
| -rw-r--r-- | modules/build/firmware.nix | 3 | ||||
| -rw-r--r-- | modules/default.nix | 1 | ||||
| -rw-r--r-- | modules/device/default.nix | 18 | ||||
| -rw-r--r-- | modules/kfmon/default.nix | 34 | ||||
| -rw-r--r-- | modules/kobo/default.nix | 16 | ||||
| -rw-r--r-- | modules/koreader/default.nix | 23 | ||||
| -rw-r--r-- | modules/nickel/default.nix | 8 | ||||
| -rw-r--r-- | modules/onboard/default.nix | 49 | ||||
| -rw-r--r-- | modules/plato/default.nix | 43 | ||||
| -rw-r--r-- | pkgs/firmware/default.nix | 20 | ||||
| -rw-r--r-- | pkgs/kfmon/default.nix | 2 | ||||
| -rw-r--r-- | pkgs/koreader/default.nix | 2 | ||||
| -rw-r--r-- | pkgs/plato/default.nix | 4 |
16 files changed, 297 insertions, 69 deletions
diff --git a/data/affiliates.nix b/data/affiliates.nix index 1da8686..08ade43 100644 --- a/data/affiliates.nix +++ b/data/affiliates.nix @@ -5,4 +5,5 @@ "fnac" "beta" "walmartca" + "shopify" ] diff --git a/kobo/clara/Kobo eReader.conf b/kobo/clara/Kobo eReader.conf new file mode 100644 index 0000000..8bd7357 --- /dev/null +++ b/kobo/clara/Kobo eReader.conf @@ -0,0 +1,125 @@ +[ApplicationPreferences] +AIRPLANE_MODE=true +CurrentLocale=en +EarliestChangeLog=4.21.15023 +HomePageViewVisitCount=20 +LastAffiliateSyncTime=@Variant(\0\0\0\x10\0%\x88\x94\x2\x3wo\x2) +LastAuthorsListSorter_authorList_=sortByLastName() +LastFTEStep=BEGIN +LastLibrarySorter_author_filterByAuthor%28Dost%20K%F6rpe%29=sortByNewest() +LastLibrarySorter_author_filterByAuthor%28Gail%20Carson%20Levine%29=sortByNewest() +LastLibrarySorter_author_filterByAuthor%28Margherita%20Botto%29=sortByNewest() +LastLibrarySorter_author_filterByAuthor%28Naomi%20Novik%29=sortByNewest() +LastLibrarySorter_author_filterByAuthor%28Unknown%20Author%29=sortByNewest() +LastLibrarySorter_author_filterByAuthor%28%U5B89%U5A1C%UFF0E%U7F85%U6717%U5FB7%29=sortByNewest() +LastLibrarySorter_books_filterByAllItems%28%29=sortByNewest() +LastLibrarySubFilter_author_filterByAuthor%28Dost%20K%F6rpe%29= +LastLibrarySubFilter_author_filterByAuthor%28Gail%20Carson%20Levine%29= +LastLibrarySubFilter_author_filterByAuthor%28Margherita%20Botto%29= +LastLibrarySubFilter_author_filterByAuthor%28Naomi%20Novik%29= +LastLibrarySubFilter_author_filterByAuthor%28Unknown%20Author%29= +LastLibrarySubFilter_author_filterByAuthor%28%U5B89%U5A1C%UFF0E%U7F85%U6717%U5FB7%29= +LastLibrarySubFilter_books_filterByAllItems%28%29= +LastLibraryTab=Books +LastLibraryViewType_author=viewBy5List() +LastLibraryViewType_books=viewBy5List() +LastLibraryViewType_series=viewBy5List() +LastLibraryViewType_seriesList=viewBy5List() +LastSearchType_Home=Store +LastSearchType_Store=Store +LastSeriesListSorter_seriesList_=sortByRecent() +LastShelfListSorter_shelfList_=sortByShelfName() +LastUpdateCheckTime=@Variant(\0\0\0\x10\0%\x88\x96\x3(\a$\x2) +LibraryViewVisitCount=9 +LongPressDialogShown=true +MarkAsFinishedLastShown=@Variant(\0\0\0\x10\0%\x87\xcf\x1\x1c\x43\xf1\xff) +MarkAsUnreadLastShown=@Variant(\0\0\0\x10\0%\x88\x95\x4\xbfR\x19\xff) +MostRecentReadID="file:///mnt/onboard/Harrison, Kim/Black Magic Sanction - Kim Harrison.epub" +PeriodicAutoSync=false +QuickTourWidgetShown=true +SmartLink_%05=3 +SwipeDialogShown=true +SyncReminderDialogShown=true +firstRunDate=@Variant(\0\0\0\x10\0%\x87\xce\x5%\x9a\x44\x2) +lastPlugTime=@Variant(\0\0\0\x10\0%\x8b\x8d\x3\xb1\x6V\x2) +sleepOnNextBoot=false +syncOnNextBoot=false + +[DialogSettings] +ReleaseNotesShown=true + +[FeatureSettings] +ExcludeSyncFolders=(\\.(?!kobo|adobe).+|([^.][^/]*/)+\\..+) + +[OneStoreServices] +account_page=https://secure.kobobooks.com/profile +account_page_rakuten=https://my.rakuten.co.jp/ +autocomplete=https://storeapi.kobo.com/v1/products/autocomplete +book=https://storeapi.kobo.com/v1/products/books/{ProductId} +book_detail_page=https://www.kobo.com/{region}/{language}/ebook/{slug} +book_detail_page_rakuten=http://books.rakuten.co.jp/rk/{crossrevisionid} +book_landing_page=https://www.kobo.com/ebooks +categories=https://storeapi.kobo.com/v1/categories +category=https://storeapi.kobo.com/v1/categories/{CategoryId} +category_products=https://storeapi.kobo.com/v1/categories/{CategoryId}/products +dictionary_host=https://kbdownload1-a.akamaihd.net +discovery_host=https://discovery.kobobooks.com +dropbox_link_account_poll= +eula_page="https://www.kobo.com/termsofuse?style=onestore" +featured_list=https://storeapi.kobo.com/v1/products/featured/{FeaturedListId} +featured_lists=https://storeapi.kobo.com/v1/products/featured +feedback= +fte_feedback=https://storeapi.kobo.com/v1/products/ftefeedback +image_host=//kbimages1-a.akamaihd.net/ +image_url_quality_template=https://kbimages1-a.akamaihd.net/{ImageId}/{Width}/{Height}/{Quality}/{IsGreyscale}/image.jpg +image_url_template=https://kbimages1-a.akamaihd.net/{ImageId}/{Width}/{Height}/false/image.jpg +kobo_audiobooks_credit_redemption=False +kobo_audiobooks_enabled=True +kobo_dropbox_link_account_enabled=False +kobo_nativeborrow_enabled=True +kobo_privacyCentre_url=https://www.kobo.com/privacy +kobo_redeem_enabled=True +kobo_subscriptions_enabled=False +kobo_superpoints_enabled=True +kobo_wishlist_enabled=True +love_points_redemption_page="https://www.kobo.com/{region}/{language}/KoboSuperPointsRedemption?productId={ProductId}" +oauth_host=https://oauth.kobo.com +password_retrieval_page=https://www.kobo.com/passwordretrieval.html +privacy_page="https://www.kobo.com/privacypolicy?style=onestore" +product_recommendations=https://storeapi.kobo.com/v1/products/{ProductId}/recommendations +product_reviews=https://storeapi.kobo.com/v1/products/{ProductIds}/reviews +purchase_buy_templated=https://www.kobo.com/{region}/{language}/checkout/createpurchase/{ProductId} +reading_services_host=https://readingservices.kobo.com +registration_page="https://authorize.kobo.com/signup?returnUrl=http://kobo.com/" +review=https://storeapi.kobo.com/v1/products/reviews/{ReviewId} +review_sentiment=https://storeapi.kobo.com/v1/products/reviews/{ReviewId}/sentiment/{Sentiment} +sign_in_page="https://authorize.kobo.com/signin?returnUrl=http://kobo.com/" +social_host=https://social.kobobooks.com +store_home=www.kobo.com/{region}/{language} +store_host=www.kobo.com +store_search="https://www.kobo.com/{region}/{language}/Search?Query={query}" +subs_landing_page= +subs_management_page= +subs_plans_page= +subs_purchase_buy_templated= +subscription_publisher_price_page= +taste_profile=https://storeapi.kobo.com/v1/products/tasteprofile +user_ratings=https://storeapi.kobo.com/v1/user/ratings +user_recommendations=https://storeapi.kobo.com/v1/user/recommendations +user_reviews=https://storeapi.kobo.com/v1/user/reviews +userguide_host=https://kbdownload1-a.akamaihd.net + +[OverDrive] +overdrive_account=https://auth.overdrive.com/account +overdrive_library=https://{libraryKey}.auth.overdrive.com/library +overdrive_library_finder_host=https://libraryfinder.api.overdrive.com +overdrive_thunder_host=https://thunder.api.overdrive.com + +[PowerOptions] +ColorSetting=6400 +FrontLightLevel=1 + +[ReadingLife] +FacebookAuthToken= +FacebookName= +FacebookTokenExpiry=@Variant(\0\0\0\x10\0\0\0\0\xff\xff\xff\xff\xff) diff --git a/kobo/clara/default.nix b/kobo/clara/default.nix index b061c7f..0bb35d4 100644 --- a/kobo/clara/default.nix +++ b/kobo/clara/default.nix @@ -3,6 +3,9 @@ with builtins // lib; { device = { name = "Kobo Clara HD"; + serialNumber = "N249191243488"; + affiliate = "kobo"; + forceAffiliate = true; }; firmware = { @@ -34,10 +37,13 @@ with builtins // lib; sleep-cover = true; auto-suspend = 15.0; auto-power-off = 4.0; + wifi = false; + auto-share = false; time-format = "%I:%M%P"; reader = { font-size = 10.0; font-family = "Fira Math"; + font-path = "fonts"; }; dictionary = { font-size = 10.0; @@ -47,6 +53,17 @@ with builtins // lib; power-off = "${config.kobo.devicePath}/screensaver/main.png"; share = power-off; }; + libraries = [ + { + name = "On Board"; + path = "/mnt/onboard"; + mode = "database"; + sort-method = "progress"; + first-column = "title-and-author"; + second-column = "progress"; + thumbnail-previews = true; + } + ]; }; }; diff --git a/modules/build/firmware.nix b/modules/build/firmware.nix index 3a1039b..785de4f 100644 --- a/modules/build/firmware.nix +++ b/modules/build/firmware.nix @@ -32,8 +32,7 @@ in { ]; } '' mkdir $out - tar czvf $out/KoboRoot.tgz --directory="${config.firmware.package.KoboRoot}" . --mode=u+w - rsync -rv --links --executability --chmod=u+w "${config.firmware.package.out}/" $out + rsync -rv --links --executability --chmod=u+w "${config.firmware.package}/" $out # Check that we haven't fucked up! KOBOVERSION="$(kobo-versionextract "$out/KoboRoot.tgz" | awk '{if ($1 == "Version:") print $2}')" diff --git a/modules/default.nix b/modules/default.nix index 1c9fee4..3cf1fe6 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -8,6 +8,7 @@ ./koboroot ./koreader ./nickel + ./onboard ./plato ]; } diff --git a/modules/device/default.nix b/modules/device/default.nix index 23be585..114c68c 100644 --- a/modules/device/default.nix +++ b/modules/device/default.nix @@ -34,6 +34,14 @@ in { default = "kobo"; }; + forceAffiliate = mkOption { + type = types.bool; + default = false; + description = '' + Write the given affiliate to /mnt/onboard/.kobo/affiliate.conf + ''; + }; + hardware = hardware // { default = config._allDevices.${config.device.name}.hardware; }; @@ -48,4 +56,14 @@ in { }; }; }; + + config = { + onboard.file = { + ".kobo/affiliate.conf" = mkIf config.device.forceAffiliate { + text = generators.toINI {} { + General.affiliate = config.device.affiliate; + }; + }; + }; + }; } diff --git a/modules/kfmon/default.nix b/modules/kfmon/default.nix index a2fcbb9..8ac50e4 100644 --- a/modules/kfmon/default.nix +++ b/modules/kfmon/default.nix @@ -83,23 +83,37 @@ in { kfmon.file = mapAttrs' (n: v: { name = "kfmon-config-${n}"; value = { - text = generators.toINI {} v; + text = generators.toINI { + mkKeyValue = generators.mkKeyValueDefault {} " = "; + } v; target = let - fixedN = if isSuffix ".ini" n then n else "${n}.ini"; + fixedN = if hasSuffix ".ini" n then n else "${n}.ini"; in "config/${fixedN}"; }; - }); + }) cfg.configs; + + kfmon.configs = { + kfmon.daemon = { + db_timeout = 500; + use_syslog = 0; + with_notifications = 1; + }; + kfmon-log.watch = { + filename = "/mnt/onboard/icons/kfmon.png"; + action = "${cfg.devicePath}/bin/kfmon-printlog.sh"; + label = "Show KFMon log"; + hidden = 1; + block_spawns = 0; + do_db_update = 0; + db_title = "KFMon Log"; + db_author = "NiLuJe"; + db_comment = "Print the last few lines of KFMon's log"; + }; + }; } (mkIf cfg.enable { koboroot.include = singleton cfg.finalPackage; - # koboroot.include = [ - # (pkgs.linkFarm [{ - # name = cfg.devicePath; - # path = cfg._allFiles; - # }]) - # cfg.package.KoboRoot - # ]; }) ]; } diff --git a/modules/kobo/default.nix b/modules/kobo/default.nix index 48bca11..ec0c469 100644 --- a/modules/kobo/default.nix +++ b/modules/kobo/default.nix @@ -65,23 +65,37 @@ in { default = {}; description = "https://wiki.mobileread.com/wiki/Kobo_Configuration_Options"; }; + + analytics = mkOption { + type = ini.type; + default = {}; + }; }; config = mkMerge [ { kobo = { conf = { - FeatureSettings.ExcludeSyncFolders = ''(\.(?!kobo|adobe).+|([^.][^/]*/)+\..+)''; ApplicationPreferences = { + CurrentLocale = "en"; SideloadedMode = true; QuickTourShown = true; }; + FeatureSettings = { + ExcludeSyncFolders = ''(\\.(?!kobo|adobe).+|([^.][^/]*/)+\\..+)''; + }; + DialogSettings = { + ReleaseNotesShown = true; + }; }; file = { "Kobo eReader.conf" = mkIf (cfg.conf != {}) { text = generators.toINI {} cfg.conf; }; + "Analytics.conf" = mkIf (cfg.analytics != {}) { + text = generators.toINI {} cfg.analytics; + }; }; }; } diff --git a/modules/koreader/default.nix b/modules/koreader/default.nix index ab1be83..41355b7 100644 --- a/modules/koreader/default.nix +++ b/modules/koreader/default.nix @@ -35,15 +35,6 @@ in { ]; }; }; - # _allFiles = mkOption { - # type = types.package; - # readOnly = true; - # internal = true; - # default = pkgs.symlinkJoin { - # name = "koreader-files"; - # paths = mapAttrsToList (_: v: v._package) cfg.file ++ [ cfg.package ]; - # }; - # }; path = mkOption { type = types.str; @@ -66,7 +57,7 @@ in { }; nickel = { - enable = mkEnableOption "Add NickelMenu entry" // { default = true; }; + enable = mkEnableOption "Add NickelMenu entry" // { default = ! config.kfmon.enable; }; }; }; @@ -88,6 +79,18 @@ in { ]; }; }; + + kfmon.configs.koreader.watch = { + filename = "/mnt/onboard/icons/koreader.png"; + action = "${cfg.devicePath}/koreader.sh"; + label = "KOReader"; + hidden = 0; + block_spawns = 1; + do_db_update = 0; + db_title = "KOReader"; + db_author = "KOReader Devs"; + db_comment = "An eBook reader application"; + }; }) ]; } diff --git a/modules/nickel/default.nix b/modules/nickel/default.nix index 7663e93..d9c208a 100644 --- a/modules/nickel/default.nix +++ b/modules/nickel/default.nix @@ -159,19 +159,19 @@ in { info.nickel = cfg.enable; nickel = { - file = mkMerge [ + file = (mapAttrs (_: v: { text = concatMapStringsSep "\n" createGenerator v; }) cfg.menu.generator) - + // (mapAttrs (_: v: { text = concatStringsSep "\n" (mapAttrsToList createExperimental v); }) cfg.menu.experimental) - + // (mapAttrs (_: v: { text = concatMapStringsSep "\n" createMenuItem v; }) cfg.menu.item) - ]; + ; }; } (mkIf cfg.enable { diff --git a/modules/onboard/default.nix b/modules/onboard/default.nix new file mode 100644 index 0000000..4af7573 --- /dev/null +++ b/modules/onboard/default.nix @@ -0,0 +1,49 @@ +{ config, pkgs, lib, ... }: +with builtins // lib; +let + cfg = config.onboard; +in { + options.onboard = { + + file = mkOption { + default = {}; + type = types.attrsOf (types.submodule (pkgs.callPackage ../lib/file-type.nix {})); + apply = filterAttrs (_: v: v.enable); + }; + + devicePath = mkOption { + type = types.str; + readOnly = true; + internal = true; + default = "/mnt/onboard"; + }; + + _createdFiles = mkOption { + type = types.package; + internal = true; + readOnly = true; + default = pkgs.buildEnv { + name = "onboard-files-created"; + paths = mapAttrsToList (_: v: v._package) cfg.file; + extraPrefix = cfg.devicePath; + }; + }; + + finalPackage = mkOption { + type = types.package; + readOnly = true; + internal = true; + default = pkgs.mergePaths { + name = "onboard-package"; + paths = [ + cfg._createdFiles + ]; + }; + }; + }; + + config = { + koboroot.include = mkAfter [ cfg.finalPackage ]; + }; + +} diff --git a/modules/plato/default.nix b/modules/plato/default.nix index 74fe8c1..8312912 100644 --- a/modules/plato/default.nix +++ b/modules/plato/default.nix @@ -70,31 +70,6 @@ in { cfg.package.KoboRoot ]; }; - # pkgs.symlinkJoin { - # name = "plato-package"; - # paths = [ - # cfg._createdFiles - # # (pkgs.linkFarm "plato-files" [{ - # # name = removePrefix "/" cfg.devicePath; - # # path = cfg.package.out; - # # }]) - # (pkgs.runCommandLocal "plato-files" {} '' - # mkdir -p "$(dirname "$out${cfg.devicePath}")" - # cp -r "${cfg.package.out}" "$out${cfg.devicePath}" - # '') - # cfg.package.KoboRoot - # ]; - # }; - }; - - _allFiles = mkOption { - type = types.package; - readOnly = true; - internal = true; - default = pkgs.symlinkJoin { - name = "plato-files"; - paths = mapAttrsToList (_: v: v._package) cfg.file ++ [ cfg.package ]; - }; }; file = mkOption { @@ -104,7 +79,7 @@ in { }; nickel = { - enable = mkEnableOption "Add NickelMenu option" // { default = true; }; + enable = mkEnableOption "Add NickelMenu option" // { default = ! config.kfmon.enable; }; }; @@ -153,7 +128,7 @@ in { default = let copyDicts = pkg: '' - find ${pkg}/share/dictd/ -type f -regex '.*\.\(dict\(\.dz\)?\|index\)' -exec cp -v {} $out/ \; + find ${pkg}/ -type f -regex '^.*\.\(dict\(\.dz\)?\|index\)$' -exec cp -v {} $out/ \; ''; in pkgs.runCommandLocal "plato-dictionaries" {} '' mkdir $out @@ -173,7 +148,7 @@ in { default = let copyFonts = pkg: '' - find ${pkg}/share/fonts/ -type f -regex '.*\.\(ttf\|otf\)' -exec cp -v {} $out/ \; + find ${pkg}/ -type f -regex '^.*\.\(ttf\|otf\)$' -exec cp -v {} $out/ \; ''; in pkgs.runCommandLocal "plato-fonts" {} '' mkdir $out @@ -231,6 +206,18 @@ in { ]; }; }; + + kfmon.configs.plato.watch = { + filename = "/mnt/onboard/icons/plato.png"; + action = "${cfg.devicePath}/plato.sh"; + label = "Plato"; + hidden = 0; + block_spawns = 1; + do_db_update = 0; + db_title = "Plato"; + db_author = "Baskerville"; + db_comment = "A document reader"; + }; }) ]; } diff --git a/pkgs/firmware/default.nix b/pkgs/firmware/default.nix index e33cf4a..2e6edf9 100644 --- a/pkgs/firmware/default.nix +++ b/pkgs/firmware/default.nix @@ -1,4 +1,4 @@ -{ stdenvNoCC, fetchzip, lib, rsync, kobo-utils, gawk, ... }: +{ stdenvNoCC, fetchzip, lib, kobo-utils, gawk, ... }: { hardware, date, version, hash ? "", ... }: stdenvNoCC.mkDerivation (finalAttrs: { pname = "kobo-firmware"; @@ -13,13 +13,12 @@ stdenvNoCC.mkDerivation (finalAttrs: { nativeBuildInputs = [ kobo-utils gawk - rsync ]; - outputs = [ - "out" - "KoboRoot" - ]; + # outputs = [ + # "out" + # "KoboRoot" + # ]; phases = [ "checkPhase" @@ -40,10 +39,11 @@ stdenvNoCC.mkDerivation (finalAttrs: { installPhase = '' runHook preInstall - rsync -av --links --exclude="KoboRoot.tgz" $src/ $out + cp -rv $src $out + # rsync -av --links --exclude="KoboRoot.tgz" $src/ $out - mkdir $KoboRoot - tar xvzf $src/KoboRoot.tgz --directory=$KoboRoot + # mkdir $KoboRoot + # tar xvzf $src/KoboRoot.tgz --directory=$KoboRoot runHook postInstall ''; @@ -58,6 +58,6 @@ stdenvNoCC.mkDerivation (finalAttrs: { Kobo firmware files. ''; platform = platforms.all; - outputsToInstall = finalAttrs.outputs; + # outputsToInstall = finalAttrs.outputs; }; }) diff --git a/pkgs/kfmon/default.nix b/pkgs/kfmon/default.nix index 20addac..21a8231 100644 --- a/pkgs/kfmon/default.nix +++ b/pkgs/kfmon/default.nix @@ -25,7 +25,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { mkdir $KoboRoot tar xvzf $src/.kobo/KoboRoot.tgz --directory=$KoboRoot - install -D -t $KoboRoot/mnt/onboard $src/kfmon.png + install -D -t $KoboRoot/mnt/onboard/icons $src/kfmon.png runHook postInstall ''; diff --git a/pkgs/koreader/default.nix b/pkgs/koreader/default.nix index 9427fe1..25cb2de 100644 --- a/pkgs/koreader/default.nix +++ b/pkgs/koreader/default.nix @@ -23,7 +23,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { mkdir $KoboRoot - install -D -t $KoboRoot/mnt/onboard $src/koreader.png + install -D -t $KoboRoot/mnt/onboard/icons $src/koreader.png runHook postInstall ''; diff --git a/pkgs/plato/default.nix b/pkgs/plato/default.nix index 6246f2b..36f9135 100644 --- a/pkgs/plato/default.nix +++ b/pkgs/plato/default.nix @@ -29,11 +29,11 @@ stdenvNoCC.mkDerivation (finalAttrs: { installPhase = '' runHook preInstall - cp -r $src $out + cp -ra $src $out mkdir $KoboRoot - install -D -t $KoboRoot/mnt/onboard $picSrc/artworks/plato.png + install -D -t $KoboRoot/mnt/onboard/icons $picSrc/artworks/plato.png runHook postInstall ''; |
