Rafael Kitover 37b27d2eef Support use as a Windows program outside of Cygwin
If `getenv("SHELL")` is `NULL`, use the function `win32_setenv_shell()`
added to `osdep-win32-cpp.cpp` to set it using the command line of the
parent process, which is retrieved using WMI WIN32 API.

This is a C++ file because the OLE/WMI API is only available for C++.
Adjust the autotools code to add this file and link the necessary
Windows DLLs.

Include some fixed/missing MINGW headers necessary to compile this file.
This will be fixed in the relevant places and they will be removed.

Add a new macro WIN32_PLATFORM for Windows specific functionality, currently
Cygwin and MSYS2, in the future for the native port as well.

When spawning commands using the shell, check for cmd.exe on Windows and
use the `/c` switch, otherwise use `-c` which works for PowerShell,
MSYS2, Cygwin and Git Bash etc..

Adjust code that uses `/tmp/` to use
`$env:USERPROFILE/AppData/Local/Temp/` outside of a Cygwin virtual
filesystem when `/tmp/` is not available, add the function
`win32_get_tmpdir()` and related functions to `osdep-win32.c` for this.

Use `getenv("USERPROFILE")` when `getenv("HOME")` is `NULL`.

When outside of a Cygwin virtual filesystem, use
`C:\ProgramData\tmux\tmux.conf:$USERPROFILE\.tmux.conf:$LOCALAPPDATA\tmux\tmux.conf`
as the config search order.

Use the ncurses term-driver with `TERM="#win32con"` when a terminfo
database is not available. This will require patches to ncurses as well
as MSYS2 and Cygwin to work.

Signed-off-by: Rafael Kitover <rkitover@gmail.com>
2024-10-02 16:01:39 +00:00
2024-03-06 21:45:26 +00:00
2024-09-06 13:09:43 +01:00
2024-10-01 13:40:42 +01:00
2023-08-22 08:43:35 +01:00
2020-05-19 12:34:34 +01:00
2024-05-13 14:01:10 +01:00
2020-04-23 07:15:17 +01:00
2023-09-15 10:01:11 +01:00
2024-09-27 08:56:39 +01:00
2024-08-28 10:27:21 +01:00
2024-03-21 14:01:10 +00:00
2023-07-10 12:01:12 +01:00
2023-01-17 10:01:09 +00:00
2024-02-13 10:01:10 +00:00
2024-02-13 10:01:10 +00:00
2024-05-14 12:01:09 +01:00
2022-12-07 12:01:09 +00:00
2022-05-31 16:13:43 +00:00
2023-09-15 10:01:11 +01:00
2024-03-07 00:01:10 +00:00
2024-05-18 12:01:09 +01:00
2024-09-29 20:05:42 +00:00
2022-08-24 10:01:13 +01:00
2023-04-27 19:16:08 +01:00
2024-08-28 10:27:21 +01:00
2024-08-28 10:27:21 +01:00
2023-08-22 08:43:35 +01:00
2024-10-02 10:01:08 +01:00
2024-09-17 00:01:09 +01:00
2024-09-30 12:01:11 +01:00
2022-05-30 12:55:25 +00:00
2023-06-30 16:01:10 +01:00
2024-10-02 14:01:10 +01:00
2021-01-17 17:52:10 +00:00
2023-02-07 14:01:11 +00:00
2024-02-13 10:01:10 +00:00
2021-11-11 09:18:04 +00:00
2021-11-11 09:18:04 +00:00
2024-08-28 10:27:21 +01:00
2024-08-21 08:01:09 +01:00
2024-10-01 10:01:10 +01:00
2022-05-30 12:55:25 +00:00
2024-04-05 02:01:09 +01:00
2024-08-28 10:27:21 +01:00
2024-10-01 10:01:10 +01:00
2024-08-26 13:02:15 +00:00
2021-08-14 18:39:56 +01:00
2024-10-01 14:01:08 +01:00
2024-08-21 08:01:09 +01:00
2024-09-30 12:01:11 +01:00
2024-07-12 14:30:56 +01:00
2024-08-04 12:01:09 +01:00
2023-07-01 02:01:10 +01:00
2024-10-01 10:01:10 +01:00
2019-11-28 09:51:58 +00:00

Welcome to tmux!

tmux is a terminal multiplexer: it enables a number of terminals to be created,
accessed, and controlled from a single screen. tmux may be detached from a
screen and continue running in the background, then later reattached.

This release runs on OpenBSD, FreeBSD, NetBSD, Linux, macOS and Solaris.

* Dependencies

tmux depends on libevent 2.x, available from:

	https://github.com/libevent/libevent/releases/latest

It also depends on ncurses, available from:

	https://invisible-mirror.net/archives/ncurses/

To build tmux, a C compiler (for example gcc or clang), make, pkg-config and a
suitable yacc (yacc or bison) are needed.

* Installation

To build and install tmux from a release tarball, use:

	$ ./configure && make
	$ sudo make install

tmux can use the utempter library to update utmp(5), if it is installed - run
configure with --enable-utempter to enable this.

To get and build the latest from version control - note that this requires
autoconf, automake and pkg-config:

	$ git clone https://github.com/tmux/tmux.git
	$ cd tmux
	$ sh autogen.sh
	$ ./configure && make

* Contributing

Bug reports, feature suggestions and especially code contributions are most
welcome. Please send by email to:

	tmux-users@googlegroups.com

Or open a GitHub issue or pull request.

* Documentation

For documentation on using tmux, see the tmux.1 manpage. View it from the
source tree with:

	$ nroff -mdoc tmux.1|less

A small example configuration is in example_tmux.conf.

Other documentation is available in the wiki:

	https://github.com/tmux/tmux/wiki

Also see the tmux FAQ at:

	https://github.com/tmux/tmux/wiki/FAQ

A bash(1) completion file is at:

	https://github.com/imomaliev/tmux-bash-completion

For debugging, run tmux with -v and -vv to generate server and client log files
in the current directory.

* Support

The tmux mailing list for general discussion and bug reports is:

	https://groups.google.com/forum/#!forum/tmux-users

Subscribe by sending an email to:

	tmux-users+subscribe@googlegroups.com

* License

This file and the CHANGES files are licensed under the ISC license. All other
files have a license and copyright notice at their start.
Description
No description provided
Readme 56 MiB
Languages
C 87.5%
Roff 7.1%
Shell 2.7%
Yacc 1.3%
M4 0.8%
Other 0.5%