Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

That’s actually not an easy patch — I looked into it and the way the QT layer works — not even diving into the codebase underneath — doing anything more than an icon pack/skin is nearly impossible — at least with my level of skill and the amount of time I would be willing to put into it.

As I said, I’m super grateful Calibre exists and I think software is better for it existing. I also fully understand why there haven’t been other attempts to do what Calibre does — because it’s a shitload of work and the userbase is niche.



Design is something that can't simply be tacked on after the fact either. It's something that must be embraced by the core developers and influences plenty of decision making.

Plenty of people don't have good design taste but can still be useful software, so I hope it doesn't deter them.

Although there may be a correlation between poor interface design being reflected in the backend. From naming schemes, to modelling the data, to managing complexity, saying no to certain features, etc are all things that cross over into the design world.


Calibre is just a qwidgets based pyqt program. Since its as KDE project the "modern" UI stack would be Kirigami QML and you can use QWidget::createWindowContainer to embed QtQuick parts in a QWidgets program. With signals and slots they can still communicate, so you can peacemeal replace parts of the UI like that, but looking at the sources the main window is composed of about 30 different parts between a half dozen folders so thats pretty immutable.


Immutable is the right word. I was trying to “fix” the new dark mode in Calibre 4 (it’s bad and clearly not tested — the default hyperlink colors are nearly unreadable and the hover-over color in the library menu are impossible to read), and while I could fix the CSS in some parts (which was the dev’s dismissive answer to the bug report on how dark mode is legitimately broken), other parts can’t be fixed without using overly-complex plugins (that have to apply overrides every time you start the app) or ripping apart the source in a way that is not worth the effort.

My solution was to use a different Mac app to “force” Calibre to ignore the systemwide setting and use its light mode instead.




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: