Shadowsocks-Qt5 is a native and cross-platform GUI client for Shadowsocks.
- Shadowsocks-Qt5 is written in C++/Qt5.
- Intuitive and native UI. This is not a clumsy Web App.
- Keep your favourite Shadowsocks port as backend if you want.
- Easy-to-use and highly customisable.
- The
gui-config.json
file is partially compatible with shadowsocks-gui. In order to serve better, some new values have been added. gui-config.json
is located under ~/.config/shadowsocks on UNIX platforms, or under the main programme's directory on Windows.
- By default,
ss-qt5
works withlibQtShadowsocks
which is considered as a reliable and lightweight alternative. While you can still use other shadowsocks backends such as [Shadowsocks-libev] ss-libev and [Shadowsocks-Python] ss-python. - If
ss-qt5
crashes and the single-instance mode is on, you may need to manually delete/tmp/qipc_sharedmemory_shadowsocksqt*
and/tmp/qipc_systemsem_shadowsocksqt*
. Otherwise,ss-qt5
will complain that another instance is already running. - Don't be panic if you encounter a bug. Please feel free to open issues. Just remember to run from terminal or
cmd
and paste the output to the description of issue.
Download prebuilt binaries from releases.
For those who want to build from source, follow the instructions below.
Open this project using Qt Creator and build it.
Or type the command in MSYS/MinGW.
qmake INSTALL_PREFIX=../ss-qt5
make
make install
You will get ss-qt5.exe
and gui-config.json
in ../ss-qt5 directory.
For 64-bit build, please use mingw-w64 toolchain (there are unofficial Qt builds using mingw-w64) and use the command below instead.
qmake INSTALL_PREFIX=../ss-qt5 DEFINES+="mingw64"
make
make install
We build ss-qt5
in a dynamically linking style on UNIX platfroms, which means there'll be some dependencies to be solved.
qt5-qtbase
>= 5.2qrencode
(orlibqrencode
in Debian/Ubuntu)libQtShadowsocks
>= 1.2 (libqtshadowsocks
in Debian/Ubuntu)botan
>= 1.10 (libbotan1.10
in Debian/Ubuntu)zbar
(libzbar0
in Debian/Ubuntu)libappindicator1
(optional, only if you want to build withappindicator
support)
Your C++ compiler must has a good support for C++11.
The Copr builds RPMs for Fedora 20, 21, rawhide and RHEL 7. If you're using other RHEL-based distributions such as CentOS and Scientific Linux, you can just use the EPEL repo in Copr.
You can enable the repo via dnf
:
sudo dnf copr enable librehat/shadowsocks
sudo dnf update
sudo dnf install shadowsocks-qt5
You may need to install dnf plugins by below command before you can enable copr repo.
sudo dnf install dnf-plugins-core
If your distribution doesn't have dnf
, you can download the corresponding yum repo from Copr and put it under /etc/yum.repos.d/
, then install shadowsocks-qt5
via yum
:
sudo yum update
sudo yum install shadowsocks-qt5
Make sure you're running at least Ubuntu 14.04.
sudo add-apt-repository ppa:hzwhuang/ss-qt5
sudo apt-get update
sudo apt-get install shadowsocks-qt5
If you want to build it manually, add DEFINES+="UBUNTU_UNITY"
to qmake
to enable appindicator
support even if you're not using Unity. It seems Qt libraries in Ubuntu are heavily patched for Unity. Therefore, using appindicator
is recommended for this distribution.
Since v0.9
, the debian
directory needs two modifications to get rid of Ubuntu stuff.
- Edit
debian/rules
, removeDEFINES+="UBUNTU_UNITY"
fromqmake
. - Edit
debian/control
, deletelibappindicator-dev,
(line 12).
Now run the command below, you'll get a deb package in upper directory.
dpkg-buildpackage -uc -us -b
Then, install it by sudo dpkg -i shadowsocks-qt5-<VER_ARCH_ETC>.deb
.
The development packages of qt5-qtbase
, botan-1.10
(or libbotan1.10
), libQtShadowsocks
and qrencode
(or libqrencode
) are required.
# Some distros use seperated qmake-qt4, qmake-qt5. Then, just run `qmake-qt5`. You can specify INSTALL_PREFIX=/usr/local if needed. default is /usr
qmake INSTALL_PREFIX=/usr
make
make install
Other platforms are not tested and they're NOT supported officially. Well, I do hope you can help me mantain the compatibility if you have spare time.
Copyright © 20014-2015 Symeon Huang
This project is licensed under version 3 of the GNU Lesser General Public License.