This is a project concerntrate on the front-end of ShadowsocksR in GNOME,
as a rewrite and upgrade of the previous abandon project electron-ssr
.
The design and architecture of the app is based on electron and mewjs,
UI part is all based on my own front-end framework, not the popular vue
which is used in electron-ssr
.
- Place the electron under the directory
data/electron
- Place the mewjs under the directory
data/mewjs
- Execute command
bin/ssr-gui
- Program part and GUI part is based on my own code framework
- All the GUI is totally redesigned from strach
- Fix the bug for
second-instance
on linux platform - Add IPv6 supports. (Experimental)
- Upgrade the electron supports to 7.1.9 (make the UI supports backdrop-filter)
- Change the default language to English for some buggy linux environments. (although I am a Chinese, the linux is not very user-friendly to us sometimes)
- Make the tray not essential for the app, which is not default supported in the new GNOME
- Tidy the logs for the app
- Update the GFWList according to the original repo
- Replace the
electron
tolibcef
- Replace the python based shadowsocks to pure JS version or C++ version
- Add QRCode scanning supports
- Add QRCode PNG saving supports
- Fix some bugs on the
ui-sheet-view
- Make custom GNOME extensions to replace the buggy tray part from electron
- Where to get the mewjs? Download from Mewchan Website
- Will it support Windows and macOS? Maybe, most part of the codes are compatible.
- Why mewjs? Traditional electron app extends the browser contexts with node supports, but each context will own a unique global object which makes the business logic much more complex for IPC communications. I prefered to use B/S architecture to make the business logic all in the mewjs.
- Why not vue? Most modern front-end framework has a very confusing behavior. The codes could not be run directly in the browser! What I am writing is JS, HTML, CSS, and etc, and you told me that there is no possibility to run directly in the browser. They must be compiled, or packed by a special NPM module command, which does not make sense. To my opinion, the web part should be run directly in a static web server. There should exists a method for programmers pack codes to accelerate and optmize, but it should not be essential.
Maybe I will release some packed .tar.gz
files latter. I don't like deb or rpm
file, sometimes not suitable for all linux.