aboutsummaryrefslogtreecommitdiff
path: root/window.c
Commit message (Collapse)AuthorAge
...
| * Add an option to alert (monitor) for silence (lack of activity) in aNicholas Marriott2010-12-06
| | | | | | | | window. From Thomas Adam.
| * Don't allow last and active window to become the same - a very bad moveNicholas Marriott2010-11-14
| | | | | | | | when the active window is closed and freed. Reported by sthen@.
| * Add a last-pane command (bound to ; by default). Requested ages ago byNicholas Marriott2010-10-23
| | | | | | | | somebody whose name I have forgotten.
| * When removing a pane, don't change the active pane unless the activeNicholas Marriott2010-10-23
| | | | | | | | pane is actually the one being removed.
| * Trying to set FD_CLOEXEC on every fd is a lost cause, just useNicholas Marriott2010-10-16
| | | | | | | | closefrom() before exec.
| * When destroying a pane, reset any mode (which reenables paneNicholas Marriott2010-08-25
| | | | | | | | bufferevent) before freeing the bufferevent.
| * 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.
| * 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.
| * 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.
| * 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.
| * Put this back in with the initialisation in the right order.Nicholas Marriott2010-05-04
| |
| * Revert last change, it appears to be broken somehow.Nicholas Marriott2010-05-04
| |
| * Make signal handler setup/teardown two common functions instead of six,Nicholas Marriott2010-05-03
| | | | | | | | | | and reset SIGCHLD after fork to fix problems with some shells. From Romain Francois.
| * Run job commands explicitly in the global enviroment (which can beNicholas Marriott2010-04-04
| | | | | | | | | | modified with setenv -g) rather than with the environment tmux started with.
| * Squash a function that is only called in a callback into the callbackNicholas Marriott2010-04-04
| | | | | | | | function.
| * Support up, down, left, right movement through panes with -UDLR flags toNicholas Marriott2010-03-22
| | | | | | | | | | | | | | select-pane. Also REMOVE the up- and down-pane commands: equivalent behaviour is now available using -t :.+ and -t :.-.
| * New input parser based on http://vt100.net/emu/dec_ansi_parser.Nicholas Marriott2010-03-22
| |
| * Instead of bailing out on the first configuration file error, carry on,Nicholas Marriott2010-02-06
| | | | | | | | | | collecting all the errors, then start with the active window in more mode displaying them.
| * Massive spaces->tabs and trailing whitespace cleanup, hopefully for the lastNicholas Marriott2009-12-03
| | | | | | | | | | time now I've configured emacs to make them displayed in really annoying colours...
| * Remove a couple of unused arguments where possible, and add /* ARGSUSED */ toNicholas Marriott2009-11-26
| | | | | | | | the rest to reduce lint output.
| * Change status line drawing to create the window list in a separate screen andNicholas Marriott2009-11-19
| | | | | | | | | | then copy it into the status line screen. This allows UTF-8 in window names and fixes some problems with #[] in window-status-format.
| * Destroy panes immediately rather than checking them all every loop.Nicholas Marriott2009-11-13
| |
| * Change window name change to use a timer event rather than a gettimeofday()Nicholas Marriott2009-11-04
| | | | | | | | check every loop.
| * Convert the window pane (pty master side) fd over to use a bufferevent.Nicholas Marriott2009-11-04
| | | | | | | | | | The evbuffer API is very similar to the existing tmux buffer API so this was remarkably painless. Not many possible ways to do it, I suppose.
| * Switch window pane pipe redirect fd over to a bufferevent.Nicholas Marriott2009-11-04
| |
| * Initial changes to move tmux to libevent.Nicholas Marriott2009-11-04
| | | | | | | | | | | | | | | | | | This moves the client-side loops are pretty much fully over to event-based only (tmux.c and client.c) but server-side (server.c and friends) treats libevent as a sort of clever poll, waking up after every event to run various things. Moving the server stuff over to bufferevents and timers and so on will come later.
| * Only redraw the pane when changing mode, not the entire window.Nicholas Marriott2009-10-22
| |
| * Stop updating the screen when not in output mode, stops copy mode gettingNicholas Marriott2009-10-19
| | | | | | | | confused.
| * Add a pipe-pane command to allow a pane to be piped to a shell command, forNicholas Marriott2009-10-11
| | | | | | | | | | | | | | | | | | | | | | example: pipe-pane 'cat >~/out' No arguments stops outputing and closes the pipe; the -o flag toggles a pipe and on and off (useful for key bindings). Suggested by espie@.
| * Clean up by introducing a wrapper struct for mouse clicks rather than passingNicholas Marriott2009-10-11
| | | | | | | | | | | | | | three u_chars around. As a side-effect this fixes incorrectly rejecting high cursor positions (because it was comparing them as signed char), reported by Tom Doherty.
| * Accept key and mouse input for keys in zombified windows if they are in a mode..Nicholas Marriott2009-10-10
| |
| * 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.
| * Add a simple synchronize-panes window option: when set, all input to any paneNicholas Marriott2009-10-09
| | | | | | | | | | that is part of the window is also sent to all other panes in the same window. Suggested by several, most recently Tomasz Pajor.
| * Regularise some fatal messages.Nicholas Marriott2009-09-20
| |
| * 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.
| * If forking a login shell or if SHELL is otherwise not useful, set it to theNicholas Marriott2009-09-01
| | | | | | | | default shell. Based on a diff from martynas@.
| * 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 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.
| * When started as the shell, __progname contains a leading -, so hardcode "tmux"Nicholas Marriott2009-08-12
| | | | | | | | for socket path and log files, and strip it when working out the shell.
| * 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.
| * 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.
| * If select-layout is not given an argument, repply the last layout used in theNicholas Marriott2009-07-28
| | | | | | | | window, if any.
| * window_add_pane cannot fail, so remove the unused cause argument and don'tNicholas Marriott2009-07-22
| | | | | | | | bother to check for a NULL return.
| * 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.
| * 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.
| * - 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!
| * The man page says that kill-window removes the window entirely, unlinking itNicholas Marriott2009-07-15
| | | | | | | | | | | | | | from any sessions. In fact the implementation only affected the current session, making it the same as unlink-window but destroying the window if it was linked into only one session (unlinkw gives an error). Change the behaviour to match what it documented and was originally intended.
| * Don't accept input to a window if it not visible.Nicholas Marriott2009-07-14
| |