From 6d196298837920cc8e5c74d6b54eb18d64f2161d Mon Sep 17 00:00:00 2001 From: emdee Date: Thu, 8 Feb 2024 23:38:47 +0100 Subject: [PATCH] Add Toxygen --- Toxygen.md | 122 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 Toxygen.md diff --git a/Toxygen.md b/Toxygen.md new file mode 100644 index 0000000..b78e0cd --- /dev/null +++ b/Toxygen.md @@ -0,0 +1,122 @@ +# Toxygen + +Toxygen is powerful cross-platform [Tox](https://tox.chat/) client +written in pure Python3. + +### [Install](/docs/install.md) - [Contribute](/docs/contributing.md) - [Plugins](/docs/plugins.md) - [Compile](/docs/compile.md) - [Contact](/docs/contact.md) + +### Supported OS: Linux and Windows (only Linux is tested at the moment) + +### Features: + +- 1v1 messages +- File transfers +- Audio calls +- Video calls +- Group chats +- Plugins support +- Desktop sharing +- Chat history +- Emoticons +- Stickers +- Screenshots +- Name lookups (toxme.io support) +- Save file encryption +- Profile import and export +- Faux offline messaging +- Faux offline file transfers +- Inline images +- Message splitting +- Proxy support - runs over tor +- Avatars +- Multiprofile +- Multilingual +- Sound notifications +- Contact aliases +- Contact blocking +- Typing notifications +- Changing nospam +- File resuming +- Read receipts +- uses gevent +- NGC groups +- PyQt5, PyQt6, PySide2, PySide6 via qtpy + +### Screenshots +*Toxygen on Ubuntu and Windows* +![Ubuntu](/docs/ubuntu.png) +![Windows](/docs/windows.png) + +Windows was working but is not currently being tested. AV was working +but is not currently being tested: we're unsure of handling the AV devices +from the commandline. We need to get a working echobot that supports SOCKS5; +we were working on one in https://git.plastiras.org/emdee/toxygen_wrapper + +## Forked + +This hard-forked from the dead https://github.com/toxygen-project/toxygen +```next_gen``` branch. + +See ToDo.md to the current ToDo list. + +## Wechat + +You can have a [weechat](https://github.com/weechat/qweechat) +console so that you can have IRC and jabber in a window as well as Tox. +There's a copy of qweechat in ```thirdparty/qweechat``` backported to +PyQt5 and integrated into toxygen. Follow the normal instructions for +adding a ```relay``` to [weechat](https://github.com/weechat/weechat) +``` +/relay add ipv4.ssl.weechat 9000 +/relay start ipv4.ssl.weechat +``` +or +``` +/relay add weechat 9000 +/relay start weechat +``` +and use the Plugins/Weechat Console to start weechat under Toxygen. +Then use the File/Connect menu item of the Console to connect to weechat. + +Weechat has a Jabber plugin to enable XMPP: +``` +/python load jabber.el +/help jabber +``` +so you can have Tox, IRC and XMPP in the same application! +See docs/ToxygenWeechat.md + +## Install + +To install read the requirements.txt and look at the comments; there +may be things that need installing by hand or decisions to be made +on supported alternatives. + +https://git.plastiras.org/emdee/toxygen_wrapper needs packaging +on pypi as it is a dependency. Just download and install it from +https://git.plastiras.org/emdee/toxygen_wrapper + +This is being ported to Qt6 using qtpy https://github.com/spyder-ide/qtpy +It now runs on PyQt5 and should soon run on PyQt6 and may run on PySide2 and +PySide6 - YMMV. You will be able to choose between them by setting the +environment variable QT_API to one of: pyqt5 pyqt6 pyside2 pyside6. + +To install it, look in the Makefile for the install target and type +``` +make install +``` +You should set the PIP_EXE_MSYS and PYTHON_EXE_MSYS variables and it does +``` + ${PIP_EXE_MSYS} --python ${PYTHON_EXE_MSYS} install \ + --no-deps \ + --target ${PREFIX}/lib/python${PYTHON_MINOR}/site-packages/ \ + --upgrade . +``` +and installs into PREFIX which is usually /usr/local + +Up-to-date code is on https://git.plastiras.org/emdee/toxygen + +## MultiDevice + +Work on this project is suspended until the +[MultiDevice](https://git.plastiras.org/emdee/tox_profile/wiki/MultiDevice-Announcements-POC) problem is solved. Fork me!