aboutsummaryrefslogtreecommitdiff
path: root/tmux.h
Commit message (Collapse)AuthorAge
...
* Put all jobs on a global all_jobs list and use that in server.c instead ofNicholas Marriott2009-10-10
| | | | running through all the clients.
* Split list-panes off from list-windows.Nicholas Marriott2009-10-10
|
* Rather than running status-left, status-right and window title #() with popenNicholas Marriott2009-10-10
| | | | | | | | | | | | | | | | | immediately every redraw, queue them up and run them in the background, starting each once every status-interval. The actual status line uses the output from the last run. This brings several advantages: - tmux itself may be called from inside #() without causing the server to hang; - likewise, sleep or similar doesn't cause the server to block; - commands aren't run excessively often when redrawing; - commands shared by status-left and status-right, or used multiple times, will only be run once. run-shell and if-shell still use system()/popen() but will be changed over to use this too later.
* New option, mouse-select-pane. If on, the mouse may be used to select theNicholas Marriott2009-10-10
| | | | | | current pane. Suggested by sthen@ and also by someone else ages ago who I have forgotten.
* Add "grouped sessions" which have independent name, options, current window andNicholas Marriott2009-10-10
| | | | | | | | so on but where the linked windows are synchronized (ie creating, killing windows and so on are mirrored between the sessions). A grouped session may be created by passing -t to new-session. Had this around for a while, tested by a couple of people.
* Support for individual session idle time locking. May be enabled by turning offNicholas Marriott2009-10-10
| | | | | | | | | | | | | the lock-server option (it is on by default). When this is off, each session locks when it has been idle for the lock-after-time setting. When on, the entire server locks when ALL sessions have been idle for their individual lock-after-time settings. This replaces one global-only option (lock-after-time) with another (lock-server), but the default behaviour is usually preferable so there don't seem to be many alternatives. Diff/idea largely from Thomas Adam, tweaked by me.
* The UTF-8 detection idea doesn't work and I am reasonably happy with theNicholas Marriott2009-10-09
| | | | current methods, so remove the (already #ifdef 0'd) code.
* Remove scroll mode which is now redundant, copy mode should be used instead.Nicholas Marriott2009-10-06
| | | | The = key binding now does nothing.
* Make C-Up and C-Down in copy mode scroll the screen up and down one lineNicholas Marriott2009-10-06
| | | | | without moving the cursor, like Up and Down in scroll mode (which will shortly disappear).
* If no target client is specified to commands which accept one, try to guess theNicholas Marriott2009-10-05
| | | | | | current client, in a similar manner to how sessions already work: if the current session can be established and has only one client, use that; otherwise use the most recently created client.
* 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.