Monday, August 25, 2025

Making KeepassXC as painless as Bitwarden


As my privacy awareness gets higher, now I want more of my data to be in my control, and lives on my hard drives where I can reach them, rather than on someone else's server. For my password manager I used Bitwarden, which has a pretty good reputation, and they're also open source. I mean you can even self-host your own Bitwarden server and still using their browser extension just fine. Although for me, and probably the majority of other people, we do not do that. So our password lives on their server, which is fine, but this is just me wanting more control over my data.

Moving from Bitwarden to KeepassXC

So now that's out of the way. The password manager that I'm eyeing to use were KeepassXC, as I often heard it being recommended and unlike Bitwarden, KeepassXC password database lives on a single file locally. I can export my password just fine from Bitwarden, so no issue there. But, the issue starts when I was trying to use their browser extension.

So, unlike Bitwarden which only prompt you to enter your master password. KeepassXC browser extension forced you to connect your desktop app to your browser extension. You can follow the tutorial and connect your desktop app to your browser extension just fine, though you probably can't do that if your browser is installed from Flatpak.

My biggest gripe about KeepassXC

But my biggest gripe isn't that. It is the fact that I had open the desktop app every time I want it auto-fill a password. Like, imagine you're just casually browsing the internet, and then you have to enter a password. You open your desktop app, enter your database password, back to browser to click on the icon for auto-fill, after you logged in, you close your desktop app. Now, compare that with Bitwarden which only needs you to enter your master password and it will auto-fill by itself.

I actually go back to using Bitwarden after several days because of this. It just infuriates me. After my anger has subsided, I'm back to KeepassXC. I thought "Hey, maybe this is just the way things are." So I endure it... only for a couple of days until I exploded. Although this time, instead of going back, I determined to make KeepassXC worked. Because surely there's a way right? and after scrutinising all the settings option. I finally managed to make KeepassXC painless to use. And I feel like, this is a great knowledge not to share for other people who also want to use a more local approach to their password manager.

Making KeepassXC run in the background

A little disclaimer. I'm using Arch Linux (btw), though if you're on Windows I'm pretty sure you can follow along just fine

After that much yapping. the solution to this, in my opinion, is rather easy. Just make KeepassXC runs in the background constantly like a system service or a daemon essentially. So when it's needed it can prompt you your database password and then after you unlocked it gets minimised so you don't have to exit it. And to do that is just as simple as tweaking some settings.

Screenshot of KeepassXC settings with Automatically launch KeepassXC at system startup, Minimise window at application startup, and Minimise windows after unlocking database options highlighted

First two settings is the Automatically launch KeepassXC at system startup and Minimise window at application startup. These settings will make KeepassXC to launch when you booted into your system, but gets minimised so it won't hinder your work. The third is Minimise window after unlocking database, so after you're unlocking your database you can just straight to your browser again after pressing enter without having to Alt-Tab your way.

Minimising KeepassXC to system tray

I know what your concern next. "But if I just minimised it then it will always stay in the taskbar and annoying to look at!". But worry not! There is a setting you can check to make the desktop app minimised to the system icon.

Screenshot of KeepassXC settings with Minimised instead of app exit,  Show a system tray icon, and Hide window to system tray when minimised highlighted

For that you just have to check the Show a system tray icon and the Hide window to system tray when minimised settings. Now your desktop app will get minimised to system tray instead of being on taskbar. I'd also recommend you checking the Minimise instead of app exit so your desktop app won't get closed if you click the x button.

Locking your database when inactive

Having your KeepassXC running in the background with the database unlocked sounds very concerning for security. But thankfully there's a setting to lock your database after 4 minutes of inactivity (you can set it however long you like!).

Screenshot of KeepassXC settings with lock database after inactivity highlighted

Memory consumption of it running in the background

One final concern you may have is "If it's constantly running in the background, won't it consume a lot of memory constantly as well?" Which I will answer "No". KeepassXC only consume as little as 30 MiB of memory (which is almost 1/3 of Mega!). So I'm sure your memory can handle it.

System monitor which show KeepassXC and MEGAsync consuming 31 MiB and 88 MiB respectively

Final Words

I can say that now I'm finally happy with my new password manager. As I've managed to make it as painless as it is with Bitwarden. Whereas in the past I have to open the app, enter my database password, Alt-Tab back to my browser to auto-fill. Now when a website asked to log in, I can just click on the KeepassXC icon (which launch the desktop app), enter my database password (which after I press Enter closes itself), and then it auto-fill the form! It's so easy now! Just like my experience with Bitwarden. Heck I'll even said it is better now because KeepassXC also auto-fill your OTP/2FA unlike Bitwarden which made it a premium feature.

Share:

0 comments:

Post a Comment