feat(rime): add rime config for multiple dialects

This commit is contained in:
js0ny 2025-11-12 15:25:30 +00:00
parent 4b9a026a9e
commit ab5bc055c6

View file

@ -4,18 +4,82 @@
... ...
}: let }: let
version = "v13.3.12"; version = "v13.3.12";
rimeConfig = pkgs.fetchzip { rimeWanxiang = pkgs.fetchzip {
url = "https://github.com/amzxyz/rime_wanxiang/releases/download/${version}/rime-wanxiang-zrm-fuzhu.zip"; url = "https://github.com/amzxyz/rime_wanxiang/releases/download/${version}/rime-wanxiang-zrm-fuzhu.zip";
# sha256 = lib.fakeHash; # sha256 = lib.fakeHash;
sha256 = "sha256-vnhg+//ByZmQ2uxBZTn3cDYKrUFckLAuU8MfB8kSDVA="; sha256 = "sha256-vnhg+//ByZmQ2uxBZTn3cDYKrUFckLAuU8MfB8kSDVA=";
stripRoot = false; stripRoot = false;
}; };
# Create a modified version of rimeConfig without custom_phrase.txt rimeCantonese = pkgs.fetchFromGitHub {
rimeConfigFiltered = pkgs.runCommand "rime-config-filtered" {} '' owner = "rime";
cp -r ${rimeConfig} $out repo = "rime-cantonese";
rev = "69615390ccb65736186f5cb76b32bed365fd18ed";
sha256 = "sha256-vkE+kag5ZXwJwlGBWCTDZkP00h4/XwanpK1aChj+S2o=";
};
rimeTeochew = pkgs.fetchFromGitHub {
owner = "kahaani";
repo = "dieghv";
rev = "1709bb786a144de7be2229755011fde9034457de";
sha256 = "sha256-rMViEO0nxNEjVZbHwB0e9vSpe5TfHV7CuJoouS84Pjg=";
};
rimeLatex = pkgs.fetchFromGitHub {
owner = "shenlebantongying";
repo = "rime_latex";
rev = "858f2abc645f0e459e468e98122470ce20b16b30";
sha256 = "sha256-i8Rgze+tQhbE+nl+JSj09ILXeUvf6MOS9Eqsuqis1n0=";
};
rimeLatexFiltered = pkgs.runCommand "rime-latex-filtered" {} ''
cp -r ${rimeLatex} $out
chmod -R u+w $out chmod -R u+w $out
rm -f $out/custom_phrase.txt
find $out -name "*.md" -type f -delete
rm -rf $out/.scripts
rm -f $out/LICENSE # GPLv3
'';
rimeTeochewFiltered = pkgs.runCommand "rime-teochew-filtered" {} ''
cp -r ${rimeTeochew} $out
chmod -R u+w $out
find $out -name "*.md" -type f -delete
'';
# Filter rime-cantonese: remove .md files and unwanted directories
rimeCantoneseFiltered = pkgs.runCommand "rime-cantonese-filtered" {} ''
cp -r ${rimeCantonese} $out
chmod -R u+w $out
# Remove unwanted directories
rm -rf $out/.ci
rm -rf $out/.github
rm -rf $out/demo
# Remove all .md files
find $out -name "*.md" -type f -delete
'';
# Create a modified version of rimeWanxiang with custom_phrase.txt modifications
# and merge with rime-cantonese
rimeConfigFiltered = pkgs.runCommand "rime-config-filtered" {} ''
cp -r ${rimeWanxiang} $out
chmod -R u+w $out
# Modify custom_phrase.txt: replace the third line
if [ -f $out/custom_phrase.txt ]; then
sed -i '3c\test\tt\t50' $out/custom_phrase.txt
else
# If the file doesn't exist, create it with the desired content
echo -e "# Line 1\n# Line 2\ntest\tt\t50" > $out/custom_phrase.txt
fi
# Merge rime files
cp -r ${rimeCantoneseFiltered}/* $out/
cp -r ${rimeTeochewFiltered}/* $out/
cp -r ${rimeLatexFiltered}/* $out/
''; '';
rimePath = rimePath =
@ -37,11 +101,21 @@ in {
]; ];
}; };
}; };
home.file = { home.file.${rimePath} = {
${rimePath} = {
source = rimeConfigFiltered; source = rimeConfigFiltered;
recursive = true; recursive = true;
}; };
"${rimePath}/custom_phrase.txt".text = ""; home.file."${rimePath}/default.custom.yaml" = {
text = ''
patch:
schema_list:
- schema: wanxiang_pro
- schema: latex
- schema: jyut6ping3
- schema: dioion
- schema: gekion
'';
enable = true;
}; };
} }