aboutsummaryrefslogtreecommitdiff
path: root/window.c
Commit message (Collapse)AuthorAge
...
| * 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
| |
| * 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.
| * 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.
| * Just appending -l to $SHELL to create a login shell is wrong: -l is not POSIX,Nicholas Marriott2009-07-08
| | | | | | | | | | | | | | | | | | and some people may use shells which do not support it. Instead, make an empty default-command option mean a login shell, and fork it with a - in argv[0] which is the method used by login(1). Also fix the automatic-rename code to handle this correctly and to strip a leading - if present.
| * Rename the global options variables to be shorter and to make session optionsNicholas Marriott2009-07-07
| | | | | | | | | | clear. No functional change, getting this out of the way to make later options changes easier.
| * Miscellaneous unused functions, including one which was basically aNicholas Marriott2009-06-25
| | | | | | | | duplicate. Found by lint.
| * Change find-window and monitor-content to use fnmatch(3). For convenience andNicholas Marriott2009-06-24
| | | | | | | | | | | | | | | | | | compatibility, *s are implicitly added at the start and end of the pattern. Also display the line number and the entire line in the results, and lose the nasty section_string function and the now empty util.c file. Initially from Tiago Cunha.
| * Add a dedicated function to convert a line into a string and use it to ↵Nicholas Marriott2009-06-24
| | | | | | | | simplify the search window function.
| * If a pane is "zombified" (remain-on-exit flag), don't continue to queue key andNicholas Marriott2009-06-23
| | | | | | | | mouse input for it (otherwise they are processed after respawn).
| * strdup the input to putenv to avoid in one case passing a string that is laterNicholas Marriott2009-06-05
| | | | | | | | | | | | freed and in the other const strings. looks sane to millert, ok ray
| * Import tmux, a terminal multiplexor allowing (among other things) a singleNicholas Marriott2009-06-01
| | | | | | | terminal to be switched between several different windows and programs displayed on one terminal be detached from one terminal and moved to another. ok deraadt pirofti