aboutsummaryrefslogtreecommitdiff
path: root/TODO
diff options
context:
space:
mode:
Diffstat (limited to 'TODO')
-rw-r--r--TODO172
1 files changed, 172 insertions, 0 deletions
diff --git a/TODO b/TODO
new file mode 100644
index 00000000..632ca4ee
--- /dev/null
+++ b/TODO
@@ -0,0 +1,172 @@
+NOTES
+=====
+
+This file describes rough notes regarding ideas for potential future tmux
+development. It's not necessarily guaranteed that items in this TODO file
+will ever get implemented.
+
+It is asked therefore, that anyone thinking of undertaking a task in this
+TODO file, email tmux-users@lists.sf.net to discuss the feature.
+
+Thie file is split up between tmux user interface (UI) issues, and terminal
+compatibility issues.
+
+TMUX UI ISSUES
+==============
+
+- implicitly add exec to the commands for new windows (switch to disable it)?
+- bring back detach-session to detach all clients on a session?
+- allow fnmatch for -c, so that you can, eg, detach all clients
+- garbage collect window history (100 lines at a time?) if it hasn't been used
+ in $x time
+- flags to centre screen in window
+- activity/bell should be per-window not per-link? what if it is cur win in
+ session not being watched?
+- 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
+- support other mouse modes (highlight etc) and use it in copy mode
+- set-remain-on-exit is a bit of a hack, some way to do it generically?
+- would be nice to be able to use "--" to mark start of command w/ neww etc
+ to avoid quoting
+- make command sequences more usable: don't require space after ;, handle
+ errors better
+- attach should have a flag to create session if it doesn't exist
+- choice and more mode would be better per client than per window?
+- hooks to which commands may be attached, for example: tmux add-hook
+ "new-session" if-shell "[ -e $HOME/.tmux-session.conf ]" source-file
+ $HOME/.tmux-session.conf
+- way to set socket path from config file
+- what about utmp etc? can tmux update it like screen? setgid?
+- warts on current naming:
+ - display-time but message-fg/bg/attr
+ - list-* vs show-*
+ - server-info
+ - up-pane/down-pane/swap-pane -U/swap-pane -D vs next-*/previous-*
+ - split-window -> split-pane??
+- a way for force-width/height to apply to only one pane (how?)
+- command to list what is actually running in each window with command line,
+ pid (need some adaption of the osdep code)
+- some way to force a screen to use the entire terminal even if it is forced
+ to be smaller by other clients. pan smaller terminal? (like screen F)
+ -- idea of a "view" onto a window, need base x/y offsets for redraw
+- handle resize better in copy mode
+- way to copy stuff that is off screen due to resize
+- commands should be able to succeed or fail and have || or && for command
+ lists
+- some way to KEEP a command running continually and just use its LAST line of
+ output
+- UTF-8 to a non-UTF-8 terminal should not be able to balls up
+ the terminal - www/ruby-addressable; make regress
+- support esc-esc to quit in modes
+- fix ctrl+F1-F4 output. to what?
+- better utf8 support: window names, prompt input, message display
+- session history for client and last-session command
+- option to change status line colour when current window is in a mode?
+- option to move copy mode indicator into status line
+- list-buffer/show-buffer should display UTF-8
+- selection behaviour closer to vi in vi mode
+- live update: server started with -U connects to server, requests sessions and
+ windows, receives fds
+- sort out inheriting config from shell on new sessions/windows:
+ should pick up default-path/termios/etc from client if possible,
+ else leave empty/default
+- link panes into multiple windows
+- bells should be passed between sessions with visual-bell etc
+ sequence until its shell exits, to allow them to be used from the config file
+- better session sharing: create-socket command to create socket somewhere (-r
+ flag for readonly)
+- multiline status line (no?)
+- flag for absolute pane size to resize-pane
+- sanity check input to socket
+- support title stack, both internally and externally
+ http://docs.freebsd.org/cgi/getmsg.cgi?fetch=1149299+0+archive/2010/freebsd-questions/20100207.freebsd-questions
+- command to show status line information briefly when it is off
+- some way to pad # stuff with spaces, #!2T maybe
+- a binding to "scroll down and exit at bottom" copy mode
+- some way to pass keystrokes in copy mode through to underlying window
+- last window update time and # replacement for it for display-message
+- find-window across sessions - other ways to make session handling easier?
+- ' and " should be parsed the same (eg "\e" vs '\e') in config and command
+ prompt?
+- command to toggle selection not to move it in copy-mode
+- audit of escape sequence support vs xterm
+- support binding keys to mouse (mouse-select-pane -> mouse-keys or something,
+ mouse click == select-pane -t %%, mouse scroll up == copy-mode)
+- something for -t "last window in session" so a session can be used as a stack
+- synchronous commands - client sends cmd and blocks, neww/splitw saves client
+ ptr then when program inside died, sends MSG_SOMETHING with wait status to
+ client
+- 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
+- monitor, bell etc should monitor /all/ panes in the window not just one
+- a history of commands that can be reversed (reverse member of each command,
+ and a buffer) info() when changing to same window
+- way to add dest for break-pane; maybe some easier way to unbreak-pane
+- case insensitive searching
+- incremental searching in copy mode.
+- configurable borders and empty space filler for when panes < window?
+- 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)
+- multiple keys could be done with tables, ie have prefixes go and instead
+ bind -n ^A prefix-table "default"
+ where prefix-table sets command lookup table and sets prefix flag, then next
+ key is looked up in that table
+- pass shell commands as argv rather than strings, allow them to be specified
+ in commands without quotes
+- numeric prefix in copy mode should be paste buffer for C-w
+- named buffers and allow gaps in the stack
+- get rid of separate UTF-8 cell stuff: add 1 byte to cell and store BMP as
+ uint16_t+3 bits of flags. anything <=0xffff is Unicode, higher are used to
+ build tree of combined characters/non-BMP (LRU dropped when full)
+- entry in FAQ about what to do when someone does mkdir /tmp/tmux-1000
+- monitor-activity is broken in several ways with multiple clients
+- monitor-activity should be more powerful (eg set a region)
+- maybe a way to put pane names instead of window names in status line
+- support for borderless panes
+- run-shell/if-shell should support status_replace stuff
+- wait-pane command or another way to make it synchronous/wait for command to
+ finish
+- last-pane across sessions
+- attach should take a pane and select it as well as attaching
+- panes should have names like windows
+- command-prompt doesn't work if made read-only. why?
+- option to quote format eg #{session_name:quoted}
+- formats need conditions for >0 (for #P)
+- fetch full command line on !Linux, and add option to strip prefixes
+ such as "sh " "/bin/sh " etc etc
+- synchronize-windows option
+- append to buffer in copy mode
+- way to paste w/o trailing whitespace
+- flag to switch-client to switch all clients
+- history of layouts and undo/redo flags to selectl
+- way to tag a layout as a number/name
+- optimize pane redraws, 20120318184853.GK10965@yelena.nicm.ath.cx
+- support multibyte key strings
+- allow commands to be executed when certaing patterns in a screen
+ are clicked on with the mouse
+- flag to make next/previous commands skip a window
+- way to do tmux command/run-shell from mode keys
+- send command to all windows
+- choose-pane command
+ - Augment choose-tree to do this? TA to investigate.
+- choose-mode and copy-mode are very similar. Perhaps make choose-mode a
+ subset of copy-mode in that it inherits key-bindings and other traits but
+ not all.
+- add -c for new-session like new-window
+
+TERMINAL ISSUES
+================
+
+- use a better termcap internally instead of screen, perhaps xterm
+- clear window title on exit (see using xterm title stack)
+- get it passing all the vttest tests that don't require resizing the terminal
+- support for bce
+- use screen-256color when started on 256 colour terminal??
+- if-shell/run-shell should block further command execution in the same command
+- possibly support rxvt-unicode extended mouse input (1015)
+- wrap/no wrap esc seq DEC CSI ? 7 h/l
+* We need a tmux terminfo entry to document the extensions we are using in
+ upstream terminfo. Must NOT change (only add or remove) anything from
+ TERM=screen so we can fallback!