aboutsummaryrefslogtreecommitdiff
path: root/tmux.h
Commit message (Collapse)AuthorAge
...
| | * New lock-client and lock-session commands to lock an individual client or allNicholas Marriott2009-09-24
| | | | | | | | | | | | clients attached to a session respectively.
| | * Remove PROMPT_HIDDEN code which is now unused.Nicholas Marriott2009-09-23
| | |
| | * Support -c like sh(1) to execute a command, useful when tmux is a loginNicholas Marriott2009-09-23
| | | | | | | | | | | | | | | | | | | | | shell. Suggested by halex@. This includes another protocol version increase (the last for now) so again restart the tmux server before upgrading.
| | * Remove the internal tmux locking and instead detach each client and run theNicholas Marriott2009-09-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | command specified by a new option "lock-command" (by default "lock -np") in each client. This means each terminal has to be unlocked individually but simplifies the code and allows the system password to be used to unlock. Note that the set-password command is gone, so it will need to be removed from configuration files, and the -U command line flag has been removed. This is the third protocol version change so again it is best to stop the tmux server before upgrading.
| | * Trim some code by moving the ioctl(TIOCGWINSZ) after SIGWINCH from the clientNicholas Marriott2009-09-23
| | | | | | | | | | | | | | | | | | | | | into the server. This is another (the second of four) protocol version changes coming this morning, so again the server should be killed before upgrading.
| | * Don't attempt to open() the tty path, rely on the client sending its stdin fdNicholas Marriott2009-09-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | with imsg and fatal if it doesn't, then set the FD_CLOEXEC flag in tty_init instead of tty_open to prevent them leaking into child processes if any are created between the two calls. This bumps the protocol version, so the tmux server should be killed before upgrading.
| | * Permit multiple prefix keys to be defined, separated by commas, for example:Nicholas Marriott2009-09-22
| | | | | | | | | | | | | | | | | | | | | set -g prefix ^a,^b Any key in the list acts as the prefix. The send-prefix command always sends the first key in the list.
| | * Use option print function for info messages as well.Nicholas Marriott2009-09-21
| | |
| | * Move common code from show-options and show-window-options into a function.Nicholas Marriott2009-09-21
| | |
| | * Drop tiny union from option struct.Nicholas Marriott2009-09-21
| | |
| | * Key options were implemented as a number so these struct members are unused.Nicholas Marriott2009-09-21
| | |
| | * run-shell command to run a shell command without opening a window, sendingNicholas Marriott2009-09-20
| | | | | | | | | | | | stdout to output mode.
| | * Move some common and untidy code for window link/unlink into generic functionsNicholas Marriott2009-09-20
| | | | | | | | | | | | instead of duplicating it in move/link window..
| | * Rather than constructing an entire termios struct from ttydefaults.h, just letNicholas Marriott2009-09-16
| | | | | | | | | | | | | | | forkpty do it and then alter the bits that should be changed after fork. A little neater and more portable.
| | * Nuke unused server_client_index function, pointed out by martynas@.Nicholas Marriott2009-09-14
| | |
| | * Tidy some common code for destroying sessions into a new function.Nicholas Marriott2009-09-12
| | |
| | * Permit options such as status-bg to be configured using the entire 256 colourNicholas Marriott2009-09-10
| | | | | | | | | | | | palette by setting "colour0" to "colour255".
| | * Reference count clients and sessions rather than relying on a saved index forNicholas Marriott2009-09-07
| | | | | | | | | | | | cmd-choose-*.
| | * Give each paste buffer a size member instead of requiring them to beNicholas Marriott2009-09-07
| | | | | | | | | | | | zero-terminated.
| | * Permit embedded colour and attributes in status-left and status-right using newNicholas Marriott2009-09-07
| | | | | | | | | | | | #[] special characters, for example #[fg=red,bg=blue,blink].
| | * That was the wrong fix. MSG_ERROR should set the error and the client shouldNicholas Marriott2009-09-02
| | | | | | | | | | | | | | | | | | use the error and exit on MSG_EXIT (it was being handled in the default case). Undo the last change, move the errstr check into the MSG_EXIT case, and add a comment.
| | * Set exittype for error exit as well as the error string.Nicholas Marriott2009-09-02
| | |
| | * Accept -l to make it easier for people who use tmux as a login shell to useNicholas Marriott2009-09-02
| | | | | | | | | | | | $SHELL. Originally from martynas@, tweaked by me.
| | * When incorrect passwords are entered, behave similarly to login(1) and backoffNicholas Marriott2009-09-02
| | | | | | | | | | | | for a bit. Based on a diff from martynas@.
| | * Add a transpose-chars command in edit mode (C-t in emacs mode only). From KalleNicholas Marriott2009-09-02
| | | | | | | | | | | | Olavi Niemitalo.
| | * When using tmux as a login shell, there is currently no way to specify a shellNicholas Marriott2009-09-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to be used as a login shell inside tmux, so add a default-shell session option. This sets the shell invoked as a login shell when the default-command option is empty. The default option value is whichever of $SHELL, getpwuid(getuid())'s pw_shell or /bin/sh is valid first. Based on a diff from martynas@, changed by me to be a session option rather than a window option.
| | * Add a new display-panes command, with two options (display-panes-colour andNicholas Marriott2009-08-31
| | | | | | | | | | | | | | | display-panes-time), which displays a visual indication of the number of each pane.
| | * Add a choose-client command and extend choose-{session,window} to accept aNicholas Marriott2009-08-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | template. After a choice is made, %% (or %1) in the template is replaced by the name of the session, window or client suitable for -t and the result executed as a command. So, for example, "choose-window "killw -t '%%'"" will kill the selected window. The defaults if no template is given are (as now) select-window for choose-window, switch-client for choose-session, and detach-client for choose-client (now bound to D).
| | * gcc2 doesn't understand attributes on function pointers.Nicholas Marriott2009-08-24
| | |
| | * When using source-file, run the commands in the context of the source-fileNicholas Marriott2009-08-23
| | | | | | | | | | | | | | | command rather than with no context. This makes things like attach work from a file.
| | * The cursession member in struct cmd_ctx is always either curclient->session orNicholas Marriott2009-08-23
| | | | | | | | | | | | NULL when curclient is also NULL, so just eliminate it.
| | * Extend command-prompt with a -p option which is a comma-separated list of oneNicholas Marriott2009-08-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | or more prompts to present in order. The responses to the prompt are replaced in the template string: %% are replaced in order, so the first prompt replaces the first %%, the second replaces the second, and so on. In addition, %1 up to %9 are replaced with the responses to the first the ninth prompts The default template is "%1" so the response to the first prompt is processed as a command. Note that this changes the behaviour for %% so if there is only one prompt, only the first %% will be replaced. Templates such as "neww -n '%%' 'ssh %%'" should be changed to "neww -n '%1' 'ssh %1'". From Tiago Cunha.
| | * Instead of just checking for an empty buffer, which may not be the case ifNicholas Marriott2009-08-18
| | | | | | | | | | | | | | | | | | | | | there is unconsumed data, save the previous size and use it instead. This means that activity monitoring should work in this (unlikely) event. Also remove a debugging statement that no longer seems necessary.
| | * Tag a few missed printf-like functions and fix a missing "%s".Nicholas Marriott2009-08-18
| | |
| | * Add a "delete line" key when editing in the status line or the search up/downNicholas Marriott2009-08-18
| | | | | | | | | | | | prompt. C-u with emacs keys, d with vi.
| | * Add (naive) searching and goto line in copy mode. Searching is C-r and C-s withNicholas Marriott2009-08-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | emacs keys, / and ? with vi; n repeats the search again with either key set. All searching wraps the top/bottom. Goto line is g for both emacs and vi. The search prompts don't have full line editing, just simple append and delete characters. Also sort the mode keys list in tmux.1.
| | * vi(1)-style half page scroll in copy and scroll modes. Move the vi full pageNicholas Marriott2009-08-13
| | | | | | | | | | | | | | | | | | | | | scroll key to C-b instead of C-u and use C-u/C-d for half page scrolling with vi keys. In emacs mode, half page scrolling is bound to M-Up and M-Down. Suggested by merdely (about a year ago :-)).
| | * Add a base-index session option to specify the first index checked when lookingNicholas Marriott2009-08-13
| | | | | | | | | | | | for an index for a new window.
| | * When creating a new session from the command-line where there is an externalNicholas Marriott2009-08-13
| | | | | | | | | | | | | | | terminal, copy the termios(4) special characters and use them for new windows created in the new session. Suggested by Theo.
| | * A tty context must not be modified as it may be reused to update multipleNicholas Marriott2009-08-12
| | | | | | | | | | | | | | | | | | | | | clients, so make it const. Also fix an actual modification which caused a hang when a session was connected to multiple terminals at least one of which was missing ich/ich1.
| | * Have the client pass its stdin fd to the server when identifying itself andNicholas Marriott2009-08-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | have the server use that rather than reopening the tty. If the fd isn't given, use the old behaviour (so no need for a version change). This allows tmux to be used as the shell, so also change so that when working out the command to execute if default-command is empty (the default), tmux will try not execute itself.
| | * Add a TTY_OPENED flag and tidy a little.Nicholas Marriott2009-08-11
| | |
| | * Drop the no_stop argument to tty_close and tty_free in favour of a flag in theNicholas Marriott2009-08-11
| | | | | | | | | | | | tty struct.
| | * Switch tmux to use imsg. This is the last major change to make theNicholas Marriott2009-08-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | client-server protocol more resilient and make the protocol versioning work properly. In future, the only things requiring a protocol version bump will be changes in the message structs, and (when both client and server have this change) mixing different versions should nicely report an error message. As a side effect this also makes the code tidier, fixes a problem with the way errors reported during server startup were handled, and supports fd passing (which will be used in future). Looked over by eric@, thanks. Please note that mixing a client with this change with an older server or vice versa may cause tmux to crash or hang - tmux should be completely exited before upgrading.
| | * Add flags for 1+2 and 2 arguments to the generic target code, use it forNicholas Marriott2009-08-11
| | | | | | | | | | | | | | | cmd-set-environment/option/window-option and remove the generic options parsing.
| | * Infrastructure and commands to manage the environment for processes startedNicholas Marriott2009-08-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | within tmux. There is a global environment, copied from the external environment when the server is started and each sesssion has an (initially empty) session environment which overrides it. New commands set-environment and show-environment manipulate or display the environments. A new session option, update-environment, is a space-separated list of variables which are updated from the external environment into the session environment every time a new session is created - the default is DISPLAY.
| | * Add a flags member to the grid_line struct and use it to differentiate linesNicholas Marriott2009-08-08
| | | | | | | | | | | | | | | wrapped at the screen edge from those terminated by a newline. Then use this when copying to combine wrapped lines together into one.
| | * Change the way the grid is stored, previously it was:Nicholas Marriott2009-08-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - a two-dimensional array of cells; - a two-dimensional array of utf8 data; - an array of line lengths. Now it is a single array of a new struct grid_line each of which represents a line and containts the length and an array of cells and an array of utf8 data. This will make it easier to add additional per-line members, such as flags.
| | * If there is an error in the configuration file, don't just exit(1) as this canNicholas Marriott2009-08-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cause the client to hang. Instead, send the error message, then mark the client as bad and start a normal shutdown so the server exits once the error is written. This also allows some code duplicating daemon(3) to be trimmed and logging to begin earlier. Prompted by Theo noticing the behaviour on error wasn't documented.
| | * Using the alternative screen (smcup/rmcup) should also preserve the currentNicholas Marriott2009-08-07
| | | | | | | | | | | | | | | | | | colours and attributes. Found thanks to a report from Taylor Venable. While here also nuke a couple of extra blank lines.