avojak / iridium Goto Github PK
View Code? Open in Web Editor NEWNative Linux IRC client built in Vala and Gtk for elementary OS
License: GNU General Public License v3.0
Native Linux IRC client built in Vala and Gtk for elementary OS
License: GNU General Public License v3.0
Add an option (maybe in preferences?) to delete all saved data. The only saved data is really the light/dark mode and connection details, so this would entail:
Support connections over SSL/TLS. Might also add an option to the advanced connection settings for certificate validation (e.g. set_tls_validation_flags
).
Are you planning on letting the software download files from channels?
The bar at the top of the chat view is pretty invasive. Would be nice to improve that.
Hi! I noticed that you doesn't mention OARS information in your appdata.xml
file. This is required in order to publish you app in the AppCenter.
You just have to add and complete the following lines to your file. Default is none. You can identify what you have to change in the following lines here https://hughsie.github.io/oars/generate.html ๐
You just have to add this and complete it to your appdata.xml
file.
<content_rating type="oars-1.1">
<content_attribute id="violence-cartoon">none</content_attribute>
<content_attribute id="violence-fantasy">none</content_attribute>
<content_attribute id="violence-realistic">none</content_attribute>
<content_attribute id="violence-bloodshed">none</content_attribute>
<content_attribute id="violence-sexual">none</content_attribute>
<content_attribute id="violence-desecration">none</content_attribute>
<content_attribute id="violence-slavery">none</content_attribute>
<content_attribute id="violence-worship">none</content_attribute>
<content_attribute id="drugs-alcohol">none</content_attribute>
<content_attribute id="drugs-narcotics">none</content_attribute>
<content_attribute id="drugs-tobacco">none</content_attribute>
<content_attribute id="sex-nudity">none</content_attribute>
<content_attribute id="sex-themes">none</content_attribute>
<content_attribute id="sex-homosexuality">none</content_attribute>
<content_attribute id="sex-prostitution">none</content_attribute>
<content_attribute id="sex-adultery">none</content_attribute>
<content_attribute id="sex-appearance">none</content_attribute>
<content_attribute id="language-profanity">none</content_attribute>
<content_attribute id="language-humor">none</content_attribute>
<content_attribute id="language-discrimination">none</content_attribute>
<content_attribute id="social-chat">none</content_attribute>
<content_attribute id="social-info">none</content_attribute>
<content_attribute id="social-audio">none</content_attribute>
<content_attribute id="social-location">none</content_attribute>
<content_attribute id="social-contacts">none</content_attribute>
<content_attribute id="money-purchasing">none</content_attribute>
<content_attribute id="money-gambling">none</content_attribute>
</content_rating>
I think this is mainly concerning the social part.
Support opening in a private session, where no connection information, credentials, etc. are saved.
Add the ability to display a badge count of unread messages on the icon in the plank.
Learn how to write tests in Vala and add some!
Integrate with the OS notifications to alert users.
There should be some visual feedback (and messaging) when a connection fails during initialization.
Store the window size and position between launches
Are you planning on releasing this to the appcenter?
After some amount of time it would be good to display the date and time when a new message is received.
Support opening the app via irc://
links.
See: https://superuser.com/questions/90626/kill-ghost-on-connect-to-freenode-in-xchat
Might be able to do this automatically for connections that have a NickServ password configured.
The current management of views and dialogs is very flimsy. For example:
These are not very robust, as they are influenced by external factors (what if a different connection is successful? What if someone else changed the topic out from under you?).
This needs to be reworked to something more deterministic. This should also lay the groundwork for better handling of the initialization workflow.
The auto-scrolling should be locked when reading old messages. It's very annoying to get auto-scrolled back to the bottom when reading conversation history.
Reminder to myself to double-check everything against the elementary human interface guidelines.
https://elementary.io/docs/human-interface-guidelines#human-interface-guidelines
Currently when you favorite a channel, another view (some other channel or the server) will take the focus. This is not what you would expect - the channel should still be in the forefront after favoriting.
Similarly, when you close a channel, you don't expect it to still be visible (this is OK for leaving a channel, in my opinion).
Support the case where multiple users are used to connect to the same server.
Should display a warning when closing a server connection because the connection data is erased.
Can add a "don't warn me again" option too.
After closing all server connections so that there are no more channel views, the header bar will show a channel name (or maybe a server name). Instead it should show the application name again.
Checklist of items to verify prior to 1.0.0 readiness:
Allowing changing username while still connected
Support IRC action messages (e.g. /me
)
Support operator actions (kick, ban, etc.) and granting operator privileges to other uses. Should be integrated into the UI rather than via command only.
The user quit message doesn't always appear in a channel.
[FATAL 18:41:36.669963] gee_map_get: assertion 'self != NULL' failed
[WARNING 18:41:36.670054] MainLayout.vala:400: No chat view exists for chat.freenode.net, thedesertmonk
The log warning isn't unexpected, but the fatal error needs to be addressed, as well as whatever is causing the message to not appear.
Add the ability to view channels that are available on the server
Currently the nickname and username are used interchangeably throughout, but this is not correct. Typically only the nickname truly matters, so perhaps we should default the username to the nickname and only present changing the username under an "advanced" or other setting. This would cleanup the UI a bit as well.
Add an option to the welcome view to open a recent connection. This may be connections that are no longer in the server list, but were saved from before. Would require additional work to no completely remove the connection details when closing a connection. Might have to make this configurable, since it wouldn't be apparent to the user that connection information is still saved.
This is probably due to some bad assumptions and will need a re-work of the initialization workflow or the signal handling.
Add a visual indicator in the chat view to show which message was last read.
Maybe display a couple recent servers to the welcome view? Would make it easy for a user to go back to a server they were on even after closing it from the side panel.
Add visual indicators to distinguish operator status. This would be in the user dropdown in the channel chat views.
Workflow:
In the side panel the server row should display the name given by the server (the NETWORK=
part after connecting)
Use real logging instead of print statements!!!
Display a toast notification (or something else) when mentioned in a channel.
Allow submitting dialogs via the Enter key.
Support opening multiple windows. Would add an item to the menu dropdown.
The badge for the unread message count is missing from private message rows
This occurs with stored connection details, but the enabled
flag is set to 0
:
[WARNING 16:40:56.322152] MainWindow.vala:429: No connection details found for server: chat.freenode.net
[FATAL 16:40:56.322207] iridium_views_server_chat_view_construct: assertion 'nickname != NULL' failed
[FATAL 16:40:56.322227] [GLib-GObject] g_object_ref_sink: assertion 'G_IS_OBJECT (object)' failed
[FATAL 16:40:56.322244] iridium_layouts_main_layout_add_server_chat_view: assertion 'view != NULL' failed
[WARNING 16:40:56.322281] [GLib-GObject] invalid (NULL) pointer instance
[FATAL 16:40:56.322317] [GLib-GObject] g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
[WARNING 16:40:56.322352] [GLib-GObject] invalid (NULL) pointer instance
[FATAL 16:40:56.322387] [GLib-GObject] g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
[FATAL 16:40:56.322423] iridium_views_chat_view_set_enabled: assertion 'self != NULL' failed
[WARNING 16:40:56.330377] MainWindow.vala:445: No connection details found for server: chat.freenode.net
[FATAL 16:40:56.330421] iridium_views_channel_chat_view_construct: assertion 'nickname != NULL' failed
[FATAL 16:40:56.330445] [GLib-GObject] g_object_ref_sink: assertion 'G_IS_OBJECT (object)' failed
[FATAL 16:40:56.330466] iridium_layouts_main_layout_add_channel_chat_view: assertion 'view != NULL' failed
[WARNING 16:40:56.330505] [GLib-GObject] invalid (NULL) pointer instance
[FATAL 16:40:56.330521] [GLib-GObject] g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
[WARNING 16:40:56.330561] [GLib-GObject] invalid (NULL) pointer instance
[FATAL 16:40:56.330579] [GLib-GObject] g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
[FATAL 16:40:56.330595] iridium_views_chat_view_set_enabled: assertion 'self != NULL' failed
Some of the messages from the server are cut-off during connection (number of operators, channels, etc.). This could also include better messaging for invalid server commands.
Add the ability to suppress join/part messages in channels.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.