|  | - command bits and pieces: | 
|  | * use "--" to mark start of command w/ neww etc to avoid quoting | 
|  | * why doesn't command-prompt work if made read-only? | 
|  | * allow multiple targets: fnmatch for -t/-c, for example detach all | 
|  | clients with -t* | 
|  | * add -c for new-session like new-window | 
|  | * attach should take a pane and select it as well as attaching | 
|  | * ' and " should be parsed the same (eg "\e" vs '\e') in config | 
|  | and command prompt | 
|  | * last-pane across sessions | 
|  | * exact match operator for targets (or break the substring match | 
|  | and require eg x* instead of just x) | 
|  |  | 
|  | - make command sequences more usable | 
|  | * don't require space after ; | 
|  | * options for error handling: && and ||? | 
|  |  | 
|  | - options bits and pieces: | 
|  | * set-remain-on-exit is a complete hack | 
|  | * way to set socket path from config file | 
|  | * -fg/-bg/-attr is crap - better just foo-style options which accept | 
|  | fg=,bg=,bright and so on like #[] | 
|  |  | 
|  | - format improvements: | 
|  | * option to quote format (#{session_name:quoted}) | 
|  | * formats need conditions for >0 (for #P) | 
|  | * some way to pad # stuff with spaces, #!2T maybe | 
|  | * status stuff is redundant with formats | 
|  |  | 
|  | - choose mode improvements: | 
|  | * choose-pane command (augment choose-tree to do this?) | 
|  | * choose-mode and copy-mode are very similar, make choose-mode a subset? | 
|  | * flag to choose-* for sort order | 
|  | * choose mode would be better per client than per window | 
|  | * two choices (first one then second, for swap-pane and join-pane) | 
|  |  | 
|  | - improve monitor-*: | 
|  | * straighten out rules for multiple clients | 
|  | * think about what happens across sessions | 
|  | * monitor changes within a region | 
|  | * perhaps monitor /all/ panes in the window not just one | 
|  |  | 
|  | - panning over window (window larger than visible) | 
|  |  | 
|  | - link panes into multiple windows | 
|  |  | 
|  | - improve mouse support: | 
|  | * bind commands to mouse in different areas? | 
|  | * more fine-grained options | 
|  | * commands executed when clicking on a pattern (URL) | 
|  |  | 
|  | - hooks! | 
|  |  | 
|  | - warts on current naming: | 
|  | * display-time but message-fg/bg/attr | 
|  | * list-* vs show-* | 
|  | * server-info | 
|  | * split-window -> split-pane?? | 
|  |  | 
|  | - way to keep a job running just read its last line of output for #() | 
|  |  | 
|  | - better UTF-8 support: | 
|  | * #22T can split in the middle of UTF-8 characters! | 
|  | * window names and titles | 
|  | * message display | 
|  | * prompt input | 
|  | * multibyte key input | 
|  |  | 
|  | - live update: server started with -U connects to server, requests sessions and | 
|  | windows, receives file descriptors | 
|  |  | 
|  | - there are inconsistencies in what we get from old shell and what comes from | 
|  | config for new sessions and windows | 
|  |  | 
|  | - multiline status line? | 
|  |  | 
|  | - support title stack, both internally and externally (restore on detach) | 
|  | http://docs.freebsd.org/cgi/getmsg.cgi?fetch=1149299+0+archive/2010/freebsd-questions/20100207.freebsd-questions | 
|  |  | 
|  | - last window update time and format for it | 
|  |  | 
|  | - bind commands to key sequences -- make it so ALL keys go through a table, | 
|  | first an implicit table in which C-b is the only default binding to a command | 
|  | that says "next key from $othertable" and so on. means -n can go away as well | 
|  |  | 
|  | - copy/paste improvements: | 
|  | * case insensitive searching | 
|  | * incremental searching | 
|  | * append to buffer | 
|  | * paste w/o trailing whitespace | 
|  | * named buffers and allow gaps in the stack | 
|  | * command to toggle selection not to move it in copy-mode | 
|  |  | 
|  | - mouse-select-pane will screw up with !MODE_MOUSE_STANDARD (it sets the flag | 
|  | on w/o checking the others before calling tty_update_mode) | 
|  |  | 
|  | - way to tag a layout as a number/name | 
|  |  | 
|  | - optimize pane redraws, 20120318184853.GK10965@yelena.nicm.ath.cx | 
|  |  | 
|  | - instead of separate window and session options, just one master options list | 
|  | with each option having a type (window or session), then options on window, | 
|  | on session, and global. for window options we look window->session->global, | 
|  | and for session we look session->global | 
|  |  | 
|  | - maybe keep last layout + size around and if size reverts just put it back | 
|  |  | 
|  | - way to set hints/limits about pane size for resizing | 
|  |  | 
|  | - revamp layouts: they are too complicated, should be more closely integrated, | 
|  | should support hints, layout sets should just be a special case of custom | 
|  | layouts, and we should support panes that are not attached to a cell at | 
|  | all. this could be the time to introduce panelink to replace layout_cell | 
|  |  | 
|  | - use a better termcap internally instead of screen, perhaps xterm | 
|  |  | 
|  | - use screen-256color when started on 256 colour terminal? | 
|  |  | 
|  | - we need a tmux terminfo entry to document the extensions we are using in | 
|  | upstream terminfo | 
|  |  | 
|  | - the way pane, window, session destroy is handled is too complicated and the | 
|  | distinction between session.c, window.c and server-fn.c functions is not | 
|  | clear. could we just have kill_pane(), kill_window(), unlink_window(), | 
|  | kill_session() that fix up all data structures (flagging sessions as dead) | 
|  | and return a value to say whether clients need to be checked for dead | 
|  | sessions? sort of like session_detach now but more so. or some other scheme | 
|  | to make it simpler and clearer? also would be nice to remove/rename | 
|  | server-fn.c. |