|  | - command bits and pieces: | 
|  | * 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 | 
|  | * ' 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 | 
|  |  | 
|  | - format improvements: | 
|  | * option to quote format (#{session_name:quoted}) | 
|  | * formats need conditions for >0 (for #P) | 
|  | * some way to pad # stuff with spaces | 
|  | * last window update time and format for it | 
|  | * formats to show if a window is linked into multiple sessions, into | 
|  | multiple attached sessions, and is the active window in multiple | 
|  | attached sessions? | 
|  |  | 
|  | - 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 | 
|  |  | 
|  | - improve mouse support: | 
|  | * bind commands to mouse in different areas? | 
|  | * commands executed when clicking on a pattern (URL) | 
|  |  | 
|  | - hooks! | 
|  |  | 
|  | - warts on current naming: | 
|  | * display-time but message-fg/bg/attr | 
|  | * list-* vs show-* | 
|  | * split-window -> split-pane? | 
|  |  | 
|  | - better UTF-8 support: | 
|  | * window names and titles | 
|  | * message display | 
|  | * prompt input | 
|  | * multibyte key input | 
|  |  | 
|  | - copy/paste improvements: | 
|  | * incremental searching | 
|  | * paste w/o trailing whitespace | 
|  | * command to toggle selection not to move it in copy-mode | 
|  | * regex searching | 
|  |  | 
|  | - layout stuff | 
|  | * way to tag a layout as a number/name | 
|  | * maybe keep last layout + size around and if size reverts just put it | 
|  | back | 
|  | * 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 | 
|  | * way to set hints/limits about pane size for resizing | 
|  | * panning over window (window larger than visible) | 
|  | * a mode where one application can cross two panes (ie x|y, width = | 
|  | COLUMNS/2 but height = ROWS * 2) | 
|  | * general key to space cells out evenly (horiz or vert) within their | 
|  | parent cell (could replace even-vert/even-horiz layouts) | 
|  | * separate active panes for different clients | 
|  |  | 
|  | - terminfo bits | 
|  | * use a better termcap internally instead of screen, perhaps xterm | 
|  | * use screen-256color when started on 256 colour terminal? | 
|  |  | 
|  | - code cleanup | 
|  | * 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 | 
|  | * 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 | 
|  | * more readable way to work out the various things commands need to | 
|  | know about the client, notably: | 
|  | - is this the config file? (cmdq->c == NULL) | 
|  | - is this a command client? (cmdq->c != NULL && | 
|  | cmdq->c->session == NULL) | 
|  | - is this a control client? | 
|  | - can i do stdin or stdout to this client? | 
|  | or even guarantee that cmdq->c != NULL and provide a better way to | 
|  | tell when in the config file - then we use cmdq->c if we need a | 
|  | client w/o a session else cmd_current_client | 
|  | * optimize pane redraws, 20120318184853.GK10965@yelena.nicm.ath.cx | 
|  |  | 
|  | - miscellaneous | 
|  | * way to keep a job running just read its last line of output for #() | 
|  | * link panes into multiple windows | 
|  | * 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. likewise, panes and | 
|  | jobs and run-shell and lock command all start with slightly different | 
|  | environments | 
|  | * multiline status line? | 
|  | * customizable command aliases |