I'm currently using keepassx(c) currently, actually:) That's mostly a good system for me, but I'm hitting some issues, mostly around syncing; syncthing is great, but it kinda sucks at taking care of conflicts, which pass (git) very much should manage nicely.