# Tasks to be done

## TUI

- [ ] Initial configuration setup
- [ ] Solve colors issue
- [ ] No chat handling and no chat selected on the startup of the application
- [ ] Complete chat loading and sending messages to contacts so it is written to the file
- [ ] Create systray
- [ ] Share what music am i listening using mpris
- [ ] Colors and themes

### Chat

- [ ] Add scrolling capability
- [ ] Solve multiline messages and resizing the window
- [ ] Implement calculating positions of images and profile pictures
- [ ] Add rendering image previews
  - [ ] Render image in chat
  - [ ] Render image in chat with scroll
- [ ] Add rendering profile pictures
- [ ] Solve too long message history problem - render only first 100 messages?
- [ ] Check chat without images, if kitty image protocol is not used
- [ ] Check chat on windows
- [ ] Create timestamps like today yesterday etc...

### Sidebar

- [ ] Profile pictures next to the username
- [ ] Ability to scroll through users and rerender profile images
- [ ] Colors maybe?
- [ ] Solve too long names and window width

### Input

- [ ] Add emoji internal selector
- [ ] Add button to add attachement
- [ ] Add correct parsing of input to correct chat

### Profile Sidebar

- [ ] Profile image
- [ ] Mpris integration

## CMD

- [ ] Create basic commands template to use chat from commandline

## Configuration

- [ ] Keybindings for application
- [ ] IDs instead of usernames
- [ ] Load and Write new messages to the files
- [ ] Change preloading of Contacts from list to complex structure
- [ ] Change preloading of messages from list to complex structure
- [ ] Add new contact
- [ ] Choose server to use when running TUI
- [ ] Create colorthemes
- [ ] Add reactions to messages and replies

## Server

## Communication

## Application integration with the system

- [ ] Systray and how to manage to not have multiple instances of the application running
- [ ] Create simple cmd commands that would be intuitive and simple to use

## IDEAS

- just set window size of the box to be even, so there should not be need in rendering half of the profile picture
