forked from mirrors/nixpkgs
6031ae21f6
The original RIME_DATA_DIR is fixed at build time which is set to the package dir under nix store. A such dir is read only for users so if some one want to add a shared data, he has to override fcitx5-rime or librime, which isn't user-friendly. On other distributions, RIME_DATA_DIR may be under /usr/local/share/fcitx5 which is not existed on NixOS. If we set its to /run/current-system/sw/share/..., this will break for non-NixOS user. Therefore, we patch it with a special environment variable to let user to load it dynamically. Co-Authored-by: Lan Tian <xuyh0120@outlook.com>
19 lines
638 B
Diff
19 lines
638 B
Diff
:100644 100644 fac4f53 aed9617 M src/rimeengine.cpp
|
|
|
|
diff --git a/src/rimeengine.cpp b/src/rimeengine.cpp
|
|
index fac4f53..aed9617 100644
|
|
--- a/src/rimeengine.cpp
|
|
+++ b/src/rimeengine.cpp
|
|
@@ -164,7 +164,10 @@ void RimeEngine::rimeStart(bool fullcheck) {
|
|
RIME_ERROR() << "Failed to create user directory: " << userDir;
|
|
}
|
|
}
|
|
- const char *sharedDataDir = RIME_DATA_DIR;
|
|
+ const char *sharedDataDir = getenv("NIX_RIME_DATA_DIR");
|
|
+ if (!sharedDataDir) {
|
|
+ sharedDataDir = RIME_DATA_DIR;
|
|
+ }
|
|
|
|
RIME_STRUCT(RimeTraits, fcitx_rime_traits);
|
|
fcitx_rime_traits.shared_data_dir = sharedDataDir;
|