summaryrefslogtreecommitdiffstats
path: root/usr.bin/tmux/tmux.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Add a window or pane id "tag" to each format tree and use it to separatenicm2017-02-031-2/+5
| | | | | | jobs, this means that if the same job is used for different windows or panes (for example in pane-border-format), it will be run separately for each pane.
* Implement "all event" (1003) mouse mode but in a way that works. Thenicm2017-02-011-2/+4
| | | | | | | | | | | main issue is that if we have two panes, A with 1002 and B with 1003, we need to set 1003 outside tmux in order to get all the mouse events, but then we need to suppress the ones that pane A doesn't want. This is easy in SGR mouse mode, because buttons == 3 is only used for movement events (for other events the trailing m/M marks a release instead), but in normal mouse mode we can't tell so easily. So for that, look at the previous event instead - if it is drag+release as well, then the current event is a movement event.
* When a flag option is used in a format, it should use the number formnicm2017-01-301-2/+2
| | | | not string.
* Revert previous for now, it will break TERM=screen.nicm2017-01-251-2/+2
|
* If xterm-keys is on, use xterm(1) style keys for Home and End as well asnicm2017-01-251-2/+2
| | | | modified keys.
* Fixed keys for choose mode, and remove the last mode keys bits.nicm2017-01-241-64/+2
|
* Make update-environment an array as well.nicm2017-01-241-2/+2
|
* Add support for custom command aliases, this is an array option whichnicm2017-01-241-1/+2
| | | | | contains items of the form "alias=command". This is consulted when an unknown command is parsed.
* If given an array option without an index either show or set all items,nicm2017-01-241-4/+8
| | | | | | and support -a for array options. Allow the separator for set to be specified in the options table (will be used for backwards compatibility later).
* Open /dev/ptm before pledge() and save it to be used for PTMGET laternicm2017-01-231-1/+6
| | | | | | (this means inlining forkpty()). ok deraadt
* Plain stravis() because it will mangle UTF-8 characters, so addnicm2017-01-181-1/+2
| | | | utf8_stravis() which calls our existing utf8_strvis() and use it instead
* Revert WIP parts of previous I didn't mean to commit yet.nicm2017-01-161-2/+1
|
* getopt() has a struct option so just return to using options_entry.nicm2017-01-161-27/+28
|
* It is silly for cmd_list_parse to return an integer error when it couldnicm2017-01-151-3/+2
| | | | just return NULL.
* Major tidy up and rework of options tree and set-option/show-optionsnicm2017-01-151-41/+38
| | | | | | | | commands this pushes more of the code into options.c and ties it more closely to the options table rather than having an unnecessary split. Also add support for array options (will be used later). Only (intentional) user visible change is that show-options output is now passed through vis(3) with VIS_DQ so quotes are escaped.
* options_get_style return const too.nicm2017-01-131-2/+2
|
* Make options_get_string return const string.nicm2017-01-131-2/+2
|
* Add -E to detach-client to exec a command to replace the client insteadnicm2017-01-131-1/+3
| | | | of exiting it, useful if tmux wasn't exec'd itself. From Jenna Magius.
* Simplify appending to string options.nicm2017-01-121-5/+5
|
* Put all palette functions together in the file.nicm2017-01-121-2/+2
|
* Fix setting the palette of aixterm colours (90-97).nicm2017-01-121-6/+2
|
* Add a format for terminal type.nicm2017-01-111-4/+3
|
* Use a macro for looking up tty types.nicm2017-01-111-1/+3
|
* Some tidying and tweaks to options code.nicm2017-01-111-2/+2
|
* Add simple comparisons in formats: #{==:a,b} and #{!=:a,b} ("a" and "b"nicm2017-01-091-1/+2
| | | | | | | are expanded so can compare formats). And expand the condition to #{?a,b,c} (the "a" part) if it doesn't work as a simple lookup. Also add FORMAT_NOJOBS flag to disable jobs in a format.
* Run the source-file pattern through glob(3).nicm2017-01-091-2/+2
|
* Add support for the OSC 4 and OSC 104 palette setting escape sequences,nicm2017-01-071-1/+12
| | | | from S Gilles.
* Incremental search in copy mode (on for emacs keys by default) - muchnicm2017-01-061-3/+4
| | | | | | the same as normal searching but updates the cursor position and marked search terms as you type. C-r and C-s in the prompt repeat the search, once finished searching (with Enter), N and n work as before.
* Highlight all occurrences of search string after searching in copy mode.nicm2017-01-051-2/+2
|
* Fix the prefer unattached session behaviour ofnicm2016-12-281-2/+2
| | | | attach-session/switch-client, reported by Thomas Sattle.
* The mouse valid flag needs to be correct before we fire the draggingnicm2016-11-241-1/+2
| | | | | callback, so move the callback outside of server_client_check_mouse and use a new special key code to indicate it.
* Make the selection able to exist independent of the cursor position, sonicm2016-11-241-1/+4
| | | | | | | | | | | | that it is not affected by scrolling. If MouseDragEnd1Pane is bound to the new "stop-selection" command: bind -Tcopy-mode MouseDragEnd1Pane stop-selection A selection made with the mouse will stay as it is after button 1 is released. (It also works bound to a key.) From Artem Fokin.
* For mouse keys, use the mouse pane as the default current pane.nicm2016-11-231-2/+2
|
* The target validity check used window_pane_visible but that may be falsenicm2016-11-161-1/+2
| | | | | | | if the pane is zoomed, so instead add a new function to just check if the pane is actually on screen (most commands still want to accept panes invisible by zoom). Also reject panes outside the window for various special targets. Problem reported by Sean Haugh.
* Turn on margins, with a couple of fixes (only limit to the pane for linenicm2016-11-151-3/+3
| | | | feeds, and do not move cursor to end for full width panes).
* Initial attempt to make use of left and right margins if the terminalnicm2016-11-151-1/+15
| | | | | | | supports them (that is, if it advertises itself as a VT420 - probably just xterm). These are the vertical equivalent of the scroll region and allow much faster scrolling of panes that do not take up the full width of the terminal.
* enum values need to fit in 32 bits; we only use enum for numbering andnicm2016-11-041-2/+2
| | | | | Unicode characters fit in 24 bits, so we can leave key_code as 64 bits and change KEYC_BASE down to 0x10000000.
* Alerts are too slow, so rather than walking all sessions and windows,nicm2016-10-191-2/+8
| | | | | | add a link of winlinks to each window and a pointer to the session to each winlink. Also rewrite the alerts processing to return to the old behaviour (alert in any window sets the flag on any winlink).
* Give each item on queue a name for better logging.nicm2016-10-181-2/+4
|
* Use notifys for alerts too.nicm2016-10-161-1/+2
|
* Use the notify name string instead of going via an enum and changenicm2016-10-161-10/+7
| | | | existing hooks to use notifys instead.
* Provide a way for hooks to tag formats onto the commands they fire sonicm2016-10-161-2/+5
| | | | | that the user can get at additional information - now used for the "hook" format, more to come.
* Notifys can go via the command queue instead of using their own queue.nicm2016-10-161-2/+1
|
* Mass rename struct cmd_q to struct cmdq_item and related.nicm2016-10-161-42/+42
|
* Rewrite command queue handling. Each client still has a command queue,nicm2016-10-161-134/+136
| | | | | | | | | | | | | | | but there is also now a global command queue. Instead of command queues being dispatched on demand from wherever the command happens to be added, they are now all dispatched from the top level server loop. Command queues may now also include callbacks as well as commands, and items may be inserted after the current command as well as at the end. This all makes command queues significantly more predictable and easier to use, and avoids the complex multiple nested command queues used by source-file, if-shell and friends. A mass rename of struct cmdq to a better name (cmdq_item probably) is coming.
* Give window_create and window_create1 better names.nicm2016-10-151-3/+3
|
* Rename a function for consistency and some spacing nits.nicm2016-10-151-2/+2
|
* Fire hooks on the simple notifys (window-renamed and session-renamed),nicm2016-10-151-1/+3
| | | | the complicated ones get no hooks for now (more to come).
* Drain notifys once at the end of the server loop instead of doing itnicm2016-10-151-3/+2
| | | | from the end of every command queue (which could be nested).
* Trying to do hooks generically is way too complicated and unreliable andnicm2016-10-131-3/+3
| | | | | | | | | | | | | | | | | | confusing, particularly trying to automatically figure out what target hooks should be using. So simplify it: - drop before hooks entirely, they don't seem to be very useful; - commands with special requirements now fire their own after hook (for example, if they change session or window, or if they have -t and -s and need to choose which one the hook uses as current target); - commands with no special requirements can have the CMD_AFTERHOOK flag added and they will use the -t state. At the moment new-session, new-window, split-window fire their own hook, and display-message uses the flag. The remaining commands still need to be looked at.