Polari Workspace

Polari as background app discussion

STALLED: Awaiting support in gnome control center

  • Polari could support being a background app.
  • GNOME Control Center however dont support background apps yet.
  • The intention is that there will be settings to control which app can run in background.
    • Polari wont have to expose any settings.
  • An easy way to make Polari a background app is through window.hide(). Florian is uncertain if that really counts as real background app support though.

  • Another option is to stop telepathy from disconnecting when we press the close button but then you miss out on nice stuff like highlights in the backlog, notifications shown in the sidebar and such..that's all done by objects contained in the window.
  • See more: https://wiki.gnome.org/Design/Whiteboards/BackgroundApps


Make it easier to catch up on mentions!

TODO: Needs design

  • Show an info bar: "5 new mentions [Jump] [x]"
    • As you jump, count down until one. Give positive feedback before you close.
    • or just "jump to beginning" as the only action. since you might want to catch-up read along the way.
  • Remove automatically if user has scrolled by himself.
  • Dont be too distracting


Identify when mentioning a user in text

TODO: Needs design

  • So we can have "truly" contextual popovers.
  • if fmuellner says "bastianilso would be the person to talk to" then make "bastianilso" clickable.
  • Useful to check who this person is fx.
  • Also we can put a small user icon next to the name so nickname mentions are easy to find in the text.


Visually indicate a command differently from normal text

TODO: Needs design

  • If you start writing '/', Polari must interpret this as a command
  • can be confusing to people who are not used to IRC and commands.
  • Would be nice if we could indicate that the user is typing a command
  • for example by changing the font to monospace?
  • could also play with that in combination with dimming the entry-field to a light grey.


Port util's "failed to open link" notification to MessageNotification

TODO: file a bug, newcomers

  • inconsistency between when opening an irc link fails and when clicking a link in polari fails
  • Simple output isnt really suitable to put inside notificationQueue
  • Should be a good newcomer bug


Redesign of nickname popover

STALLED: Awaiting comments and/or implementation

  • On IRC there is a distinguishment between "nickname at startup" and "nickname you change while connected".
  • If you register with NickServ, you identify with your startup-nickname. You will still be able to change nick while connected.

  • The changes you make are lost when you disconnect again.
  • The primary use case here, is so you can append something. Fx "fmuellner|afk" or "fmuellner|work".
  • You can change your whole nickname, but that's probably only used to for fraud reasons.
  • Ideally we should support the primary use case, instead of simply showing an entry. It makes a lot more sense.
  • It will also help clear up the bugs about mismatching nicknames. And help clear up the differences between the two.
  • We should probably call this action something other than "change nickname" too.
  • Filed bug as: Bug 768341

  • Other relevant Bugs: Bug 755809, possibly Bug 722506


give feedback when loading rooms. error handling, room passwords etc

STALLED: Design awaiting review

  • Bug 775239

  • when joining a room there can sometimes be a delay.
  • right now we aren't giving any feedback about it.
  • we have a design to indicate when a room is offline by putting a "go online to chat" over the entry area.
  • maybe we can use a label on top of the entry area + a spinner when a room is loading and the entry is grey?
  • should probably design this and at the same time keep in mind how we want to do error handling on rooms, password handling on rooms etc.
  • a potential gsoc item?


Change the blank states of Polari to be more user-onboard friendly.

TODO: Make mockups

  • Dont say “you have no friends” or “you have no games”. It sounds like they blame people. Instead say like “your games will appear here” and show how they would appear. Paint a picture of what life would be like once the user is up and running.
  • Instead of "No connections available", use a more encouraging "Your connections will be shown here" or "Your chatrooms will be shown here". And show how they would be shown, give the user some confidence.
  • Dunno how relevant or often it would be seen once the initial setup stuff would land. 95% of users would probably just use that to get started immediately.
  • Use gamification elements to encourage the user to complete the initial setup?


error text in connection popovers look funny.

TODO: Make a better design that looks more aesthetically pleasing

  • Text doesnt have much space to wrap in the popovers, either the popover should have more width or the text should be written with a small font.


Synchronize ChatView with entryArea

TODO: File a bug about it?

  • Discussed in https://bugzilla.gnome.org/show_bug.cgi?id=760872

  • Fixed to sync in one direction: if you nick is renamed to something longer, the view syncs with that.
  • Doesn't work the other way though. (ie. change username from long to short while you are the one with longest nick in channel.)


Show a spinner while the nickname is changing

TODO: Make a mockup for that


Higher contrast between activity and non-activity

TODO: File a bug, suggest the colors, GNOME LOVE?

  • Afranke said he had a hard time seeing a difference, ie. needed to squeeze his eyes.
  • Polari does have less contrast than fx. control center has (black vs grey).
  • Use a 70% grey rather than a 50% gray to match control-center.
  • Use the same black as before.
  • Use the bullet that is used to indicate new activity other places?
  • Check what grey nautilus use and use that for dimming the userlist.


Handling of NickServ, and other bots

NEEDS DESIGN ITERATION

  • <csoriano> bastianilso, so now we have nickserv and chanserv services available for gnome

  • <csoriano> nickserv allows to register a nickname, so no one can steal it from you

  • <csoriano> (that's why I always had csoriano-

  • <csoriano> not any more

  • <csoriano> also, given that, operators can give you operator rights to your nickname, withouth the risk of your nickname getting stolen

  • <csoriano> then chanserv does somethign similar but for channels

  • <csoriano> for example, I registered nautilus, so no one can steal the nautilus channel name, and also I can control some things of the channel

  • <csoriano> the most important is nickserv, because is what allows operator to be operators in the channels

  • https://bugzilla.gnome.org/show_bug.cgi?id=760854


Make Polari handle irc:// protocol

STALLED: Segmentation fault when attempting to create notification, needs florians help.

  • https://bugzilla.gnome.org/show_bug.cgi?id=728593

  • Chromium is affected by https://bugzilla.gnome.org/show_bug.cgi?id=746534 - you have to press irc:// links twice before polari appears. Firefox seems okay.

  • WIP Branch: https://git.gnome.org/browse/polari/log/?h=wip/bastianilso/irc-url-parsing

  • It would be a good idea to show a notification if Polari is unable to parse the irc link. If we have a window open, show an in-app notification. If we don't show a notification but DON'T make it persistent.
  • It might be worth to also support corner cases of the irc link specification such URLs targeting nicknames, URLs containing a passphrase and so on.
  • It could be cool to have a “Copy link adress” menu item per room so you can copy/paste a room’s irc link to other people. The menu item could be placed in the room menu and/or in the right-click menu for each channel.
  • It could be cool if we parsed mentions of rooms (fx #polari) in chats as IRC links you could click or copy/paste.
  • How does this merge with initial setup lol.
  • Maybe just open Polari main window with join dialog and an error message if we are unable to parse the server and room. Dialog should have an info text indicating that we were unable to connect to the room and please do so manually instead.


Polari Room Menu

TODO: Extra Notifications need design, Exposing channel modes need design. Probably not implemented in near future (bah, settings).

  • room-menu-design.png

  • The creation of this menu implies solving the following bugs:
    • Editing, Viewing or copying channel topic:
      • Topic can't be selected and copied (Bug 748245)

      • No way to change channel topic in UI (Bug 747975)

      • Long channel topics cannot be fully read (Bug 721763)

    • Clear chat history / toggle incognito mode (don't save chat log for given room, don't store info about who I talk to, can be useful for privacy reasons).
    • Copy chatroom link.
    • Polari should support SSL connections and authentication (Bug 730892)

    • Indicate who is moderating the room (?).
    • Extra chat notifications (chat notifications if somebody writes in the room, useful for inactive chats / support chats).
  • Makes it possible to leave rooms on touch devices with the "Leave Room" button.
  • Branch: https://git.gnome.org/browse/polari/log/?h=wip/bastianilso/room-options

  • Need to find out if there is introspection support available to check the channel mode and whether user is an operator, so we can make the field insensitive when the user lacks necessary rights.


Autocompletion of nicknames

IDEA

  • autocompletion when writing usernames in chat beyond just 'tab'.
  • that is, make the completion box appear automatically.
  • might get in the way, though.


Polari uses a lot of CPU and memory

STALLED: Need to know from mclasen if this problem is still relevant.

  • see Bug 752070 (CPU)

  • see Bug 733327 (Memory)

  • Debug with xrestop to see px memory problems
  • Commenting out the vfunc_draw fixes it ._.
  • bastianilso: not 100% sure whats going on in that draw func you showed, but disposing the cr sounds bad
  • also the draw vfunc has a boolean return value


Private messages sometimes missed

STALLED: Cannot seem to see what is causing this. The channel is not processed in _processRequest() in chatroomManager - not until you click the notification. might be a regression in gnome-shell? Need to talk to florian about what might be next step in order to find culprit.


Redesign the nickname/chatfield entry

STALLED: Made design, florian has some patches, just waiting for those patches to land, sorta.

  • Lapo_: polari related, I'm starting to hate with passion the two linked entries at the bottom of the window, nick one is not entirelly obvious, since it looks insensitive and can't be alligned nicelly with anything, also the whole thing looks kinda dated, any plan to change that?
  • Lapo_: a single entry w/o any framing attached to the main chatview (with a plain background) would look a lot better imho
  • quick mockup: (See folder in Polari GSoC)
  • Lapo_: I'd make the background flat on the entry
  • Lapo_: and remove the framing
  • Lapo_: hm and dim the separating lines between the chatview and the input area
  • Lapo_: focus indication would suck tho... uhm


Order userList based on recently PM'ed

STALLED: Need carlos' branch to merge. First design iteration is ready.

  • From Roadmap: "identify contacts the user interacts with frequently and display them in a favorites section"

  • I have design for this.
  • Keep a separate ordered list with the most PM'ed users in the userList, per channel.


Lazy loading of userEntries

DROPPED: A Gtk+ problem. Seems to be a general performance problem in GtkListBox when you have more than 1648 entries or so.

  • When there's like 2036 people in the same channel, then lazy-load the userlist instead of trying to populate the whole thing at once maybe.


Indicate in PM that the person disconnected

DROPPED: Requires work in telepathy-idle

  • no indication in private message that the person disconnected bug 712635

  • make it easier to change back to nominal nick bug 710731


Color idle users in userList

DROPPED: checking members.presence_status, presence_type or presence_message gives no info about their away status. But idle-contact-info.c in telepathy-idle seem to mention a field value called "away" which is set when the contact is away (?). Also, ContactInfoList appears not to be introspectable atm...


/whois command with user info

DROPPED: ContactInfoList appears not to be introspectable atm...


Rule-based keyword highlighting

DROPPED: Would require a preference menu which we atm don't have intentions to have in Polari - we would prefer sane defaults which atm is just highlighting whenever your nick is mentioned.


Polari as background app?

IDEA

  • There was talk about doing design towards background applications. How should chat such as polari be handled? Most chat apps make these legacy tray icons. How should background apps like chat be handled in GNOME?


File transfer support

IDEA

  • using anonymous file sharing service filetea.me (does not have any public API we can use it seems, though).


Bring emoticons to polari

IDEA


Configuring arbitrary commands when connecting to a channel

IDEA

  • Not really in the spirit of our vision though o.O


starting polari from terminal and pressing 'ctrl+C' starts polari again

Bug?


have offline messaging in polari

IDEA

  • both for channel chat or private chat.
  • perhaps combined with indication of whether the other user is online or not in PM.


you PM with michael, michael disconnects and is then called michael_

IDEA


OTR encryption in PM sessions

IDEA


Be able to scroll through history in chatView on touch devices

IDEA


Help Command box dissapears too fast

IDEA

  • <thomasfrangel> if i may, /HELP instructions is disappearing too fast

  • Might be nicer to listen to typing in the chat field or possibly put an 'x' in the corner which can be used to destroy the output notification. or could listen for a 'click'. It's better than a timeout..
  • Need to file a bug about it.


Show status of account in Connections Dialog

IDEA

  • Show spinner or error icon for connections in the connection dialog.
  • Then we can do a request presence for every account on startup. Which should give better support for some IRC bouncers.


Search for nicknames as words in text, make them clickable.

IDEA

  • Be able to identify mentions (usually a name matching a nickname surrounded by whitespace, comma, colon)
  • Similar to clicking on nickname in the left, could be clickable to reveal information about user.


Keyboard shortcut to jump to room with new messages

TODO


Change the height of sidebar rows

GNOME Love

  • Allan suggested increasing the height of the rows a bit.
  • E.g. add more padding around each row. Perhaps take inspiration from the entry or nautilus?


Have tooltips for buttons in Polari's UI

GNOME Love


Refer to #polari in about dialog

GNOME Love

  • Refer to the #polari channel on irc.gnome.org from Polari's about dialog maybe?


Set /away in lockscreen

IDEA

  • automatically set /away when GNOME starts the lock screen


Turn off chat history in GNOME Privacy Panel

IDEA

  • Well, at least for private chats that might be nice.


Dont have ## and # appear identical

TODO

  • # a global (network-wide) channel, & a local one (specific to the current server; mostly on efnet-like nets) -grawity

  • the other two (+ for modeless, ! for timestamped) only exist on IRCnet and I think 2ch.jp -grawity
  • ##project is for unofficial channels for $project afaik -baedert
  • Problem: channels with different prefixes appear as identical.
  • We can solve this by adding a dimmed label to the "##" channels and call them "unofficial" or something better.


IDEA


I dont know what i am about to paste to paste service

TODO

  • One issue with the current paste integration is that you cannot see what 15 lines you are about to paste.
  • Maybe you thought you had copied 40 lines of essay text but in fact you are about to paste 40 lines of passwords.
  • Need a way to see what is in the buffer before pressing Paste.


Encourage Contribution in Polari's About Dialog

IDEA

  • This is not only an idea for Polari but generally for all applications.
  • We should let the about dialog encourage those who wants to know more about the application to contribute and give back to the application.
  • We should let people know HOW this application is developed (open-source), and why it was developed (both briefly).
  • It could also become the right place to ask for donations to GNOME.


Count characters instead of lines when checking whether to paste

GNOME Love?

  • 5 lines is a nice way to limit it
  • We should also check for very long paragraphs, fx if I am about to paste 1 line with 2000 characters to the line. Anything that would result in the text wrapping up to a very large amount of text basically..


Offline State Handling

GNOME Love?.

  • aday: that'd be one idea - replace the input field with a label - "go online to chat"
    • Would probably be in the way of offline messaging then (if that's something we want).
  • aday: and you could experiment with using a thin info bar, possibly...
  • Look at what other applications do.
  • Filed a bug at https://bugzilla.gnome.org/show_bug.cgi?id=760833


Shorten compressed status messages

IDEA

  • If a user disconnects, then joins while the channels is idle during the same status message, we could remove the messages.
  • Might be overcomplicate the code, though.

BastianIlsø/Polari/Workspace (last edited 2016-11-28 18:22:03 by BastianIlsø)