- it would be nice if there wasn't so much copying buffers about, audit uses - useful env vars like WINDOW? - sort out who controls the buffers in local.c a bit - better checking/emulation for missing term requirements - alt charset, borders etc (terminfo(5)/Line Graphics) - new window command prompt - mouse handling and some other bits elinks needs - server doesn't handle SIGTERM anymore... - the whole input/screen/local thing sucks a bit, reorganise/redesign it - line mode/char-at-a-time mode a la telnet? - some of the uses of buffers really sucks. buffer_reverse_add/remove, and buffer_insert_range/delete_range are abominations. this should be rethought - 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 - attributes could be 8 not 16 bits - profile/optimise, particularly (i suspect) input.c - tidy up input.c a bit - decide about customised status line - client could pass term/tty fd up to server and then do nothing. what problems would this cause? -- need access to all terminfo data at once... signals? - cleanup/redesign IPC IPC is slightly arse-about-face: overhead? 8-byte header for each packet... hrm. already scanning output for \e, could add an extra byte to it for message - could use bsearch all over the place or get rid of smaller tables (clientmsg) - better errors when creating new windows/sessions (how?) - commands should have to care less about CMD_KEY - session with CMD_NOSESSION should be an error - each command should have a print op as well for list keys - Implicitly add exec to the commands for new windows (switch to disable it) - nested sessions, ie session as window - moving to it moves into session (remembering parent) - Nested sessions over the network, plug-in another tmux as a window/subsession - 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 maximum terminal size (centred?) - per-session toolbar state, other options - force-default option: assume terminal supports default colours even if AX is missing (like, eg, xterm-color in an aterm) - refer to windows by name etc (duplicates? fnmatch?) - commands: start server kill server show-options command command to run something without a window at all? command to insert a key (or other data...) into a window (send-key) should paste-buffer become send-buffer..... 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? paste buffer etc shouldn't be limited to keys buffer manip: clear, view etc - function groups, bind-key ^W { select-window 0; send-key ^W } etc - allow fnmatch for -c, so that you can, eg, detach all clients - session specification is all over the place. some things use -s before cmd, some -s after, some no -s, there are various uses of -n. the differences are sort of logical, but confusing. needs rethought - XXX should -i for win idx be before cmd too?? - bind non prefix keys - stuff like rename would be nice to be able to do in-client like screen, if it could be implemented in a non-icky way - there is to much redrawing. use flags? - command mode (! + type tmux command) - 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 -- For 0.2 -------------------------------------------------------------------- - window splitting?