summaryrefslogtreecommitdiffstats
path: root/cmd-set-option.c
AgeCommit message (Collapse)Author
2021-08-25Validate command argument types (string or command list) and give morenicm
useful error messages.
2021-08-21Add args parsing callback for some future work, currently unused.nicm
2021-08-20Hide struct args behind a couple of accessor functions.nicm
2020-12-15Make synchronize-panes a pane option and add -U flag to set-option tonicm
unset an option on all panes. GitHub issue 2491 from Rostislav Nesin.
2020-06-16d and D keys to reset to default in customize mode.nicm
2020-05-16Move lazy resize from the pane to the window, there is no point innicm
resizing the window unless it is the current window, and if we do and don't resize the pane until later there are problems if the size changes from A to B then back to A.
2020-05-16Add a customize mode where keys and options may be browsed and changed,nicm
includes adding a brief description of each option. Bound to "C" by default.
2020-05-16Drop having a separate type for style options and make them all strings,nicm
which allows formats to be expanded. Any styles without a '#{' are still validated when they are set but any with a '#{' are not. Formats are not expanded usefully in many cases yet, that will be changed later. To make this work, a few other changes: - set-option -a with a style option automatically appends a ",". - OSC 10 and 11 don't set the window-style option anymore, instead the fg and bg are stored in the pane struct and act as the defaults that can be overridden by window-style. - status-fg and -bg now override status-style instead of trying to keep them in sync.
2020-04-13Missed a few warnings in previous.nicm
2020-04-13Also move cmdq_item and cmdq_list into cmd-queue.c (this is to make itsnicm
use more clearly defined and preparation for some future work).
2020-04-13Make struct cmd local to cmd.c and move it out of tmux.h.nicm
2020-04-13Change so that the appropriate hooks for windows and panes belong tonicm
pane/window options rather than all being session options. This is useful for example to create a pane that is automatically closed on some condition. From Anindya Mukherjee.
2020-03-17Ignore default-shell (and use /bin/sh) if it invalid not just if it isnicm
tmux itself, also refuse to set the option to something invalid in the first place. GitHub issue 2120.
2019-06-20Add a per-pane option set. Pane options inherit from window options (sonicm
there should be no change to existing behaviour) and are set and shown with set-option -p and show-options -p. Change remain-on-exit and window-style/window-active-style to be pane options (some others will be changed later). This makes select-pane -P and -g unnecessary so no longer document them (they still work) and no longer document set-window-option and show-window-options in favour of set-option -w and show-options -w.
2019-06-20Add a helper function to work out option table from name.nicm
2019-04-26Merge hooks into options and make each one an array option. This allowsnicm
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).
2019-04-23Indicate an array option with a flag rather than a special type so thatnicm
in future will not have to be strings.
2019-03-18The individual -fg, -bg and -attr options have been deprecated (innicm
favour of -style), undocumented and hidden from show-options since 2014. Remove them, except for status-fg and status-bg.
2019-03-18Make array options a sparse tree instead of an array of char * andnicm
remove the size limit.
2019-03-16Tidy and rename some bits of status line code.nicm
2018-10-18Support for windows larger than visible on the attached client. This hasnicm
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.
2017-12-22Do not try to set default value on user options (they don't have one),nicm
from Charles Howard in GitHub issue 1161.
2017-09-07Do not fail if unset an option that is already unset, reported by Thomasnicm
Sattler.
2017-06-23Add user-keys option to allow user-defined keys to be set, from Dannicm
Aloni.
2017-05-31Style and spacing nits.nicm
2017-05-10Expand formats in option names and add -F flag to do so in option values as ↵nicm
well.
2017-04-22Get rid of the extra layer of flags and cmd_prepare() and just store thenicm
CMD_FIND_* flags in the cmd_entry and call it for the command. Commands with special requirements call it themselves and update the target for hooks to use.
2017-04-22Memory leaks, from David CARLIER.nicm
2017-02-16Style nits.nicm
2017-02-03Cache status line position to reduce option lookups during output.nicm
2017-01-25Clear option before adding to array if no -a, reported by Michaelnicm
Nickerson.
2017-01-24Fix set -u on array options.nicm
2017-01-24If given an array option without an index either show or set all items,nicm
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).
2017-01-16getopt() has a struct option so just return to using options_entry.nicm
2017-01-15-q flag now needs to be checked in a couple more places.nicm
2017-01-15Major tidy up and rework of options tree and set-option/show-optionsnicm
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.
2017-01-12Simplify appending to string options.nicm
2017-01-11Some tidying and tweaks to options code.nicm
2016-11-04Do not try to set the CHANGED flag on windows with no active pane, fixesnicm
problem reported by Nelo-T Wallus.
2016-10-16Mass rename struct cmd_q to struct cmdq_item and related.nicm
2016-10-14Add CMD_AFTERHOOK flag to the easy commands that don't need any special ↵nicm
handling.
2016-10-10Add static in cmd-* and fix a few other nits.nicm
2016-10-09Handle NULL window or session for user options.nicm
2016-09-26Support set -a (append) with user options, suggested by Xandor Schiefer.nicm
2016-05-30Cache the window styles and do not look up the window-style optionsnicm
unless they have changed.
2016-04-29Add option to include status text in the pane borders. Ifnicm
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.
2016-03-03show-* and set-* need to handle a missing target.nicm
2016-01-19I no longer use my SourceForge address so replace it.nicm
2015-12-14Instead of combined flags for -c, -s, -t, split into different setsnicm
using an enum and simplify the parsing code.
2015-12-13Use member names in cmd_entry definitions so I stop getting confusednicm
about the order.