Introducing QChat: a chat room right into QGIS!#
We're excited to announce the release of a new feature integrated into our QTribu plugin for QGIS: QChat! This new addition allows you to collaborate in real time with your team or other GIS fellows directly from QGIS.
We're in 2024 (unless you're reading this in 2025, or 2026, or... well, you get the idea), and let's be honest, Teams or IRC have their cons. Plus, you can't even use the hashtag #GISchat there, you can't meet fellow GIS enthusiasts and you definitely can't win Geotribu stickers ... Honestly, it's time for something new.
Introducing a new way to chat directly in QGIS: QChat
, a feature that lets you communicate with your peers within the best desktop GIS software around. The question is: why? And the answer: why not?
TL;DR#
- Install QTribu through the QGIS plugins manager
- Open the QChat widget by clicking on the icon in the plugin's toolbar
- Click on the ' Settings' button to enter your nickname in settings panel
- Pick the
QGIS
chat room in the dropdown list and click on theConnect
button - Say hello to the GIS world by entering this message
Hi QGIS fellows! @all
.
Why QChat?#
ChatGPT's answer
Managing geospatial projects often involves constant back-and-forth communication between team members. Instead of switching between various tools and communication platforms, QChat offers a seamless way to discuss tasks, share updates, and troubleshoot issues, all within the QGIS environment.
Our answer: why not?
The #GISChat, born on Twitter and now on Mastodon, BlueSky, and even LinkedIn, enables interaction on geomatics-related topics. There have already been initiatives to bring all this together in a web application.
And then, regarding the QGIS project in particular, there are already communication channels all over the place: mailing lists, Telegram, Discourse, Signal, WhatsApp... But not right in QGIS! Too bad, isn't it?
Installation#
QChat is part of the QTribu plugin, published on the official repository. QChat is available starting from version 1.0 of the plugin, which can be installed via the QGIS plugin manager:
Additional dependencies required on Linux#
QChat relies on the WebSocket protocol, using components of the Qt framework that QGIS is based on. These components are included in the Windows versions of QGIS but must be installed manually on Linux. For example, on Ubuntu (22.04):
sudo apt install python3-pyqt5.qtmultimedia python3-pyqt5.qtwebengine python3-pyqt5.qtwebsockets
If these dependencies are not installed, QChat will be disabled in the plugin, and an error message will direct you to the installation documentation.
Settings#
Once the plugin is installed, you'll need to configure a few settings before chatting. You can find these settings in the plugin options tab, within the general QGIS settings (menu Preferences
> Options...
).
Awesome plugin settings !
Need more info? You can check out the QGIS plugin templater, which helps you generate a plugin skeleton with a settings tab and more...
Now, let's take a look at the main settings, starting with the Attribution info
section at the bottom:
-
QChat nickname
: this is your nickname, shown to other chat users. It can be between 3 and 32 alphanumeric characters. Time to get creative (note:xX_D4rth_L4mb3rt_Xx
andm4d_B3rt1n
are already taken). -
QChat avatar
: this is the symbolic icon representing you in the chat. You can choose one of the fanciest icons from QGIS, and your avatar will be displayed next to every message you send.
Now, let's move to the QChat
settings section:
-
instance URL
: this specifies which QChat instance you want to connect to. The instance rules can be checked via theInstance rules
button. As of now, two instances are available:gischat.geotribu.net
: Geotribu's English-language QChat instance, for everyonegischat.geotribu.fr
: Geotribu's French-language QChat instance, also for everyone
-
show avatars
: toggle to show or hide avatars next to chat messages show admin messages
: toggle to display admin messages such as user connections and disconnectionsenable cheatcodes
:play sounds
: toggle to play a sound when you're mentioned by another user. If enabled, you can adjust the volume and choose a notification sound.- customize chat message colors with three color settings
Let's start chatting#
QChat is included in a dock widget, meaning you can move and dock it wherever you like in the QGIS interface. To open the chat, you can either:
- go to the menu
Internet
>QTribu
>QChat
- click on the second icon (a speech bubble) in the toolbar:
And there you have it: QChat is open :
Info
P.S. shoutout to tutoqgis.cnrs.fr
In the instance
section at the top, you can view the rules of the configured instance, as well as the number of users in each room via the status
button.
To start chatting, you'll need to connect to a room by selecting one from the dropdown list. Once connected, you're ready to chat! Messages from other users will appear in the middle:
Note that:
- using
@all
in your message will notify all users in the room via the QGIS message bar - double-clicking a message in QChat will allow you to mention the user who sent it
Want to go further?#
We've seen the client side of QChat in QGIS. To route the messages through WebSockets, there’s also a backend. The GitHub repository is available here.
The question might be: why is it not based on a chat standard, like xmpp
or matrix
? This is a good question: following the KISS principle, we developed this backend quickly with Qt's websocket availability in QGIS, in order to make it as simple as possible using some trivial message. Making the plugin compatible with a chat standard is under consideration and will probably represent the next consistent step.
Set up your own instance#
If you'd like to set up your own QChat backend, you can follow the instructions on the repository. There's no need for a database, as it’s stateless and simply relies on WebSockets. It’s a simple Docker image that runs with a few environment variables.
There's also a directory of QChat instances, which you can contribute to if you set up your own instance, making it visible and available to others. The discover instances
button in the plugin settings opens this directory in a QGIS popup.
Develop a compatible client#
If you’re interested in developing a compatible client, you can check out the developer information on the GitHub repository.
Messages are sent over WebSocket, and there are a few routes available to:
- get instance rules
- retrieve room names
- check the number of open WebSockets per room
- send a message to a room via a POST request
And more features coming soon
Conclusion#
QChat is like having a virtual coffee corner, where technical discussions meet geographer jokes (the kind that only insiders find funny). So why not install QChat today and turn your QGIS experience into a collaborative adventure ? After all, who said mapping had to be boring ? With QChat, every map becomes a shared story, and every project an opportunity to laugh together. Ready to map and chat ?