

I had an issue where one keyboard (worked with another one) worked in bootloader, but not when entering the encryption password after that. I believe I solved that by moving keyboard earlier in the module list in mkinitcpio.conf. Maybe something similar would solve your issue?
I have been satisfied with beancount. https://github.com/beancount/beancount and fava as a ui. It’s text based so it is easy to automate imports and exports. It can seem daunting at first to create importers in Python, but it’s pretty basic scripting.
Text based accounting lends itself well to easy experimentation with version control.
I tried gnucash for a while, but it felt so slow and not flexible enough for me.