aboutsummaryrefslogtreecommitdiff
path: root/tmux.c
Commit message (Collapse)AuthorAge
...
| * 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.
| * Change declaration and use of malloc_options to be more standard, from Tim vanNicholas Marriott2009-11-04
| | | | | | | | der Molen.
| * tabs are better; ok nicmTheo Deraadt2009-10-26
| |
| * Remove the -d flag to tmux and just use op/AX to detect default colours.Nicholas Marriott2009-10-25
| | | | | | | | | | | | | | | | | | | | | | | | Irritatingly, although op can be used to tell if a terminal supports default colours, it can't be used to set them because in some terminfo descriptions it resets attributes as a side-effect (acts as sgr0) and in others it doesn't, so it is not possible to determine reliably what the terminal state will be afterwards. So if AX is missing and op is present, tmux just sends sgr0. Anyone using -d for a terminal who finds they actually needed it can replace it using terminal-overrides, but please let me know as it is probably an omission from terminfo.
| * Merge prepare_cmd into main as it is short and only called once.Nicholas Marriott2009-10-22
| |
| * Client tidying: get rid of client_ctx struct in favour of two variables inNicholas Marriott2009-10-21
| | | | | | | | client.c, and move the functions in client-fn.c into other files.
| * 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.
| * 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.
| * 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.
| * 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.
| * 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.
| * New option, set-titles-string, to allow the window title to be specified (asNicholas Marriott2009-09-18
| | | | | | | | | | for status-left/right) if set-titles is on. Also only update the title when the status line is being redrawn.
| * Tidy main and make it a bit easier to read.Nicholas Marriott2009-09-04
| |
| * 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@.
| * 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.
| * Use "Password:" with no space for password prompts and don't display a *s forNicholas Marriott2009-09-01
| | | | | | | | | | the password, like pretty much everything else. From martynas@ with minor tweaks by me.
| * Sort cases same as getopt argument, from martynas.Nicholas Marriott2009-09-01
| |
| * 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 some other obvious variables to update-environment (WINDOWID SSH_ASKPASSNicholas Marriott2009-08-23
| | | | | | | | | | SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION) so they are updated in the session environment on new/attach.
| * Disable mode-mouse (mouse in copy/choice mode) by default as it isn't veryNicholas Marriott2009-08-13
| | | | | | | | useful at the moment and causes confusion.
| * 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 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.
| * 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.
| * No arguments are the same as new-session and this requires the environment toNicholas Marriott2009-08-10
| | | | | | | | be sent, so set that flag too when argc == 0.
| * 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.
| * Options to set the colours and attributes for status-left/-right. From ThomasNicholas Marriott2009-08-08
| | | | | | | | Adam, thanks.
| * If colours are not supported by the terminal, try to emulate a colouredNicholas Marriott2009-08-05
| | | | | | | | | | | | | | | | background by setting or clearing the reverse attribute. This makes a few applications which don't use the reverse attribute themselves a little happier, and allows the status, message and mode options to have default attributes and fg/bg options that work as expected when set as reverse.
| * Check for "UTF8" as well as "UTF-8" in LANG etc as it seems this may alsoNicholas Marriott2009-08-04
| | | | | | | | appear.
| * Add a terminal-overrides session option allowing individual terminfo(5) entriesNicholas Marriott2009-08-03
| | | | | | | | | | | | | | | | to be overridden. The 88col/256col checks are now moved into the default setting and out of the code. Also remove a couple of old workarounds for xterm and rxvt which are no longer necessary (tmux can emulate them if missing).
| * Add a mode-mouse option to prevent tmux taking over the mouse in choice or copyNicholas Marriott2009-07-30
| | | | | | | | modes.
| * Rename struct hdrtype to msgtype which is a better name and can be used evenNicholas Marriott2009-07-29
| | | | | | | | when struct hdr disappears.
| * Taking account of the "s, 22 not 24 is the maximum length of #T in status-rightNicholas Marriott2009-07-29
| | | | | | | | to prevent the date being cut off.
| * Make all messages sent between the client and server fixed size.Nicholas Marriott2009-07-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the first of two changes to make the protocol more resilient and less sensitive to other changes in the code, particularly with commands. The client now packs argv into a buffer and sends it to the server for parsing, rather than doing it itself and sending the parsed command data. As a side-effect this also removes a lot of now-unused command marshalling code. Mixing a server without this change and a client with or vice versa will cause tmux to hang or crash, please ensure that tmux is entirely killed before upgrading.
| * Pass a set of flags into client_init rather than just a start_serverNicholas Marriott2009-07-22
| | | | | | | | variable. Only one flag now but more to come later.
| * Display the number of failed password attempts (if any) when the server isNicholas Marriott2009-07-20
| | | | | | | | locked. From Tom Doherty.
| * Add a status-justify option to allow the window list in the status line to beNicholas Marriott2009-07-20
| | | | | | | | positioned at the left, centre, or right.
| * New options, window-status-current-{fg,bg,attr}, to set the fg, bg andNicholas Marriott2009-07-20
| | | | | | | | | | attributes with which the current window is shown in the status line. From Johan Friis, thanks.
| * Add three new session options: visual-activity, visual-bell, visual-content. IfNicholas Marriott2009-07-18
| | | | | | | | | | | | | | | | | | these are enabled (and the monitor-activity, bell-actio and monitor-content options are configurated appropriately), when activity, a bell, or content is detected, a message is shown. Also tidy up the bell/activity/content code in server.c slightly and fix a couple of errors.
| * If -u is specified or UTF-8 is otherwise detected when the server is started,Nicholas Marriott2009-07-17
| | | | | | | | | | enable the utf8 and status-utf8 optons. While here, note in the man page that the server is started with the first session and exits when none remain.
| * Add a default-terminal option to set the starting value of $TERM in newNicholas Marriott2009-07-10
| | | | | | | | | | | | | | windows. This is "screen" by default and must be either that or something closely related. This does makes it easier to customise it if necessary.
| * 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.
| * If getcwd() fails, use the user's home directory, or /, instead of failing withNicholas Marriott2009-06-25
| | | | | | | | an error.
| * Remove error about using -L and -S together which was never displayed asNicholas Marriott2009-06-25
| | | | | | | | | | logging wasn't yet enabled, was unnecessary, and contradicted the man page which says using -S will cause -L to be ignored.
| * LC_ALL overrides LC_CTYPE and LANG. Comment was correct but the codeNicholas Marriott2009-06-23
| | | | | | | | wrong. Pointed out by Hannah Schroeter, thanks.
| * Check the first of LC_CTYPE, LC_ALL and LANG, rather than just the last, whenNicholas Marriott2009-06-05
| | | | | | | | trying to decide about UTF-8, and use strcasestr. Reported by Geert Hendrickx.
| * Zero the password given to -U in the client as well.Nicholas Marriott2009-06-04
| |
| * Do not set the window title by default (make set-titles option default to off),Nicholas Marriott2009-06-03
| | | | | | | | wiping over the title is rude and annoying. Agreed by several.