Skip to content

Latest commit

 

History

History
52 lines (43 loc) · 1.77 KB

README.md

File metadata and controls

52 lines (43 loc) · 1.77 KB

fltk-rs-chat-proof-of-concept

The purpose of this repo is to make a proof of concept that demonstrates that fltk is a good enough tool to create a user interface for a modern instant messaging client.

Building and running

Running this, once dependencies are resolved, is as simple as running cargo run

The most important dependencies are rust and cargo, but on Linux you may need to also install some other packages to resolve linking errors.

On Fedora, these packages included:

libX11-devel
libXext-devel
libXinerama-devel
libXcursor-devel
libXrender-devel
libXfixes-devel
libXft-devel
pango-devel

But could be installed all at once by installing one of these packages:

gtk2-devel
webkit2gtk3-devel

On Mac OS, you probably need to install xcode.

Goals

The goals for this project:

  • Not look like this was designed in the 1990s or early 2000s
  • On the top, display the title, description, settings, and a way to view users in the chat
  • On the bottom, display an editor and send message button
  • In the middle, display a timeline that shows messages, who sent the messages, and the timestamps
  • Support chat bubbles, as well as IRC or slack timeline styles
  • Support message grouping, so messages sent within a minute of each other from the same person, uninterrupted, are grouped to reduce clutter.
  • Load more messages while scrolling up, and good management of resources while scrolling far
  • Use less RAM than most modern applications
  • Have minimal idle CPU usage
  • Allow selection of text in the timeline

Nice-to-haves:

  • Editor expands once it gets full, up to a point when it reverts to scolling
  • Animations of the buttons and addition of new messages on send for feedback to user
  • Spell check
  • Fractional scaling support
  • Easy theming
  • Always-on-top support