1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
- line mode/char-at-a-time mode a la telnet?
- handle ioctl/termios stuff on window sockets
- figure out once and for all what is going on with backspace and del
backspace should be translated per the termios setting.
del passed through?
- window creation/idle time
- profile/optimise, particularly (i suspect) input.c
- could use bsearch all over the place or get rid of smaller tables (clientmsg)
- better errors when creating new windows/sessions (how?)
- Implicitly add exec to the commands for new windows (switch to disable it)
- it would be nice to have multichar commands so you could have C-b K K for
kill-window to limit accidental presses
- status-fg/status-bg should be able to set attributes: bold, etc
- refer to windows by name etc (duplicates? fnmatch?)
- commands:
command to run something without a window at all - output to window-more
command to purge window history
extend list-clients to list clients attached to a session (-a for all?)
bring back detach-session to detach all clients on a session?
clone-session command to link all windows to a new session
- function groups, bind-key ^W { select-window 0; send-key ^W } etc ***
- allow fnmatch for -c, so that you can, eg, detach all clients
- bind non prefix keys
- garbage collect window history (100 lines at a time?) if it hasn't been used
in $x time (need window creation/use times)
- lift SHRT_MAX limits for history
- audit copy/scroll and other modes for problems with very small windows
- split clients into three RB trees by fd: attached/unattached/dead?
or tailqs? what would be fastest per-char?
- window splitting?
- c/p is still borken in some ways
- better mode features: search, back word, forward word, etc
- flags to centre screen in window
- better terminal emulation (identify, insert mode, some other bits)
- when resizing, use history
- audit for leftover/unused code
- commands: load-buffer -b number filename
copy-buffer -s src-session -t dst-session
-a src-index -b dst-index
(copy from other session)
- activity/bell should be per-window not per-link? what if it is cur win in
session not being watched?
- tidy up window modes
- problems with force-width when wrapping line in emacs?
- next prev word etc in command prompt; also ^K; also make it support modes
to support vi. is there something could use for this? editline(3)/readline?
- many more info() displays for various things
- vi half page scroll
- backspace should perhaps wrap backwards over newlines which were not moved
down by a newline: screen and the OS X terminal does this but xterm and most
others do not. this might be hard: a flag for each grid line (top bit of size
maybe)? a single flag is insufficient as can't then tell when to /stop/
unwrapping
- document OPTIONS section in man page with description of new option handling
- document update set/setw in man page with -g and -u flags
- more # commands in status-left,right eg #H for hostname. others?
- input.c is too complicated. simplify?
- try change from pass-though model to redraw model (use updated screen
data). maybe too slow though?
- use a better termcap internally instead of screen, perhaps xterm
- tty.c is a bit ugly
- document default-path
- document xterm-keys
- document server-info
- document window options changes
- document clock-mode
- document password/locking commands
- document lock-after-time
- document panes and window splitting: split-window and switch-pane
- a command to display the status line briefly when it is turned off
- neww should support -k
- FAQ "Can I have some examples of cool things I can do with tmux?" -- linkw, more??
17:06 < NicM> tmux new then eg tmux linkw -s0:0
17:06 < simmel> NicM link-window?
17:06 < NicM> yes
17:06 < NicM> create a new session with tmux new
17:07 < NicM> then link your compilation or irc window into it with tmux linkw
17:07 < NicM> i have a set of secondary sessions set up by default with irc linked into them already
17:07 < NicM> so if want to view it in a separate window
17:07 < NicM> i just attach one of them
17:07 < NicM> and keep working in my original session
17:07 < NicM> but you can do it manually as well
17:08 < simmel> How do I unlink then?
17:08 < NicM> tmux unlinkw
17:08 < NicM> or tmux killw
17:08 < simmel> Doesnt that kill the original one too?
17:08 < NicM> no
17:08 < NicM> it unlinks it from the session
17:09 < NicM> or kills it if it is only linked to one
17:09 < NicM> unlinkw only unlinks it
- clone session command
- panes:
swap-panes
close-pane
move-pane (to window)
pane resizing
>2 panes per window
- would be nice if tmux could be the shell
- some sort of extension to command prompt so can do eg
bind m command-prompt 'split "man %%"'
bind r command-prompt 'renamew "%%"'
which then asks for a string, substitutes %% in command and executes it
|