e00853ee82
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
73b2277af8
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
a18d1146aa
Add missing time.h to tty.c (from Ismail Donmez), also remove some stray
...
spaces.
2024-05-14 10:11:09 +00:00
f09cde2542
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
9456258ccc
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
cdacc12ce3
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
9c89f7c2af
Store time lines are scrolled into history and display in copy mode.
2022-06-21 09:30:01 +00:00
cd692b5a68
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
207b1bc385
Report error if creating socket fails with -D.
2022-03-28 07:40:57 +00:00
422fcd294a
Fix exit message if creating socket fails.
2022-03-25 06:14:42 +00:00
6c659494f5
Fix warnings, from Jan Tache in GitHub issue 2692.
2021-06-10 07:45:43 +00:00
ee0df1b8f8
Tidy old jobs every hour instead of every 30 seconds.
2021-03-11 07:08:18 +00:00
2b58c226db
Add a couple of helper functions, and flush imsgs on exit.
2021-02-11 09:39:29 +00:00
869c0e860f
Fix some warnings, GitHub issue 2382.
2020-09-16 18:37:55 +00:00
2372b0fdc6
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
a54a88edd6
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
dceb6a15d0
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
367b4e4e0f
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
78595457f9
Add 'e' key in buffer mode to open the buffer in an editor.
2020-05-16 15:24:28 +00:00
2a5702a936
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
ae541287d3
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
e37f34facc
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
e128c7fcd8
Replace the various identical error callbacks with a single one in cmd-queue.c.
2019-05-20 11:46:06 +00:00
78287e27c8
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
bceccc6b63
Move job struct into job.c.
2018-08-23 15:45:05 +00:00
bd2896b65e
SESSION_UNATTACHED flag is no longer necessary now we have an attached
...
count instead.
2018-08-18 20:08:52 +00:00
fb1f0fee5a
session_groups can be static also.
2018-08-02 11:56:12 +00:00
19f3a5c612
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
623f4b12d3
Add exit-empty option to exit server if no sessions (defaults to on).
2018-02-22 10:54:51 +00:00
b20a00f93e
Report better error from server when socket create fails, GitHub issue
...
1201.
2017-12-19 15:00:39 +00:00
a5fd5782f8
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
932f6cfbfc
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
51112221ee
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
0453ad0146
Move signal code into proc.c.
2017-07-12 09:24:17 +00:00
58b796608f
Some extra logging to show why tmux might exit.
2017-07-09 22:33:09 +00:00
28687f2d55
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
adf5628087
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
2c9bdd9e32
Memory leaks, from David CARLIER.
2017-04-22 06:13:30 +00:00
efaf4c16cf
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
428be9803c
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
0b44ad99b5
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
c6a3446398
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
b7398a4918
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
026ad08b56
Notifys can go via the command queue instead of using their own queue.
2016-10-16 19:15:02 +00:00
ddc4512d2e
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
9b3ae84993
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
c426e485e5
Loads more static, except for cmd-*.c and window-*.c.
2016-10-10 21:29:23 +00:00
fc118e13a9
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
ec82fcdfea
Bump the listen() backlog up, some people have scripts that run up a lot
...
of clients quickly.
2016-03-30 13:20:07 +00:00
995af0e2b7
I no longer use my SourceForge address so replace it.
2016-01-19 15:59:12 +00:00