- mouse handling and some other bits elinks needs - line mode/char-at-a-time mode a la telnet? - handle ioctl/termios stuff on window sockets - figure out once and for all what is going on with backspace and del backspace should be translated per the termios setting. del passed through? - window creation/idle time - profile/optimise, particularly (i suspect) input.c - could use bsearch all over the place or get rid of smaller tables (clientmsg) - better errors when creating new windows/sessions (how?) - Implicitly add exec to the commands for new windows (switch to disable it) - it would be nice to have multichar commands so you could have C-b K K for kill-window to limit accidental presses - status-fg/status-bg should be able to set attributes: bold, etc - save/restore (DECSC/DECRC) are ugly. maybe a struct screen_attr and memcpy - force-default option: assume terminal supports default colours even if AX is missing (like, eg, xterm-color in an aterm). DITTO for 256 colours - refer to windows by name etc (duplicates? fnmatch?) - commands: command to run something without a window at all? command to purge window history extend list-clients to list clients attached to a session (-a for all?) bring back detach-session to detach all clients on a session? clone-session command to link all windows to a new session - function groups, bind-key ^W { select-window 0; send-key ^W } etc *** - allow fnmatch for -c, so that you can, eg, detach all clients - bind non prefix keys - garbage collect window history (100 lines at a time?) if it hasn't been used in $x time (need window creation/use times) - lift SHRT_MAX limits for history - audit copy/scroll and other modes for problems with very small windows - screen_draw_* moved out/renamed (accept TTY_*?) - split clients into three RB trees by fd: attached/unattached/dead? or tailqs? what would be fastest per-char? - window splitting? - c/p is still borken in some ways - different screen model? layers perhaps? hmm - better mode features: search, back word, forward word, etc - flags to centre screen in window - better terminal emulation (identify, insert mode, some other bits) -- For 0.5 -------------------------------------------------------------------- - FINISH UTF8: fix copy and paste - SPLIT u_short attr into attr,flags? - maybe rethink backend data structure? - utf8 can be 1-4 bytes - most common is 1 bytes - there can be double-width characters which take n bytes but 2 columns on screen - they are not only drawn as two characters, they also require two backspaces to remove - three operations: - simultaneously update screen and ttys - redraw screen or section of screen to ttys - write to ttys without updating screen --- split off grid manip: 16-bit characters 8-bit flags 8-bit attributes 8-bit fg colour 8-bit bg colour struct grid_data { struct grid_cell **cells; u_int sx; u_int sy; }; struct grid_cell { u_short data; u_char attr; u_char flags; u_char fg; u_char bg; } --- Would it be better to just expand char to 16-bits and use it as an index only for >2-byte characters? or - better - don't support entire UTF range? only the BMP? this would get rid of UTF table and limits, but still leave double-width character annoyances also would double memory usage ---- 21:09 < merdely> NicM: if I run 'tmux attach -t main' and there is no tmux session named main, start a new one. - commands: save-buffer -b number filename load-buffer -b number filename copy-buffer -s src-session -t dst-session -a src-index -b dst-index (copy from other session) - clear EOL etc CANNOT rely on term using the current colour/attr and probably should not emulate it doing so - activity/bell should be per-window not per-link? what if it is cur win in session not being watched? - tidy up window modes - support \033_string\033\\ for window title too - list-keys should be sorted - problems with force-width when wrapping line in emacs? - command history for command-prompt. better tab completion (use options too) - window options should be done similarly to standard options - next prev word etc in command prompt - many more info() displays for various things - document mode-keys - vi half page scroll - bugs with 256 colour test perl script...