aboutsummaryrefslogtreecommitdiff
path: root/tmux.h
Commit message (Collapse)AuthorAge
...
| | * Add a -a flag to set-option and set-window-option to append to an existingNicholas Marriott2009-08-04
| | | | | | | | | | | | string value, useful for terminal-overrides.
| | * Add a terminal-overrides session option allowing individual terminfo(5) entriesNicholas Marriott2009-08-03
| | | | | | | | | | | | | | | | | | | | | | | | to be overridden. The 88col/256col checks are now moved into the default setting and out of the code. Also remove a couple of old workarounds for xterm and rxvt which are no longer necessary (tmux can emulate them if missing).
| | * There aren't many client message types or code to handle them so get rid of theNicholas Marriott2009-07-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | lookup table and use a switch, merge the tiny handler functions into it, and move the whole lot to client.c. Also change client_msg_dispatch to consume as many messages as possible and move the call to it to the right place so it checks for signals afterwards. Prompted by suggestions from eric@.
| | * Merge pane number into the target specification for pane commands. Instead ofNicholas Marriott2009-07-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | using -p index, a target pane is now addressed with the normal -t window form but suffixed with a period and a pane index, for example :0.2 or mysess:mywin.1. An unadorned number such as -t 1 is tried as a pane index in the current window, if that fails the same rules are followed as for a target window and the current pane in that window used. As a side-effect this now means that swap-pane can swap panes between different windows. Note that this changes the syntax of the break-pane, clear-history, kill-pane, resize-pane, select-pane and swap-pane commands.
| | * Rename struct hdrtype to msgtype which is a better name and can be used evenNicholas Marriott2009-07-29
| | | | | | | | | | | | when struct hdr disappears.
| | * Final pieces of mode key rebinding: bind-key and unbind-key now accept a -tNicholas Marriott2009-07-28
| | | | | | | | | | | | argument to modify a table.
| | * Next step towards customisable mode keys: build each default table of keys intoNicholas Marriott2009-07-28
| | | | | | | | | | | | | | | | | | a named tree on start and use that for lookups. Also add command to string translation tables and modify list-keys to show the the mode key bindings (new -t argument).
| | * If select-layout is not given an argument, repply the last layout used in theNicholas Marriott2009-07-28
| | | | | | | | | | | | window, if any.
| | * Remove an unused entry in the mode keys command enum and renameNicholas Marriott2009-07-27
| | | | | | | | | | | | MODEKEYCOPY_QUIT to _CANCEL to match the others.
| | * Change mode key bindings from big switches into a set of tables. Rather thanNicholas Marriott2009-07-27
| | | | | | | | | | | | | | | | | | | | | lumping them all together, split editing keys from those used in choice/more mode and those for copy/scroll mode. Tidier and clearer, and the first step towards customisable mode keys.
| | * Get rid of empty mode_key_free function.Nicholas Marriott2009-07-27
| | |
| | * Add a key to delete to end of line at the prompt (^K in emacs mode, C/D in vi).Nicholas Marriott2009-07-27
| | | | | | | | | | | | From Kalle Olavi Niemitalo.
| | * Detect backspace by looking at termios VERASE and translate it into \177 (whichNicholas Marriott2009-07-26
| | | | | | | | | | | | | | | | | | matches screen's behaviour if not its termcap/terminfo entry). The terminfo kbs cap is often wrong or missing so it can't be used, and just assuming \177 may be wrong.
| | * Make all messages sent between the client and server fixed size.Nicholas Marriott2009-07-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the first of two changes to make the protocol more resilient and less sensitive to other changes in the code, particularly with commands. The client now packs argv into a buffer and sends it to the server for parsing, rather than doing it itself and sending the parsed command data. As a side-effect this also removes a lot of now-unused command marshalling code. Mixing a server without this change and a client with or vice versa will cause tmux to hang or crash, please ensure that tmux is entirely killed before upgrading.
| | * Permit commands to be bound to key presses without the prefix key first. TheNicholas Marriott2009-07-24
| | | | | | | | | | | | | | | new -n flag to bind-key and unbind-key sets or removes these bindings, and list-key shows them in []s.
| | * Tidy client message return slightly: convert flags into an enum, and mergeNicholas Marriott2009-07-23
| | | | | | | | | | | | error string into struct client_ctx as well.
| | * Both of cmdclient and curclient CAN be NULL - if the command is executed fromNicholas Marriott2009-07-23
| | | | | | | | | | | | | | | the configuration file. In this case, attach-session can't do much, and new-session should just assume -d.
| | * window_add_pane cannot fail, so remove the unused cause argument and don'tNicholas Marriott2009-07-22
| | | | | | | | | | | | bother to check for a NULL return.
| | * tty_write is relatively short and the only function left in tty-write.c so moveNicholas Marriott2009-07-22
| | | | | | | | | | | | it into tty.c.
| | * More tty code tidying: move the saved cursor/region position (from before theNicholas Marriott2009-07-22
| | | | | | | | | | | | screen was updated) out of struct screen and into struct tty_ctx.
| | * log_debug3 no longer exists, change the sole use in GRID_DEBUG to log_debug2.Nicholas Marriott2009-07-22
| | |
| | * enum tty_cmd is only used as an index into the array of command functionNicholas Marriott2009-07-22
| | | | | | | | | | | | | | | pointers, so remove it and use the function pointers directly to represent themselves.
| | * There are relatively few arguments to tty_cmd_* functions now, so tidy them upNicholas Marriott2009-07-22
| | | | | | | | | | | | by using a struct rather than hiding everything with varargs.
| | * tty_cmd_raw is only used once, for raw UTF-8 output, so rename it toNicholas Marriott2009-07-22
| | | | | | | | | | | | tty_cmd_utf8character and eliminate the size argument.
| | * Make some functions which return unused values void (mostly found by lint) andNicholas Marriott2009-07-21
| | | | | | | | | | | | tweak a redundant expression in window_pane_set_mode.
| | * Remove a couple of unused functions and fix a type ("FALLTHOUGH"), found byNicholas Marriott2009-07-21
| | | | | | | | | | | | lint.
| | * __progname is not const, pointed out by deraadt.Nicholas Marriott2009-07-21
| | |
| | * Tidy up keys: use an enum for the key codes, and remove the macros which justNicholas Marriott2009-07-21
| | | | | | | | | | | | wrap flag sets/clears/tests.
| | * Display the number of failed password attempts (if any) when the server isNicholas Marriott2009-07-20
| | | | | | | | | | | | locked. From Tom Doherty.
| | * Improved layout code.Nicholas Marriott2009-07-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Each window now has a tree of layout cells associated with it. In this tree, each node is either a horizontal or vertical cell containing a list of other cells running from left-to-right or top-to-bottom, or a leaf cell which is associated with a pane. The major functional changes are: - panes may now be split arbitrarily both horizontally (splitw -h, C-b %) and vertically (splitw -v, C-b "); - panes may be resized both horizontally and vertically (resizep -L/-R/-U/-D, bound to C-b left/right/up/down and C-b M-left/right/up/down); - layouts are now applied and then may be modified by resizing or splitting panes, rather than being fixed and reapplied when the window is resized or panes are added; - manual-vertical layout is no longer necessary, and active-only layout is gone (but may return in future); - the main-pane layouts now reduce the size of the main pane to fit all panes if possible. Thanks to all who tested.
| | * Add three new session options: visual-activity, visual-bell, visual-content. IfNicholas Marriott2009-07-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | these are enabled (and the monitor-activity, bell-actio and monitor-content options are configurated appropriately), when activity, a bell, or content is detected, a message is shown. Also tidy up the bell/activity/content code in server.c slightly and fix a couple of errors.
| | * Make it so using kill-pane to destroy the last pane in a window destroys theNicholas Marriott2009-07-17
| | | | | | | | | | | | window instead of being an error.
| | * - New command display-message (alias display) to display a message in theNicholas Marriott2009-07-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | status line (bound to "i" and displays the current window and time by default). The same substitutions are applied as for status-left/right. - Add support for including the window index (#I), pane index (#P) and window name (#W) in the message, and status-left or status-right. - Bump protocol version. From Tiago Cunha, thanks!
| | * Tidy up new-session and attach-session and change them to work from insideNicholas Marriott2009-07-17
| | | | | | | | | | | | | | | | | | tmux, switching the current client to the new or requested session. Written with Josh Elsasser.
| | * A similar for fix for window_choose: don't rely on the callback always beingNicholas Marriott2009-07-17
| | | | | | | | | | | | | | | called to free data, have a separate free callback and call it from the mode cleanup code.
| | * Memory could be leaked if a second prompt or message appeared while another wasNicholas Marriott2009-07-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | still present, so add a separate prompt free callback and make the _clear function responsible for calling it if necessary (rather than the individual prompt callbacks). Also make both messages and prompts clear any existing when a new is set. In addition, the screen could be modified while the prompt is there, restore the redraw-entire-screen behaviour on prompt clear; add a comment as a reminder.
| | * Make status_message_set a variadic printf-like function. No functional change -Nicholas Marriott2009-07-15
| | | | | | | | | | | | helpful for a couple of things coming soon.
| | * Having to update NSETOPTION/NSETWINDOWOPTION when adding new options is a bitNicholas Marriott2009-07-15
| | | | | | | | | | | | | | | | | | annoying and it is only use for iterating, so use a sentinel to mark the end of each array instead. Different fix for a problem pointed out by Kalle Olavi Niemitalo.
| | * Add main-pane-height to the options list (was missed before).Nicholas Marriott2009-07-14
| | |
| | * Instead of faking up a status line in status_redraw, use the same code toNicholas Marriott2009-07-14
| | | | | | | | | | | | | | | | | | redraw it as to draw the entire screen, just skip all lines but the last. This makes horizontal split redraw properly when the status line is off.
| | * Get rid of the PANE_HIDDEN flag in favour of a function, and moving theNicholas Marriott2009-07-14
| | | | | | | | | | | | | | | | | | | | | | | | decision for whether or not a pane should be drawn out of the layout code and into the redraw code. This is needed for the new layout design, getting it in now to make that easier to work on.
| | * Having fixed flags for single-character getopt options is a bit hard toNicholas Marriott2009-07-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | maintain and is only going to get worse as more are used. So instead, add a new uint64_t member to cmd_entry which is a bitmask of upper and lowercase options accepted by the command. This means new single character options can be used without the need to add it explicitly to the list.
| | * Tidy up and improve target (-t) argument parsing:Nicholas Marriott2009-07-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - move the code back into cmd.c and merge with the existing functions where possible; - accept "-tttyp0" as well as "-t/dev/ttyp0" for clients; - when looking up session names, try an exact match first, and if that fails look for it as an fnmatch pattern and then as the start of a name - if more that one session matches an error is given; so if there is one session called "mysession", -tmysession, -tmysess, -tmysess* are equivalent but if there is also "mysession2", the last two are errors; - similarly for windows, if the argument is not a valid index or exact window name match, try it against the window names as an fnmatch pattern and a prefix.
| | * Support "alternate screen" mode (terminfo smcup/rmcup) typically used by fullNicholas Marriott2009-07-13
| | | | | | | | | | | | | | | | | | | | | screen interactive programs to preserve the screen contents. When activated, it saves a copy of the visible grid and disables scrolling into and resizing out of the history; when deactivated the visible data is restored and the history reenabled.
| | * Missed this declaration in key bindings change. Whoops.Nicholas Marriott2009-07-12
| | |
| | * Add a "back to indentation" key in copy mode to move the cursor to the firstNicholas Marriott2009-07-12
| | | | | | | | | | | | | | | non-whitespace character. ^ with vi and M-m with emacs key bindings. Another from Kalle Olavi Niemitalo, thanks.
| | * If it exist, load a system-wide configuration file /etc/tmux.conf before anyNicholas Marriott2009-07-12
| | | | | | | | | | | | user-specified one.
| | * When pasting, translate \n into \r. This matches xterm and putty's behaviour,Nicholas Marriott2009-07-11
| | | | | | | | | | | | | | | | | | | | | and makes emacs happy when pasting into some modes. A new -r (raw) flag to paste-buffer pastes without the translation. From Kalle Olavi Niemitalo, thanks!
| | * Add a default-terminal option to set the starting value of $TERM in newNicholas Marriott2009-07-10
| | | | | | | | | | | | | | | | | | | | | windows. This is "screen" by default and must be either that or something closely related. This does makes it easier to customise it if necessary.
| | * New command, if-shell (alias if). Executes the tmux command in the secondNicholas Marriott2009-07-09
| | | | | | | | | | | | | | | | | | | | | | | | argument if the shell command in the first succeeds, for example: if "[ -e ~/.tmux.conf.alt ]" "source .tmux.conf.alt" Written by Tiago Cunha, many thanks.