This commit was manufactured by cvs2svn to create tag 'TMUX_1_2'.
[tmux.git] / TODO
blob2a838b3e460bed160f5eaa77bd3b1d2ecee1ddfa
1 - window creation/idle time
2 - better errors when creating new windows/sessions (how?)
3 - implicitly add exec to the commands for new windows (switch to disable it)?
4 - it would be nice to have multichar commands eg C-b K K
5 - commands:
6         extend list-clients to list clients attached to a session (-a for all?)
7         bring back detach-session to detach all clients on a session?
8 - allow fnmatch for -c, so that you can, eg, detach all clients
9 - garbage collect window history (100 lines at a time?) if it hasn't been used
10   in $x time (need window creation/use times)
11 - lift SHRT_MAX limits for history?
12 - flags to centre screen in window
13 - better terminal emulation
14 - activity/bell should be per-window not per-link? what if it is cur win in
15   session not being watched?
16 - next prev word etc in command prompt
17 - many more info() displays for various things
18 - input.c is too complicated. simplify?
19 - use a better termcap internally instead of screen, perhaps xterm
20 - fix rxvt cursor fg issue (text under cursor can have non-white fg)
21 - should be able to move to a hidden pane and it would be moved into view. pane
22   number in status line/top-right would be cool for this
23 - support other mouse modes (highlight etc) and use it in copy mode
24 - set-remain-on-exit is a bit of a hack, some way to do it generically?
25 - set-option should be set-session-option and should be overall global options
26       also quiet, utf8 and maybe other flags?
27   -g is a bit unexpected in conf file
28 - clear window title on exit
29 - the output code (tty.c) could do with optimisation depending on term
30   capabilities
31 - would be nice to be able to use "--" to mark start of command w/ neww etc
32   to avoid quoting
33 - make command sequences more usable: don't require space after ;, handle
34   errors better
35 - attach should have a flag to create session if it doesn't exist
36 - choice and more mode would be better per client than per window?
37 - hooks to which commands may be attached, for example: tmux add-hook
38   "new-session" if-shell "[ -e $HOME/.tmux-session.conf ]" source-file
39   $HOME/.tmux-session.conf
40 - get it passing all the vttest tests that don't require resizing the terminal
41 - esc seq to set window name and title should be documented, and name variant
42   should clear automatic-rename
43 - way to set socket path from config file
44 - XXX once env stuff is in, default-path and VISUAL/EDITOR should be picked up
45   when session is started
46 - what about utmp etc? can tmux update it like screen? setgid?
47 - warts on current naming:
48         - display-time but message-fg/bg/attr
49         - list-* vs show-*
50         - server-info
51         - up-pane/down-pane/swap-pane -U/swap-pane -D vs next-*/previous-*
52         - split-window -> split-pane??
53 - tidy up and prioritise todo list ;-)
54 - neww and attach can create a session if none exists?
55        would work fine with config file since
56 - a way for force-width/height to apply to only one pane (how?)
57 - command to list what is actually running in each window with command line,
58   pid (need some adaption of the osdep code)
59 - support for bce
60 - it would be nice if the start/end line keys in copy mode were aware of
61   wrapped lines
62 - some way to force a screen to use the entire terminal even if it is forced
63   to be smaller by other clients. pan smaller terminal? (like screen F)
64                 -- idea of a "view" onto a window, need base x/y offsets
65                    for redraw
66 - handle resize better in copy mode
67 - way to copy stuff that is off screen due to resize
68 - commands should be able to succeed or fail and have || or && for command
69   lists
70 - support the mouse wheel to scroll through history
71 - some way to KEEP a command running continually and just use its LAST line of
72   output
73 - bind commands to mouse buttons
74 - UTF-8 to a non-UTF-8 terminal should not be able to balls up
75   the terminal - www/ruby-addressable; make regress
76 - copy mode needs a tidy/cleanup
77 - ability to save history (to buffer?)
78 - multiple keys could be done with tables, ie have prefixes go and instead
79         bind -n ^A prefix-table "default"
80   where prefix-table sets command lookup table and sets prefix flag, then next
81   key is looked up in that table
82 - UTF-8 should be a pointer into a combined string buffer
83 - check irssi (term_charset) works with UTF-8
84 - support esc-esc to quit in modes
85 - fix ctrl+F1-F4 output. to what?
86 - look into xterm clearing its selection when scrolling etc
87 - better utf8 support:
88          window names
89          prompt input
90          message display
91          copy and paste cursor and wide characters
92          ...?
93 - option so that when session is destroyed, attach client to another session
94   rather than exiting
95 - session history for client and last-session command
96 - option to change status line colour when current window is in a mode?
97 - option to move copy mode indicator into status line
98 - list-buffer/show-buffer should display UTF-8
99 - selection behaviour closer to vi in vi mode
100 - live update: server started with -U connects to server, requests sessions and
101   windows, receives fds
102 - convert status line history to be server global (anything else?)
103 - something for -t "last window in session" so a session can be used as a stack
104 - command to show a tree of sessions-windows-panes (active marked with *)
105 - sort out inheriting config from shell on new sessions/windows:
106         should pick up default-path/termios/etc from client if possible,
107         else leave empty/default
108 - define custom layouts
109 - link panes into multiple windows
110 - -h option to capture-pane to capture the history as well
111 - bells should be passed between sessions with visual-bell etc
112 - use screen-256color when started on 256 colour terminal??
113 - if-shell/run-shell should block further command execution in the same command
114   sequence until its shell exits, to allow them to be used from the config file
115 - better session sharing: create-socket command to create socket somewhere (-r
116   flag for readonly)
117 - allow buffer to be specified when copying in copy mode
118 - multiline status line
119 - flag for absolute pane size to resize-pane
120 - sanity check input to socket
121 - stdin fd should be passed up to parent so load-buffer and others could use it
122   for nonattaching clients
123 - environment should be set up for jobs
124 - select-buffer command
125 - fix jobs so they block in config file rather than executing at an arbitrary
126   future point -- need state stored in client so other clients can proceed
127 - rectangle copy:
128         when selecting leftward, cursor should be inside block per emacs
129         key to rotate corner at which cursor is
130 - double C-a should walk back over wrapped lines like C-e
131 - support title stack, both internally and externally
132         http://docs.freebsd.org/cgi/getmsg.cgi?fetch=1149299+0+archive/2010/freebsd-questions/20100207.freebsd-questions
133 - copy buffers should be global, limit can be server option, nuke copy-buffer
134   command
135 - command to show status line information briefly when it is off