|  | - command bits and pieces: | 
|  | * allow multiple targets: fnmatch for -t/-c, for example detach all | 
|  | clients with -t* | 
|  | * ' and " should be parsed the same (eg "\e" vs '\e') in config | 
|  | and command prompt | 
|  | * last-pane across sessions | 
|  | * resize-pane -p to match split-window -p | 
|  | * flag to wait-for to have a timeout and/or to stop waiting when the | 
|  | client gets a signal | 
|  |  | 
|  | - make command sequences more usable | 
|  | * don't require space after ; | 
|  | * options for error handling: && and ||? | 
|  |  | 
|  | - options bits and pieces: | 
|  | * way to set socket path from config file | 
|  |  | 
|  | - format improvements: | 
|  | * option to quote format (#{q:session_name}) | 
|  | * some way to pad # stuff with spaces | 
|  | * formats to show if a window is linked into multiple sessions, into | 
|  | multiple attached sessions, and is the active window in multiple | 
|  | attached sessions? | 
|  | * comparison operators like < and > (for #{version}?) | 
|  | * %else statement in config file | 
|  |  | 
|  | - 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) | 
|  |  | 
|  | - warts on current naming: | 
|  | * display-time but message-fg/bg/attr | 
|  | * list-* vs show-* | 
|  |  | 
|  | - copy/paste improvements: | 
|  | * paste w/o trailing whitespace | 
|  | * command to toggle selection not to move it in copy-mode | 
|  | * regex searching | 
|  | * searching in copy mode should unwrap lines, so if you search for "foobar" | 
|  | then it should be found even if it is now "foo\nbar" (if the WRAP flag | 
|  | is set on the line) | 
|  | * capture-pane option to preserve spaces but not join lines | 
|  | * improve word and line selection in copy mode (for example when | 
|  | dragging it should select by word. compare how xterm works. GitHub | 
|  | issue 682) | 
|  |  | 
|  | - 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) | 
|  | * separate active panes for different clients | 
|  | * way to choose where the freed space goes when a pane is killed: | 
|  | option to kill-pane? GitHub issue 918 | 
|  |  | 
|  | - 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. | 
|  | problem: what about windows in multiple sessions? there are contexts | 
|  | where we do not know which session, or where multiple choices makes | 
|  | no sense... could at least have one global list for all types of | 
|  | global options and keep separate window,session lists | 
|  | * 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 | 
|  |  | 
|  | - miscellaneous | 
|  | * 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? separate command prompt and status line? | 
|  | * automatic pane logging | 
|  | * marks in history, automatically add (move?) one when pane is changed | 
|  | * this doesn't work, need pane reference count probably: | 
|  | bind -n DoubleClick3Status confirm-before -p "kill-window #I? (y/n)" kill-window | 
|  | * respawn -c flag same as neww etc | 
|  |  | 
|  | - hooks | 
|  | * more hooks for various things | 
|  | * finish after hooks for special commands | 
|  | * multiple hooks with the same name? | 
|  | * finish hooks for notifys | 
|  | * for session_closed, if no sessions at all, perhaps fake up a temporary one |