summaryrefslogtreecommitdiffstats
path: root/server-client.c
AgeCommit message (Collapse)Author
2015-12-12Add key-table option to set the default key table for a session, allowsnicm
different key bindings for different sessions and a few other things.
2015-12-12Allow prefix and prefix2 to be set to None to disable (useful if younicm
would rather bind the prefix in the root table).
2015-12-11Add cmdq as an argument to format_create and add a format for thenicm
command name (will also be used for more later).
2015-12-08Remove format_create_flags and just pass flags to format_create.nicm
2015-12-08Add hooks infrastructure, basic commands (set-hook, show-hooks) and anicm
couple of not very useful client hooks. This will eventually let commands be run at various points and on notifications. Joint work with Thomas Adam.
2015-12-01Do not deref wp if window_get_active_at returns NULL which can happen onnicm
very large terminals, from Michael Graczyk.
2015-11-23Remove support for the UTF-8 mouse extension. This was a briefly used,nicm
poor idea that was fairly quickly replaced by SGR mouse input (which is now widespread). It is impossible to tell the difference between UTF-8 and non-UTF-8 mouse input; since the mouse-utf8 option was removed tmux has not handled it correctly in any case; and it is ridiculous to have three different forms of mouse input.
2015-11-19Only assume pasting with at least two characters, reduces problems fornicm
people who can type ^B c very fast, or who are using tmux inside something else that buffers.
2015-11-18Use __unused rather than rolling our own.nicm
2015-11-14Push stdout and stderr to clients more aggressively, and add an event tonicm
continue if the send fails.
2015-11-12Support UTF-8 key bindings by expanding the key type from int tonicm
uint64_t and converting UTF-8 to Unicode on input and the reverse on output. (This allows key bindings, there are still omissions - the largest being that the various prompts do not accept UTF-8.)
2015-11-11Drop mouse-utf8 option and always turn on UTF-8 mouse if the client saysnicm
it supports UTF-8.
2015-10-31The output log is only useful once and it means creating a file, so opennicm
it once at startup instead of in every call to tty_open.
2015-10-31Because pledge(2) does not allow us to pass directory file descriptorsnicm
around, we can't use file descriptors for the working directory because we will be unable to pass it to a privileged process to tell it where to read or write files or spawn children. So move tmux back to using strings for the current working directory. We try to check it exists with access() when it is set but ultimately fall back to ~ if it fails at time of use (or / if that fails too).
2015-10-28Like options, move the environ struct into environ.c.nicm
2015-10-27Move struct options into options.c.nicm
2015-10-27Break the common process set up, event loop and imsg dispatch codenicm
between server and client out into a separate internal API. This will make it easier to add another process.
2015-10-26If a mouse event has no key binding, pass it through to the pane itnicm
happened in, not the active pane like normal key presses. Fixes problems seen by Enrico Ghirardi.
2015-10-26Some extra logging of where keys are actually going.nicm
2015-10-23Pasting mouse escape sequences is unlikely, so skip them when workingnicm
out whether the user is pasting.
2015-10-22Log identify messages.nicm
2015-10-20Use client pointer not file descriptor in logging.nicm
2015-10-20The table could change when retrying so don't save it at start ofnicm
server_client_handle_key.
2015-10-18Pass current directory as a string rather than a file descriptor becausenicm
pledge doesn't let us pass directory file descriptors.
2015-09-16Rename cmd_q dead flag to a general flags bitmask (will be more flags later).nicm
2015-09-14Make refresh-client force update of jobs, from Sina Siadat.nicm
2015-09-01Tweak some error messages/comments.nicm
2015-08-30Some style nits and dead assignments.nicm
2015-08-29We already loop over the windows in server_client_loop, so don't do itnicm
again in server_loop just to check names.
2015-08-28Make session_update_activity more useful and use it in more places.nicm
2015-08-28Run status update on a per-client timer at status-interval.nicm
2015-07-29status_out and associated data structures are no longer used.nicm
2015-07-17Initialize client fd to -1 as well, from Bobby Powers.nicm
2015-07-13Fix line endings.nicm
2015-07-13Initialize cwd fd to -1 so that we don't close fd 0 if the client isnicm
destroyed before it is changed. Also allow ttyname() to fail. Fixes problems when running out of file descriptors reported by Bruno Sutic.
2015-06-14Add a format for client PID (client_pid) and server PID (pid). Diff fornicm
client_pid from Thomas Adam.
2015-06-05Change deref to the more sensible unref, and add a couple I missed before.nicm
2015-06-05Instead of putting dead clients on a list and checking it every loop,nicm
use event_once to queue a callback to deal with them. Also dead clients with references would never actually be freed because the wrap-up functions (the callback for stdin, or status_prompt_clear) would never be called. So call them in server_client_lost.
2015-06-04Move the nested check from client to server and compare the client ttynicm
name to all the pane pty names instead of comparing socket paths. This means that "new -d" will work without unsetting $TMUX.
2015-05-27Move the jobs output cache into the formats code so that #() work morenicm
generally (for example, again working in set-titles-string).
2015-05-08Remove some stuff that accidentally ended up here from portable, andnicm
remove a little-used debug function.
2015-05-06Turn cursor off during redraw, pointed out by George Nachman.nicm
2015-04-25Make message log a TAILQ.nicm
2015-04-24Convert clients list into a TAILQ.nicm
2015-04-22Change the windows array into an RB tree and fix some places where wenicm
were only looking at the first winlink for a window in a session.
2015-04-21Don't eat the mouse event that triggers a drag end because we may wantnicm
to pass it on to application inside the pane.
2015-04-20Support for multiple key tables to commands to be bound to sequences ofnicm
keys. The default key bindings become the "prefix" table and -n the "root" table. Keys may be bound in new tables with bind -T and switch-client -T used to specify the table in which the next key should be looked up. Based on a diff from Keith Amling.
2015-04-19Rewrite of tmux mouse support which was a mess. Instead of havingnicm
options for "mouse-this" and "mouse-that", mouse events may be bound as keys and there is one option "mouse" that turns on mouse support entirely (set -g mouse on). See the new MOUSE SUPPORT section of the man page for description of the key names and new flags (-t= to specify the pane or window under mouse as a target, and send-keys -M to pass through a mouse event). The default builtin bindings for the mouse are: bind -n MouseDown1Pane select-pane -t=; send-keys -M bind -n MouseDown1Status select-window -t= bind -n MouseDrag1Pane copy-mode -M bind -n MouseDrag1Border resize-pane -M To get the effect of turning mode-mouse off, do: unbind -n MouseDrag1Pane unbind -temacs-copy MouseDrag1Pane The old mouse options are now gone, set-option -q may be used to suppress warnings if mixing configuration files.
2015-04-19Support setting the default window and pane background colours (windownicm
and active pane via window-style and window-active-style options, an individual pane by a new select-pane -P flag). From J Raynor.
2015-03-31Fix some format specifier nits, from Ben Boeckel.nicm