Installer icon indicating copy to clipboard operation
Installer copied to clipboard

Convert from Electron to Wails

Open zerebos opened this issue 1 year ago • 0 comments

This is part of the effort to convert from an Electron-based application to a Wails-based application. It would reduce the number of issues on Windows with the weird electron-forge zip-wrapping, and massively reduce both the filesize and runtime overhead. This can lay the groundwork to share common code between this and our CLI. As a bonus, if we ever decide to go forward with the "bd manager" app idea, this would pave the way there as well.

Important things to do before merging:

  • [x] Add update check
  • [ ] Adjust GitHub workflow to properly build this
  • [x] Include the linux love and care changes by working with @samfundev
    • [x] Expose flatpak to global BetterDiscord folder and make BD use HOST_XDG_CONFIG_HOME
    • [x] Install locally for snap installs
  • [x] General code cleanup
    • [x] Separate the non-common action code into postfixed files like actions_windows.go
  • [x] Bug testing with beta users
    • [x] Testing general cases
    • [ ] Testing edge cases
  • [ ] Unit tests
  • [x] Update dependencies like svelte to v5 (it has been a long time since I worked on this)
  • [x] Add build script to build for all of our intended os/arch combos
  • [ ] Make Enter submit the page

Moved out to a later date (likely when this becomes a manager):

  • [ ] Add more options to repair (#202)
  • [ ] Built in CLI (#357)
  • [ ] Code signing on windows and notarization on mac (#390, #126)
  • [ ] Move to wails v3
    • [ ] Add system tray
    • [ ] Add start at login
  • [ ] Add automatic reinjection
  • [ ] Check for addon updates
  • [ ] Translations (#16)
    • [ ] BetterDiscord gets setup on Crowdin starting on client
    • [ ] Determine whether to do joint i18n across process or pass the buck to one side
    • [ ] Move strings to Crowdin

This PR affect the following issues:

  • Fixes #385 by properly supporting flatpak
  • Fixes #377 by doing proper folder checks with fallback
  • Fixes #375
  • Fixes #379 by no longer using that library
  • Fixes #380 because cross compilation with Go is dead simple
  • Fixes #367 by adjusting keyboard nav
  • Hopefully fixes #366 by using native methods
  • Fixes #365 by properly supporting flatpak
  • Hopefully fixes #362 by using native methods
  • Fixes #359 and fixes #36 with the new architecture
  • Hopefully fixes #226 by using native methods
  • Closes #157 by properly supporting both

zerebos avatar Sep 16 '24 04:09 zerebos