nicm
3d40d63a87
Add an option allowing users to override the width of individual Unicode
...
codepoints (overriding tmux's default list).
2025-01-01 15:17:36 +00:00
nicm
ab0a70a753
Client flags was changed to uint64_t a while ago, fix a few cases where
...
it is still int (do not matter now but will with some new flags). From
Michael Grant.
2024-08-26 07:30:46 +00:00
nicm
aa2b5bbb21
Add missing time.h to tty.c (from Ismail Donmez), also remove some stray
...
spaces.
2024-05-14 10:11:09 +00:00
nicm
2af4974031
Change UTF-8 combining to inspect the previous character at the cursor
...
position rather than keeping the last character from the input stream,
this is how most terminals work and fixes problems with displaying these
characters in vim. GitHub issue 3600.
2023-09-15 15:49:05 +00:00
nicm
ecd3a22e01
Rewrite combined character handling to be more consistent and to support
...
newer Unicode combined characters (which we have to "know" are combined
since they are not width zero). GitHub issue 3600.
2023-09-01 14:29:11 +00:00
nicm
2df6775c42
Add support for OSC 8 hyperlinks (a VTE extension now supported by other
...
terminals such as iTerm2). Originally written by me then extended and
completed by first Will Noble and later Jeff Chiang. GitHub issues 911,
2621, 2890, 3240.
2022-06-30 09:55:53 +00:00
nicm
a711f92af9
Store time lines are scrolled into history and display in copy mode.
2022-06-21 09:30:01 +00:00
nicm
8ab000fc3e
Add an ACL list for users connecting to the tmux socket. Users may be
...
forbidden from attaching, forced to attach read-only, or allowed to
attach read-write. A new command, server-access, configures the list.
tmux gets the user using getpeereid(3) of the client socket. Users must
still configure file system permissions manually. From Dallas Lyons and
others.
2022-05-30 12:48:57 +00:00
nicm
b43857e5b5
Report error if creating socket fails with -D.
2022-03-28 07:40:57 +00:00
nicm
87d557e066
Fix exit message if creating socket fails.
2022-03-25 06:14:42 +00:00
nicm
2bd728e04b
Fix warnings, from Jan Tache in GitHub issue 2692.
2021-06-10 07:45:43 +00:00
nicm
97887b4c10
Tidy old jobs every hour instead of every 30 seconds.
2021-03-11 07:08:18 +00:00
nicm
ab26eabfed
Add a couple of helper functions, and flush imsgs on exit.
2021-02-11 09:39:29 +00:00
nicm
10e1651a8c
Fix some warnings, GitHub issue 2382.
2020-09-16 18:37:55 +00:00
nicm
b3e4eeb8c1
Add a flag to make a client wait for an empty line before exiting in
...
control mode to avoid stray commands ending up in the shell.
2020-06-18 08:34:22 +00:00
nicm
a34cf9c854
Instead of sending all data to control mode clients as fast as possible,
...
add a limit of how much data will be sent to the client and try to use
it for panes with some degree of fairness. GitHub issue 2217, with
George Nachman.
2020-06-01 09:43:00 +00:00
nicm
9265d1ac59
xterm-keys has been on by default for five years and all other modern
...
terminals use these key sequences by default. Merge the code into the
main tty and input tree processing (converting the latter to use a tree
rather than a table at the same time) and make the option a no-op.
2020-05-16 16:30:59 +00:00
nicm
9e0637eaf7
Add a -D flag to ask tmux not to daemonize, useful both for running a
...
debugger (lldb does not have follow-fork-mode) and for running with a
managed supervisor init system. GitHub issue 2190.
2020-05-16 16:07:55 +00:00
nicm
0687354c6b
Change message log to be per server rather than per client and include
...
every command that is run.
2020-05-16 15:47:22 +00:00
nicm
a6c9106f9d
Add 'e' key in buffer mode to open the buffer in an editor.
2020-05-16 15:24:28 +00:00
nicm
b6d7e0c74f
When the server socket is given by the user with -S, create it with
...
umask 177 instead of 117 because it may not be in a safe directory like
the default directory in /tmp. The user can chmod it more open after it
is created if they want.
2020-03-12 09:26:34 +00:00
nicm
e32e262ab5
Expand command formats in %if and move the config file loading later (to
...
when the first client has identified) so all the client formats are
available, fixes problems reported by Thomas Sattler.
2019-06-20 06:51:36 +00:00
nicm
432eaf59a7
Do not load the config file if the server is exiting because it failed
...
to start, otherwise commands like lsk which start the server again can
end up looping infinitely. Also make the first client exit
correctly. Problem reported by Wael M Nasreddine.
2019-06-07 20:09:17 +00:00
nicm
0f3d1a91ca
Replace the various identical error callbacks with a single one in cmd-queue.c.
2019-05-20 11:46:06 +00:00
nicm
c26c4f7976
Break new window and pane creation common code from various commands and
...
window.c into a separate file spawn.c.
2019-04-17 14:37:48 +00:00
nicm
9430fe9e31
Move job struct into job.c.
2018-08-23 15:45:05 +00:00
nicm
647c5c1884
SESSION_UNATTACHED flag is no longer necessary now we have an attached
...
count instead.
2018-08-18 20:08:52 +00:00
nicm
5a3b3eba7e
session_groups can be static also.
2018-08-02 11:56:12 +00:00
nicm
49505a585a
Add a missing client-detached hook when the server shuts down, and do
...
not exit until jobs started from run-shell/if-shell have finished (add a
job flags member and a flag to indicate other jobs). GitHub issue 1245.
2018-03-08 08:09:10 +00:00
nicm
0d4a1e1f65
Add exit-empty option to exit server if no sessions (defaults to on).
2018-02-22 10:54:51 +00:00
nicm
039206c66e
Report better error from server when socket create fails, GitHub issue
...
1201.
2017-12-19 15:00:39 +00:00
nicm
514fd64db6
Show exit status and time in the remain-on-exit pane text, mostly from
...
Timo Boettcher in GitHub issue 1103.
2017-10-12 11:32:27 +00:00
nicm
89b52a5b82
Because ignore SIGCHLD early, letting signal_del restore it doesn't work
...
correctly, so set it explicitly back to default (and the others for good
measure).
2017-07-14 18:49:07 +00:00
nicm
189d139378
Block signals between forking and clearing signal handlers (or calling
...
event_reinit) - if the child gets a signal and fires the libevent signal
handler during this period it could write a signal into the parent's
signal pipe. GitHub issue 1001 from Aaron van Geffen.
2017-07-12 10:04:51 +00:00
nicm
c37a9299c6
Move signal code into proc.c.
2017-07-12 09:24:17 +00:00
nicm
bc4816c6f2
Some extra logging to show why tmux might exit.
2017-07-09 22:33:09 +00:00
nicm
f35e5f5203
Do not close panes until process has exited and any outstanding data
...
has been written to the pipe-pane event if there is one. GitHub issue 991.
2017-07-03 08:16:03 +00:00
nicm
79c9b201a7
Support SIGUSR2 to stop and start logging for an existing server. Also
...
we currently only have two log levels so just use -v and -vv rather than
-v and -vvvv, and clarify the man page entry for -v.
2017-06-04 08:25:57 +00:00
nicm
fb807b18af
Memory leaks, from David CARLIER.
2017-04-22 06:13:30 +00:00
nicm
93e732aabe
Make the cmd_find_* functions more obvious when looking for a client,
...
rather than having it inside other functions. Should be no change to the
way targets are resolved just yet.
2017-04-21 20:26:34 +00:00
nicm
aa908d99b4
History needs to be loaded after config parsing is done - now that
...
commands are queued, that's in cfg_done not after start_cfg finishes.
2017-04-21 14:04:54 +00:00
nicm
1a432fef1e
If a #() command doesn't exit, use its most recent line of output (it
...
must be a full line). Don't let it redraw the status line more than once
a second.
Requested by someone about 10 years ago...
2017-04-20 09:20:22 +00:00
nicm
06440b28c5
Instead of numbering session groups, give them a name which may be given
...
to -t instead of a target session. Also allow them to contain only one
session.
2017-02-09 15:04:53 +00:00
nicm
b5d258bb75
Fixed keys for choose mode, and remove the last mode keys bits.
2017-01-24 21:50:22 +00:00
nicm
6a2dc0056a
Do not execute commands for a client until it has identified, fixes
...
problem reported by Frank Terbeck.
2016-11-12 19:04:41 +00:00
nicm
5229e822ec
Notifys can go via the command queue instead of using their own queue.
2016-10-16 19:15:02 +00:00
nicm
765b9a582c
Rewrite command queue handling. Each client still has a command queue,
...
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.
2016-10-16 17:55:14 +00:00
nicm
10b426e0d8
Drain notifys once at the end of the server loop instead of doing it
...
from the end of every command queue (which could be nested).
2016-10-15 00:01:01 +00:00
nicm
9883b791a0
Loads more static, except for cmd-*.c and window-*.c.
2016-10-10 21:29:23 +00:00
semarie
d61e066416
tmux: only consider ACCESSPERMS for setting mode on socket_path.
...
it explicitly removes any S_ISUID|S_ISGID|S_ISTXT bits, instead of letting
pledge(2) silenciously remove them.
ok nicm@ beck@ deraadt@
2016-07-07 09:24:09 +00:00