The alpha version of FlorisBoard has preliminary support for shape based Chinese layouts so you can write 汉字/漢字 with say, Cangjie or Zhengma. It also has the JIS kana layout for Japanese. Although, it doesn't support Kanji Substitution yet, but you could use the shape based Chinese layouts for that in the meanwhile. As for Korean, it's supported but no Hanja support yet.
Try https://github.com/osfans/trime. It has multiple input schemas (i.e. pinyin, zhuyin, cangjie, etc.) to choose from, and they are great for typing Chinese. Admittedly it only supports the C in CJK, but it is absolutely worth a try if you don't need Japanese or Korean.