aboutsummaryrefslogtreecommitdiff
path: root/options-table.c
Commit message (Collapse)AuthorAge
* Merge hooks into options and make each one an array option. This allowsnicm2019-04-26
| | | | | | | multiple commands to be easily bound to one hook. set-hook and show-hooks remain but they are now variants of set-option and show-options. show-options now has a -H flag to show hooks (by default they are not shown).
* Indicate an array option with a flag rather than a special type so thatnicm2019-04-23
| | | | in future will not have to be strings.
* Current window style also needs to be tested for default.nicm2019-04-07
|
* Silence flag should use the same option as activity, reported by Thomasnicm2019-04-02
| | | | Sattler.
* Include window-status-style and window-status-current style in the format.nicm2019-03-19
|
* The individual -fg, -bg and -attr options have been deprecated (innicm2019-03-18
| | | | | favour of -style), undocumented and hidden from show-options since 2014. Remove them, except for status-fg and status-bg.
* Extend the #[] style syntax and use that together with previous formatnicm2019-03-18
| | | | | | | | | | | | | | | | | | | | changes to allow the status line to be entirely configured with a single option. Now that it is possible to configure their content, enable the existing code that lets the status line be multiple lines in height. The status option can now take a value of 2, 3, 4 or 5 (as well as the previous on or off) to configure more than one line. The new status-format array option configures the format of each line, the default just references the existing status-* options, although some of the more obscure status options may be eliminated in time. Additions to the #[] syntax are: "align" to specify alignment (left, centre, right), "list" for the window list and "range" to configure ranges of text for the mouse bindings. The "align" keyword can also be used to specify alignment of entries in tree mode and the pane status lines.
* Add a "terminal" colour which can be used instead of "default" in stylenicm2018-10-25
| | | | | options for the terminal default colour, bypassing any inheritance from other options. Prompted by a discussion with abieber@.
* Support for windows larger than visible on the attached client. This hasnicm2018-10-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | been a limitation for a long time. There are two new options, window-size and default-size, and a new command, resize-window. The force-width and force-height options and the session_width and session_height formats have been removed. The new window-size option tells tmux how to work out the size of windows: largest means it picks the size of the largest session, smallest the smallest session (similar to the old behaviour) and manual means that it does not automatically resize windows. The default is currently largest but this may change. aggressive-resize modifies the choice of session for largest and smallest as it did before. If a window is in a session attached to a client that is too small, only part of the window is shown. tmux attempts to keep the cursor visible, so the part of the window displayed is changed as the cursor moves (with a small delay, to try and avoid excess redrawing when applications redraw status lines or similar that are not currently visible). The offset of the visible portion of the window is shown in status-right. Drawing windows which are larger than the client is not as efficient as those which fit, particularly when the cursor moves, so it is recommended to avoid using this on slow machines or networks (set window-size to smallest or manual). The resize-window command can be used to resize a window manually. If it is used, the window-size option is automatically set to manual for the window (undo this with "setw -u window-size"). resize-window works in a similar way to resize-pane (-U -D -L -R -x -y flags) but also has -a and -A flags. -a sets the window to the size of the smallest client (what it would be if window-size was smallest) and -A the largest. For the same behaviour as force-width or force-height, use resize-window -x or -y, and "setw -u window-size" to revert to automatic sizing.. If the global window-size option is set to manual, the default-size option is used for new windows. If -x or -y is used with new-session, that sets the default-size option for the new session. The maximum size of a window is 10000x10000. But expect applications to complain and much higher memory use if making a window excessively big. The minimum size is the size required for the current layout including borders. The refresh-client command can be used to pan around a window, -U -D -L -R moves up, down, left or right and -c returns to automatic cursor tracking. The position is reset when the current window is changed.
* Add KRB5CCNAME to update-environment.nicm2018-04-23
|
* Add exit-empty option to exit server if no sessions (defaults to on).nicm2018-02-22
|
* Default allow-rename to off because it is ridiculous that applicationsnicm2017-10-25
| | | | are even able to do this and confusing when they do.
* Add monitor-bell window option to match the activity and silencenicm2017-08-17
| | | | options, from Brad Town.
* Rename BELL_* values to ALERT_* now they are used by more than bells,nicm2017-08-16
| | | | based on a diff from Brad Town.
* Make bell, activity and silence alerting more consistent:nicm2017-07-26
| | | | | | | | | | | | - remove the bell-on-alert option; - add activity-action and silence-action options with the same possible values as the existing bell-action; - add "both" value for the visual-bell, visual-activity and visual-silence options to trigger both a bell and a message. This means all three work the same way. Based on changes from Yvain Thonnart.
* Add user-keys option to allow user-defined keys to be set, from Dannicm2017-06-23
| | | | Aloni.
* Make set-clipboard a three-state option so tmux itself can ignore thenicm2017-06-03
| | | | sequencess.
* Rewrite of choose mode, both to simplify and tidy the code and to addnicm2017-05-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | some modern features. Now the common code is in mode-tree.c, which provides an API used by the three modes now separated into window-{buffer,client,tree}.c. Buffer mode shows buffers, client mode clients and tree mode a tree of sessions, windows and panes. Each mode has a common set of key bindings plus a few that are specific to the mode. Other changes are: - each mode has a preview pane: for buffers this is the buffer content (very useful), for others it is a preview of the pane; - items may be sorted in different ways ('O' key); - multiple items may be tagged and an operation applied to all of them (for example, to delete multiple buffers at once); - in tree mode a command may be run on the selected item (session, window, pane) or on tagged items (key ':'); - displayed items may be filtered in tree mode by using a format (this is used to implement find-window) (key 'f'); - the custom format (-F) for the display is no longer available; - shortcut keys change from 0-9, a-z, A-Z which was always a bit weird with keys used for other uses to 0-9, M-a to M-z. Now that the code is simpler, other improvements will come later. Primary key bindings for each mode are documented under the commands in the man page (choose-buffer, choose-client, choose-tree). Parts written by Thomas Adam.
* Store a copy of the old status line, will be needed soon for new choose mode.nicm2017-05-29
|
* Make update-environment an array as well.nicm2017-01-24
|
* Convert terminal-overrides to an array option.nicm2017-01-24
|
* server-info can become an alias rather than a command.nicm2017-01-24
|
* Revert WIP parts of previous I didn't mean to commit yet.nicm2017-01-16
|
* getopt() has a struct option so just return to using options_entry.nicm2017-01-16
|
* Major tidy up and rework of options tree and set-option/show-optionsnicm2017-01-15
| | | | | | | | 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.
* Remove unused quiet option.nicm2017-01-15
|
* Simplify appending to string options.nicm2017-01-12
|
* Some tidying and tweaks to options code.nicm2017-01-11
|
* Change the xterm-keys option to default to on, so that tmux willnicm2016-12-30
| | | | | | | | | | | generate xterm(1) escape sequences for function keys with modifiers. With the option off most of these keys are ignored by default, except for ctrl + arrows which use a variant that nothing else seems to use and I don't remember why we chose. The xterm escape sequences are now the most common. Prompted by a question from mpi@.
* Remove the set-remain-on-exit option, it was always a hack and can nownicm2016-10-13
| | | | be done with hooks instead.
* Remove some dead code in cmd-move-window.c and make a load of localnicm2016-10-03
| | | | functions static.
* Fix up a couple of long lines.nicm2016-05-04
|
* Add option to include status text in the pane borders. Ifnicm2016-04-29
| | | | | | | | | pane-border-status is set to "top" or "bottom" (rather than "off"), every pane has a permanent top or bottom border containing the text from pane-border-format. Based on a diff sent long ago by Jonathan Slenders, mostly rewritten and simplified by me.
* I no longer use my SourceForge address so replace it.nicm2016-01-19
|
* Add key-table option to set the default key table for a session, allowsnicm2015-12-12
| | | | different key bindings for different sessions and a few other things.
* Don't allow options in table without scope set.nicm2015-11-24
|
* If display-time is set to 0, show status messages until a key is pressed;tim2015-11-22
| | | | OK nicm@
* Instead of separate tables for different types of options, give eachnicm2015-11-20
| | | | option a scope type (server, session, window) in one table.
* Nuke the utf8 and status-utf8 options and make tmux only a UTF-8nicm2015-11-12
| | | | | terminal. We still support non-UTF-8 terminals outside tmux, but inside it is always UTF-8 (as when the utf8 and status-utf8 options were on).
* Default history-file should be "" not NULL, from Greg Onufe.nicm2015-11-12
|
* Drop mouse-utf8 option and always turn on UTF-8 mouse if the client saysnicm2015-11-11
| | | | it supports UTF-8.
* Adding colors=256 to *256color* was always pretty stupid and now itnicm2015-09-25
| | | | won't work (without adding setaf@:setab@ too).
* Remove the lock-server option which is a bit redundant, it isn't thatnicm2015-08-28
| | | | different without it.
* Add an option (history-file) for a file to save/restore command promptnicm2015-07-20
| | | | history, from Olof-Joachim Frahm.
* Add a session_alerts format which is a list of all the alerts in thenicm2015-05-12
| | | | | current session in symbolic form (something like "0!,4~,5!"). Use this in the default set-titles-string. Prompted by a request from Jan ONDREJ.
* Add bell-action "other" to pass through bells in all windows except thenicm2015-05-12
| | | | current, suggested by Jan ONDREJ.
* Left the c0-* options behind in the table.nicm2015-05-11
|
* Add a format window_linked which is 1 if a window has been linkednicm2015-05-06
| | | | | | | multiple times, also remove the default space in window_flags and use a conditional to add it in window-status-format (this means additional flags can be added in the option without extra spaces). From Thomas Adam with tweaks by me.
* If default-terminal is set to "screen" or "screen-*", emulate screen'snicm2015-04-29
| | | | | | | | | | | | | | | | historical (incorrect) behaviour for SGR 3 and send smso (standout). Previously, we would send sitm (italics) if the terminal outside had it and smso otherwise. This was acceptably until recently because xterm's terminfo entry lacked sitm, so most users got smso. People who want italics should set default-terminal to the forthcoming "tmux" entry (and be prepared to deal with it being missing on older hosts). As a side-effect this changes default-terminal to be a server rather than a session option. suggested by and ok naddy
* Rewrite of tmux mouse support which was a mess. Instead of havingnicm2015-04-19
| | | | | | | | | | | | | | | | | | | | | | | | | 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.