Home

Awesome

CI Lint GitHub GitHub release (latest SemVer) Mentioned in Awesome IRC

<p align="center"> <img src="data/assets/iridium.svg" alt="Icon" /> </p> <h1 align="center">Iridium</h1> <p align="center"> <a href="https://appcenter.elementary.io/com.github.avojak.iridium"><img src="https://appcenter.elementary.io/badge.svg" alt="Get it on AppCenter" /></a> </p>
ScreenshotScreenshot
ScreenshotScreenshot

The friendly IRC client

Iridium is a native Linux IRC client built in Vala and Gtk for elementary OS.

Install from Source

You can install Iridium by compiling from source. Here's the list of dependencies required:

An install-dev-dependencies.sh script is available to help developers get up and running.

Building and Running

$ meson build --prefix=/usr
$ sudo ninja -C build install
$ com.github.avojak.iridium

Flatpak

To test the Flatpak build with Flatpak Builder:

$ flatpak-builder build com.github.avojak.iridium.yml --user --install --force-clean
$ flatpak run --env=G_MESSAGES_DEBUG=all com.github.avojak.iridium

Another helpful environment variable to set is GTK_DEBUG=interactive for investigating UI and styling issues.

Development Build

You can also install a development build alongside a stable version by specifying the dev profile:

$ meson build --prefix=/usr -Dprofile=dev
$ sudo ninja -C build install
$ G_MESSAGES_DEBUG=all com.github.avojak.iridium-dev

Updating Translations

When new translatable strings are added, ensure that po/POTFILES contains a reference to the file with the translatable string.

Update the .pot file which contains the translatable strings:

$ ninja -C build com.github.avojak.iridium-pot

Generate translations for the languages listed in the po/LINGUAS files:

$ ninja -C build com.github.avojak.iridium-update-po

Testing

To facilitate testing, a test-server.py script is available which starts a local IRC server using Docker.

$ ./test-server.py [-h] {create|start|watch|stop|reset}

To create a new test server:

$ ./test-server.py create

You should now be able to connect to the server from Iridium using the Server localhost, and all other settings as default. (Note: If you have configured the settings to reject unacceptable SSL/TLS certificates, you may not be able to connect because the Docker IRC server uses self-signed certificates)

Troubleshooting and Debugging

Logging

Log messages can be found using the journalctl command. For example, the following will show journal messages for the current boot of the OS:

$ journalctl -b

When the application starts, it logs a series of messages with basic information:

Jan 01 11:13:24 avojak-eOS plank.desktop[1992]: [INFO 11:13:24.802632] Application.vala:48: com.github.avojak.iridium-dev version: 1.0.0
Jan 01 11:13:24 avojak-eOS plank.desktop[1992]: [INFO 11:13:24.802666] Application.vala:49: Kernel version: 5.4.0-58-generic
Jan 01 11:13:24 avojak-eOS plank.desktop[1992]: [INFO 11:13:24.815561] SecretManager.vala:46: Secret schema version: 1
Jan 01 11:13:24 avojak-eOS plank.desktop[1992]: [INFO 11:13:24.850977] SQLClient.vala:39: Database file: iridium01.db

This can also be useful to locate where the application started amidst all of the journal entries.

Config Files

With Flatpak, application config files can be found in: ~/.var/app/com.github.avojak.iridium/

Project Status

This project is very much in-progress and has a lot of remaining work. Check out the Projects page to track progress towards the next milestone.

Please keep in mind that at this time I am developing Iridium as a personal project in my limited free time to learn Vala and contribute back to the elementary OS community, so do not be offended if I reject a pull request or other contribution.

<p align="center"><a href="https://www.buymeacoffee.com/avojak" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png" alt="Buy Me A Coffee" style="height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" ></a></p>