aboutsummaryrefslogtreecommitdiff
path: root/tmux.h
Commit message (Collapse)AuthorAge
...
| | * Check if the index is in use and fail before creating the child process,Nicholas Marriott2011-01-25
| | | | | | | | | | | | rather than leaving a stray child on failure.
| | * Set $TMUX without the session when background jobs are run.Nicholas Marriott2011-01-23
| | |
| | * Mouse highlight mode (1001) requires a program to cooperate soNicholas Marriott2011-01-15
| | | | | | | | | | | | supporting it through tmux is not as easy as this, remove it for now.
| | * Move all calls to fcntl(...O_NONBLOCK) into a function and clear theNicholas Marriott2011-01-08
| | | | | | | | | | | | | | | flag on the stdio file descriptors before closing them (fixes things like "tmux ls && cat").
| | * Clean up and simplify tmux command argument parsing.Nicholas Marriott2011-01-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Originally, tmux commands were parsed in the client process into a struct with the command data which was then serialised and sent to the server to be executed. The parsing was later moved into the server (an argv was sent from the client), but the parse step and intermediate struct was kept. This change removes that struct and the separate parse step. Argument parsing and printing is now common to all commands (in arguments.c) with each command left with just an optional check function (to validate the arguments at parse time), the exec function and a function to set up any key bindings (renamed from the old init function). This is overall more simple and consistent. There should be no changes to any commands behaviour or syntax although as this touches every command please watch for any unexpected changes.
| | * Support for UTF-8 mouse input (\033[1005h). This was added in xterm 262Nicholas Marriott2011-01-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and supports larger terminals than the older way. If the new mouse-utf8 option is on, UTF-8 mouse input is enabled for all UTF-8 terminals. The option defaults to on if LANG etc are set in the same manner as the utf8 option. With help and based on code from hsim at gmx.li.
| | * Move the user-visible parts of all options (names, types, limit, defaultNicholas Marriott2011-01-01
| | | | | | | | | | | | | | | | | | values) together into one set of tables in options-table.c. Also clean up and simplify cmd-set-options.c and move a common print function into option-table.c.
| | * Sprinkle a little more const.Nicholas Marriott2011-01-01
| | |
| | * Another table that should be const.Nicholas Marriott2011-01-01
| | |
| | * Don't reset the activity timer for unattached sessions every second,Nicholas Marriott2011-01-01
| | | | | | | | | | | | | | | | | | | | | this screws up the choice of most-recently-used. Instead, break the time update into a little function and do it when the session is attached. Pointed out by joshe@.
| | * Remove some unused defines.Nicholas Marriott2010-12-30
| | |
| | * Change from a per-session stack of buffers to one global stack which isNicholas Marriott2010-12-30
| | | | | | | | | | | | | | | | | | | | | much more convenient and also simplifies lot of code. This renders copy-buffer useless and makes buffer-limit now a server option. By Tiago Cunha.
| | * Add a function to create window flags rather than doing the same thingNicholas Marriott2010-12-30
| | | | | | | | | | | | in two places. From Thomas Adam.
| | * Support all four of the xterm mouse modes. Based on a diff from hsim atNicholas Marriott2010-12-29
| | | | | | | | | | | | gmx.li.
| | * Store sessions in an RB tree by name rather than a list, this is tidierNicholas Marriott2010-12-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | and allows them to easily be shown sorted in various lists (list-sessions/choose-sessions). Keep a session index which is used in a couple of places internally but make it an ever-increasing number rather than filling in gaps with new sessions.
| | * Dead sessions are never on the active sessions list, so the SESSION_DEADNicholas Marriott2010-12-20
| | | | | | | | | | | | flag is effectively unused. Remove it.
| | * Use pointer rather than index for the client's last session.Nicholas Marriott2010-12-20
| | |
| | * Unify the way sessions are used by callbacks - store the address and useNicholas Marriott2010-12-20
| | | | | | | | | | | | | | | the reference count, then check it is still on the global sessions list in the callback.
| | * Track the last session for a client and add a flag to switch-client andNicholas Marriott2010-12-11
| | | | | | | | | | | | a key binding (L) to move a client back to its last session.
| | * Make the prompt history global for all clients which is much more useful ↵Nicholas Marriott2010-12-11
| | | | | | | | | | | | than per-client history.
| | * Add an option to alert (monitor) for silence (lack of activity) in aNicholas Marriott2010-12-06
| | | | | | | | | | | | window. From Thomas Adam.
| | * There is somewhere that WINDOW_HIDDEN is getting set when it shouldn'tNicholas Marriott2010-11-22
| | | | | | | | | | | | | | | | | | | | | | | | be and I can't find it, but the flag itself is a useless optimisation that only applies to automatic-resize windows, so just dispose of it entirely. Fixes problems reported by Nicholas Riley.
| | * Declaration in header should be extern.Nicholas Marriott2010-11-11
| | |
| | * We now send argv to the server after parsing it in the client to get theNicholas Marriott2010-10-29
| | | | | | | | | | | | | | | command, so the client should not modify it. Instead, take a copy. Fixes parsing command lists, reported by mcbride@.
| | * Add a last-pane command (bound to ; by default). Requested ages ago byNicholas Marriott2010-10-23
| | | | | | | | | | | | somebody whose name I have forgotten.
| | * Merge the before and after attach client code into one in client.cNicholas Marriott2010-10-18
| | | | | | | | | | | | (instead of two in tmux.c and client.c).
| | * Nuke a leftover RB tree declaration spotted by blambert.Nicholas Marriott2010-09-28
| | |
| | * Two new options:Nicholas Marriott2010-09-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - server option "exit-unattached" makes the server exit when no clients are attached, even if sessions are present; - session option "destroy-unattached" destroys a session once no clients are attached to it. These are useful for preventing tmux remaining in the background where it is undesirable and when using tmux as a login shell to keep a limit on new sessions.
| | * Use UTF-8 line drawing characters on UTF-8 terminals. Fixes some stupidNicholas Marriott2010-09-11
| | | | | | | | | | | | | | | | | | | | | | | | terminals (I'm looking at you, putty) which disable the vt100 ACS mode switching sequences in UTF-8 mode. Also on terminals without ACS at all, use ASCII equivalents where obvious.
| | * Add -n and -p flags to switch-client to move to the next and previousNicholas Marriott2010-09-08
| | | | | | | | | | | | | | | | | | | | | session (yes, it doesn't match window/pane, but so what, nor does switch-client). Based on a diff long ago from "edsouza".
| | * Do not call event_del() for signals after fork(), just use sigaction()Nicholas Marriott2010-08-19
| | | | | | | | | | | | | | | directly instead - calling libevent functions after fork() w/o event_reinit() is a bad idea, even if in this case it was harmless.
| | * Change the way backoff works. Instead of stopping reading from the ptyNicholas Marriott2010-08-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | when the client tty backs up too much, just stop updating the tty and only update the internal screen. Then when the tty recovers, force a redraw. This prevents a dodgy client from causing other clients to go into backoff while still allowing tmux to be responsive (locally) when seeing lots of output.
| | * When changing so that the client passes its stdout and stderr as well asNicholas Marriott2010-07-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | stdin up to the server, I forgot one essential point - the tmux server could now be both the producer and consumer. This happens when tmux is run inside tmux, as well as when piping tmux commands together. So, using stdio(3) was a bad idea - if sufficient data was written, this could block in write(2). When that happened and the server was both producer and consumer, it deadlocks. Change to use libevent bufferevents for the client stdin, stdout and stderr instead. This is trivial enough for output but requires a callback mechanism to trigger when stdin is finished. This relies on the underlying polling mechanism for libevent to work with whatever devices to which the user could redirect stdin, stdout or stderr, hence the change to use poll(2) over kqueue(2) for tmux.
| | * Make pane/window wrapping more logical (so with 10 windows, +10 fromNicholas Marriott2010-07-14
| | | | | | | | | | | | window 5 stays in the same place), and tidy the code. From Tiago Cunha.
| | * Return the command client return code with MSG_EXIT now that MSG_ERROR andNicholas Marriott2010-07-11
| | | | | | | | | | | | | | | | | | | | | MSG_PRINT are unused. New clients should be compatible with old tmux servers but vice versa may print an error.
| | * replace some magic mouse constants with defines for clarity. ok nicmTed Unangst2010-06-29
| | |
| | * Custom layouts. list-windows command displays the layout as a string (such asNicholas Marriott2010-06-29
| | | | | | | | | | | | | | | "bb62,159x48,0,0{79x48,0,0,79x48,80,0}") and it can be applied to another window (with the same number of panes or fewer) using select-layout.
| | * Send all three of stdin, stdout, stderr from the client to the server, so thatNicholas Marriott2010-06-28
| | | | | | | | | | | | | | | | | | | | | | | | commands can directly make use of them. This means that load-buffer and save-buffer can have "-" as the file to read from stdin or write to stdout. This is a protocol version bump so the tmux server will need to be restarted after upgrade (or an older client used).
| | * Store the current working directory in the session, change the default-pathNicholas Marriott2010-06-27
| | | | | | | | | | | | | | | option to default to empty and make that mean that the stored session CWD is used.
| | * Setting the cmdlist pointer in the bind-key to NULL to prevent it being freedNicholas Marriott2010-06-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | after the command is executing is bogus because it may still be needed if the same command is going to be executed again (for example if you "bind-key a bind-key b ..."). Making a copy is hard, so instead add a reference count to the cmd_list. While here, also print bind-key -n and the rest of the flags properly. Fixes problem reported by mcbride@.
| | * Add a choose-buffer command for easier use of the paste buffer stack.Nicholas Marriott2010-06-21
| | |
| | * Extend the -t:+ and -t:- window targets for next and previous window toNicholas Marriott2010-06-21
| | | | | | | | | | | | accept an offset such as -t:+2. From Tiago Cunha.
| | * Having a list of winlinks->alerts for each session is stupid, just storeNicholas Marriott2010-06-21
| | | | | | | | | | | | the alert flags directly in the winlink itself.
| | * Use a macro-based mask for obtaining a key or modifier-set from theNicholas Marriott2010-06-06
| | | | | | | | | | | | combination. Display C-@, etc, as C-Space, in list-keys. By Micah Cowan.
| | * Fix problems with window sizing seen by Raghavendra D Prabhu whenNicholas Marriott2010-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | starting tmux from .xinitrc. One of the very few things the server relies on the client for now is to pass through a message on SIGWINCH, but there is a condition where potentially a SIGWINCH may be lost during the transition from unattached (main.c) to attached (client.c). So trigger a size change immediately after the client installs its SIGWINCH handler. Also, when the terminal is resized, reset the scroll region and cursor position. Previously, we were clearing our saved idea of these, but in fact some terminals do not reset them on resize, so this caused problems during redraw. While here make a resize to the same size not cause a redraw and rename the tmux.out output log file to include the tmux PID.
| | * When the mode-mouse option is on, support dragging to make a selectionNicholas Marriott2010-05-31
| | | | | | | | | | | | | | | | | | | | | | | | in copy mode. Also support the scroll wheel, although xterm strangely does not ignore it in application mouse mode, causing redraw artifacts when scrolling up (other terminals appear to be better behaved).
| | * Move imsg into libutil and add a man page.Nicholas Marriott2010-05-26
| | | | | | | | | | | | | | | | | | | | | | | | Minor bump for libutil. Previous versions of this diff and man page looked at by various people. "you should just commit" deraadt
| | * Pass in the session, rather than the client, to window modes' key()Nicholas Marriott2010-05-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | function. We were only ever using the client to find the session anyway. This allows send-key to work properly for manipulating copy mode from outside tmux. From Micah Cowan.
| | * Identical behaviour to select-prompt can now be obtained withNicholas Marriott2010-05-05
| | | | | | | | | | | | | | | command-prompt, so remove select-prompt and change ' to be bound to command-prompt -p index "select-window -t :%%".
| | * Put this back in with the initialisation in the right order.Nicholas Marriott2010-05-04
| | |