Only the most basic features have been implemented:
- password login
- message receiving
- message sending
- emotes
- basic notifications
The text user interface is very crude and has a few bugs.
If you want to support this project, consider donating on liberapay!
If you grabbed the source, build with: make
.
You will need CHICKEN 5.2.0 or higher, the ncursesw and openssl packages
with their development files, as well as pkg-config.
If you haven’t used Ensemble before, you can use the /login command.
Just type /login
on the backend window and follow the steps.
You can quit by typing /exit
or /quit
at the input prompt.
All configuration is kept in $ENSEMBLE_CONFIG_HOME if defined, or $XDG_CONFIG_HOME/ensemble/ (usually ~/.config/ensemble/) Session storage and cache is kept in $ENSEMBLE_CACHE_HOME if defined, or $XDG_CACHE_HOME/ensemble/ (usually ~/.cache/ensemble/)
/me text
(scope: current window): sends an emote/say text
(scope: current window): sends text as a message/list
: lists all windows and their associated room name/find regex
: jumps to the window where the room matches regex, or to a listing of matching rooms/login
(scope: current profile): runs the login prompt/window win-id
(or/w win-id
, or/r win-id
): jumps to the designated window/rename new-id
: renames the current window to new-id/exit
or/quit
: saves the session and exits
backspace
removes the character before the cursorC-d
removes the character at the cursorleft
orC-b
moves the cursor back one characterright
orC-f
moves the cursor forward one characterC-a
moves the cursor at the beginning of the lineC-f
moves the cursor at the end of the lineC-k
removes all characters starting at the cursor positionM-b
moves the cursor back one wordM-f
moves the cursor forward one wordM-d
removes the word at the right of the cursorC-w
removes the word at the left of the cursorReturn
when the input line is empty moves the read marker to the last messagePage Up
andPage Down
scroll the history of the current roomC-n
switches to the next windowC-p
switches to the previous windowM-n
switches to the next window with notificationsM-p
switches to the previous window with notificationsTab
to auto-complete nicknames (only works at the beginning of a message)
- Room participation
- Session storage
- Programmable key bindings and commands
- Configurable external commands for media handling
- Low bandwidth mode (for mobile connection)
- Configurable notifications support (external command? sounds? terminal beep?)
- End to end encryption
- Flat file for room keys, device keys and trusted keys for easy import/export
- Configurable typing notifications
- Media sending
- UI design
- Login screen
- Easy (and lazy) room history navigation
- Rooms grouping
- Tiny screen support: N900 has a 79x18 terminal (79x21 fullscreen)
- Big screen support (st fullscreen is 239x67 here)
- Good color support (8, 16, 256, 24 bits)
- Nickname coloration
- Images thumbnails
- Message display
- Partial MXID showing when multiple display names are identical
- Message date
- Formated messages viewing
- Contrast check for colored messages
- Non-intrusive receipt indicators
- Message / command composition
- Formated message composition
- Multi-lines messages with intelligent behaviour when pasting text (bracketed paste)
- Typing suggestions / completion (like this)
- Suggestion menu / command submenu
- Encryption
- Good E2E key verification interface
- Encryption validity indicator
- Last read message indicator
- Screen indicators when viewing older messages, with a way to quickly go back to the present
- Room participants screen with actions menu (private message, kick, ban, …)
- Message/events navigation with contextual actions (quote, open/save media, …)
- Status bar with typing notifications, encryption status, other rooms status…
- Room directory screen with easy access to other servers’ directory