Hey Frappe community ![]()
We just shipped Solvronix Desk v1.1.0 — our open-source white-label theme for Frappe/ERPNext v16.
For those who haven’t seen it: Solvronix Desk transforms the default Frappe interface into a branded, modern SaaS-looking product — command palette (Ctrl+K), slim icon sidebar, auto color system from two brand colors, dark mode, progressive forms, language switcher, and more.
What’s fixed in v1.1.0:
Bug Fixes
-
Sidebar active text going black — Root cause was CSS specificity. Frappe’s compiled bundle was winning. Fixed by upgrading all sidebar selectors from 3-class to 4-class chains so our rules always win.
-
Sidebar dropdown sub-items not styled — Same specificity issue. Added explicit
.nested-containerselectors to cover collapsed sub-items. -
Frappe’s search/bell appearing in sidebar (RTL mode) — Added
display: none !importanton.standard-items-sections,.navbar-search-bar,.sidebar-notification— permanently hidden. -
Language switching required hard refresh — Frappe embeds the entire boot data including translations inside desk.html. A normal reload served cached HTML with the old language. Fixed by navigating to
/desk?_lang_reload=timestampso the unique URL forces a fresh fetch every time. -
Language not working at all — Frappe v16 uses
.po/.mofiles, not CSV. The MO binary files were never compiled. Ranbench compile-po-to-mo --force— all 25+ languages now work. -
Redis boot cache not cleared on language change — Added
frappe.cache.hdel("bootinfo", user)toset_user_language()in api.py so the new language takes effect immediately without manual cache flush. -
RTL user dropdown appearing on wrong side — Fixed
openUserDrop(),openLangDrop(), andopenDropdown()in solvronix_desk.js to detectdocument.documentElement.dir === "rtl"and flip anchor side accordingly. Toolbar itself left untouched — Frappe handles that natively. -
i18n — custom UI strings not translating — All hardcoded strings in notification_center.js and command_palette.js wrapped in
__(). Strings like “You’re all caught up!”, “Quick Actions”, “Create document”, “No results found” now fully translatable.
Marketplace Audit Fixes
-
Added
room=frappe.local.sitetofrappe.publish_realtime()in events.py per Semgrep frappe-realtime-pick-room rule. -
Removed deployment instructions from README per Marketplace long description policy.
Release Tags
| Tag | Contents |
|---|---|
| v1.0.0 | Original release |
| v1.1.0 | All bug fixes + i18n + RTL |
Install:
bench get-app https://github.com/Solvronix/Solvronix-Desk
bench --site your-site.com install-app solvronix_desk
GitHub: https://github.com/Solvronix/Solvronix-Desk
Would love feedback from anyone running it on v16. If you hit any issues, open a GitHub issue or reply here.