mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-03 16:46:18 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			98 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
- useful env vars like WINDOW?
 | 
						|
- better checking/emulation for missing term requirements
 | 
						|
- alt charset, borders etc (terminfo(5)/Line Graphics)
 | 
						|
- new window command prompt
 | 
						|
- mouse handling and some other bits elinks needs
 | 
						|
- 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
 | 
						|
- decide about customised status line
 | 
						|
- could use bsearch all over the place or get rid of smaller tables (clientmsg)
 | 
						|
- better errors when creating new windows/sessions (how?)
 | 
						|
- commands should have to care less about CMD_KEY
 | 
						|
- session with CMD_NOSESSION should be an error
 | 
						|
- each command should have a print op as well for list keys
 | 
						|
- Implicitly add exec to the commands for new windows (switch to disable it)
 | 
						|
- nested sessions, ie session as window - moving to it moves into session
 | 
						|
  (remembering parent)
 | 
						|
- Nested sessions over the network, plug-in another tmux as a window/subsession
 | 
						|
- 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
 | 
						|
- save/restore (DECSC/DECRC) are ugly. maybe a struct screen_attr and memcpy
 | 
						|
- force maximum terminal size (centred?)
 | 
						|
- per-session toolbar state, other options
 | 
						|
- force-default option: assume terminal supports default colours even if AX
 | 
						|
  is missing (like, eg, xterm-color in an aterm)
 | 
						|
- refer to windows by name etc (duplicates? fnmatch?)
 | 
						|
- commands:
 | 
						|
	start server
 | 
						|
	kill server
 | 
						|
	show-options command
 | 
						|
	command to run something without a window at all?
 | 
						|
	command to insert a key (or other data...) into a window (send-key)
 | 
						|
		should paste-buffer become send-buffer.....
 | 
						|
	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?
 | 
						|
	paste buffer etc shouldn't be limited to keys
 | 
						|
	buffer manip: clear, view etc
 | 
						|
- function groups, bind-key ^W { select-window 0; send-key ^W } etc
 | 
						|
- allow fnmatch for -c, so that you can, eg, detach all clients
 | 
						|
- session specification is all over the place. some things use -s before cmd,
 | 
						|
  some -s after, some no -s, there are various uses of -n. the differences are
 | 
						|
  sort of logical, but confusing. needs rethought
 | 
						|
- XXX should -i for win idx be before cmd too??
 | 
						|
- bind non prefix keys
 | 
						|
- stuff like rename would be nice to be able to do in-client like screen, if
 | 
						|
  it could be implemented in a non-icky way
 | 
						|
- there is to much redrawing. use flags?
 | 
						|
- command mode (! + type tmux command)
 | 
						|
- 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
 | 
						|
- screen_draw_* moved out/renamed (accept TTY_*?)
 | 
						|
- get rid of stderr/stdout hacks in log.c
 | 
						|
- chmod +x socket when any client is attached
 | 
						|
- split clients into three RB trees by fd: attached/unattached/dead?
 | 
						|
  or tailqs? what would be fastest per-char?
 | 
						|
- everything should write via a screen and modes should be done by switching
 | 
						|
  screen out
 | 
						|
 | 
						|
-- For 0.2 --------------------------------------------------------------------
 | 
						|
- window splitting?
 | 
						|
- restore term cap checks
 | 
						|
- anything which uses cmd_{send,recv}_string will break if the string is
 | 
						|
  split. string length should be part of the command size
 | 
						|
- echo \\033[35\;46m\\033[2J last line quirk (with C-b r)
 | 
						|
- quick intro section (tmux new/attach/detach) etc
 | 
						|
- is ACS the right way round??
 | 
						|
 | 
						|
--------
 | 
						|
kmous -- \E[M
 | 
						|
 | 
						|
mouse init:     putp("\033[?1000h");
 | 
						|
mouse deinit:   putp("\033[?1000l");
 | 
						|
 | 
						|
\e[M CbCxCy
 | 
						|
         * On button press or release, xterm sends ESC [ M CbCxCy.
 | 
						|
         * The low two bits of Cb encode button information: 0=MB1
 | 
						|
         * pressed, 1=MB2 pressed, 2=MB3 pressed, 3=release.  The
 | 
						|
         * upper bits encode what modifiers were down when the
 | 
						|
         * button was pressed and are added together.  4=Shift,
 | 
						|
         * 8=Meta, 16=Control.  Cx and Cy are the x and y coordinates
 | 
						|
         * of the mouse event.  The upper left corner is (1,1).
 | 
						|
 | 
						|
 | 
						|
       get_mouse                 getm     Gm   Curses should get
 | 
						|
                                               button events
 | 
						|
       key_mouse                 kmous    Km   Mouse event has
 | 
						|
                                               occurred
 | 
						|
       mouse_info                minfo    Mi   Mouse status
 | 
						|
                                               information
 |