- 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 - refer to windows by name etc (duplicates? fnmatch?) - commands: 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 - 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 - split clients into three RB trees by fd: attached/unattached/dead? or tailqs? what would be fastest per-char? - c/p is still borken in some ways - better mode features: search, back word, forward word, etc - flags to centre screen in window - better terminal emulation (identify, insert mode, some other bits) - when resizing, use history - audit for leftover/unused code - activity/bell should be per-window not per-link? what if it is cur win in session not being watched? - tidy up window modes - problems with force-width when wrapping line in emacs? - next prev word etc in command prompt; also ^K; also make it support modes to support vi. is there something could use for this? editline(3)/readline? - many more info() displays for various things - vi half page scroll - backspace should perhaps wrap backwards over newlines which were not moved down by a newline: screen and the OS X terminal does this but xterm and most others do not. this might be hard: a flag for each grid line (top bit of size maybe)? a single flag is insufficient as can't then tell when to /stop/ unwrapping - input.c is too complicated. simplify? - try change from pass-though model to redraw model (use updated screen data). maybe too slow though? - use a better termcap internally instead of screen, perhaps xterm - tty.c is a bit ugly - a command to display the status line briefly when it is turned off - FAQ "Can I have some examples of cool things I can do with tmux?" -- linkw, more?? - kill all but current pane - fix rxvt cursor fg issue (text under cursor can have non-white fg) - key handling sucks a bit and needs to be reworked - some people find first window being 0 rather than 1 is awkward on the keyboard. what about a new-window-index option that sets the base at which tmux starts numbering new windows, then they can do: set -g new-window-index 1; bind 0 selectw -t:10 - some way to change status line colours based on something? command? - client sx/sy should be in tty, then can let the terminal wrap at edge to allow xterm to pick up it should be one line for its c/p - should be able to move to a hidden pane and it would be moved into view. pane number in status line/top-right would be cool for this - command to run something without a window at all - output to window-more. what for? isnt this the same as doing it w/ splitw/neww now? - command to purge window history? or apply history-limit changes? - clone session command - make command sequences more usable: don't require space around ;, handle errors better - would be nice if tmux could be the shell (tmux attach, but hard link to tmux binary as "tmuxsh" or wrapper script?) -- problems with tty dev permeissions - 88 colour support; new grid cell flag, and 256<->88 88<->16 translation tables - UTF-8 combining characters don't work. store in one cell - pointer to table of chains. bit of a hack and would mean max of 65536 per screen. OR maybe utf8 should work differently; could store as multiple cells, 1 of width >0 and n of width 0, then translate cursor indexes on-the-fly would need to adjust all cursor movement and also handle different width lines properly. (hopefully) for 0.7, in no particular order: - swap-pane-up, swap-pane-down (maybe move-pane-*) - move-pane (to window) (maybe break-pane?) - command: copy-buffer -s src-session -t dst-session -a src-index -b dst-index (copy from other session) - flag to scroll-mode/copy-mode to automatically scroll up a page - key to switch to copy mode from scroll mode - document suspend-client - document command sequences - document find-window - document split-window -p and -l - attach should have a flag to create session if it doesn't exist - do mouse mode properly and fix it when window is split