Commit Graph

82 Commits

Author SHA1 Message Date
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
Thomas Adam
25b1cc1e8e Merge branch 'obsd-master' 2024-09-30 12:01:11 +01:00
nicm
f95d055e04 Only use default-shell for popups, return to /bin/sh for run-shell,
if-shell and #() - these have been documented as using /bin/sh for a
long time and scripts rely on it. Pointed out by Gregory Pakosz.
2024-09-30 07:54:51 +00:00
Thomas Adam
692bae9ea6 Merge branch 'obsd-master' 2024-08-21 08:01:09 +01:00
nicm
c7e61a01e5 Revamp extended keys support to more closely match xterm and support
mode 2 as well as mode 1. From Stanislav Kljuhhin (GitHub issue 4038).

This changes tmux to always request mode 2 from parent terminal, change
to an unambiguous internal representation of keys, and adds an option
(extended-keys-format) to control the format similar to the xterm(1)
formatOtherKeys resource.
2024-08-21 04:17:09 +00:00
Thomas Adam
3c3643f580 Merge branch 'obsd-master' 2024-03-21 14:01:10 +00:00
nicm
6c0067c103 Do not notify window-layout-changed if the window is about to be
destroyed (since it may have been freed by the time the notify happens),
from Romain Francoise in GitHub issue 3860.
2024-03-21 11:30:42 +00:00
Thomas Adam
6a45e6c256 Merge branch 'obsd-master' 2023-08-15 10:01:09 +01:00
nicm
b770a429c6 Add an option menu-selected-style to configure the currently selected
menu item, from Alexis Hildebrandt.
2023-08-15 07:01:47 +00:00
Thomas Adam
4c60afde78 Merge branch 'obsd-master' 2023-08-08 12:01:10 +01:00
nicm
dee72ed41f Add options and flags for menu styles similar to those existing for
popups, from Alexis Hildebrandt. GitHub issue 3650.
2023-08-08 08:08:47 +00:00
Thomas Adam
29a5dfc7c0 Merge branch 'obsd-master' 2023-06-21 08:01:08 +01:00
nicm
645bf8b3ab Check fdopen return value, from Christian Menges. 2023-06-21 06:28:18 +00:00
Thomas Adam
f41c536ff3 Merge branch 'obsd-master' 2023-06-08 14:01:09 +01:00
nicm
bdd05bdbd3 Fix mismatch between function prototype and definition, from Anindya
Mukherjee.
2023-06-08 11:17:28 +00:00
Thomas Adam
22eb0334c3 Merge branch 'obsd-master' 2023-03-15 22:01:09 +00:00
nicm
a9ac614691 Do not leak screen in popups, GitHub issue 3492. 2023-03-15 19:23:22 +00:00
Thomas Adam
c42087c789 Merge branch 'obsd-master' 2023-01-21 00:01:11 +00:00
nicm
3aa458ea63 Add a flag to display-menu to select the manu item chosen first, GitHub
issue 3442.
2023-01-20 21:36:00 +00:00
Thomas Adam
2be5488693 Merge branch 'obsd-master' into master 2022-02-22 14:01:10 +00:00
nicm
a9b880921d Use correct size for screen when popup is created without borders. 2022-02-22 11:01:57 +00:00
Thomas Adam
722f395e61 Merge branch 'obsd-master' into master 2022-02-16 22:01:11 +00:00
nicm
0027ee13a0 Support more mouse buttons when the terminal sends them, GitHub issue
3055.
2022-02-16 18:55:05 +00:00
Thomas Adam
a5cf7a9b39 Merge branch 'obsd-master' into master 2022-02-01 20:01:13 +00:00
nicm
97900d0442 A menu must be shown on a client, so always give the client when adding
the items. Also fix mode menus.
2022-02-01 18:12:20 +00:00
Thomas Adam
6c0397f497 Merge branch 'obsd-master' into master 2022-01-17 12:01:10 +00:00
nicm
a6b361e775 Do not try to strdup NULL, from seL4 at disroot dot org in GitHub issue
3038.
2022-01-17 10:40:03 +00:00
Thomas Adam
3934d9b24d Merge branch 'obsd-master' into master 2021-10-25 12:01:11 +01:00
nicm
ef46eb91a5 Add -s and -S to display-popup to set popup and border style, from
Alexis Hildebrandt in GitHub issue 2931.
2021-10-25 09:38:36 +00:00
nicm
0cca695d6e Instead of setting the popup default colours in the draw callback, set
it up in popup_display and follow the same routine as panes in the draw
and init_ctx callbacks - use the palette if the option value is default.
Allows application-set fg and bg to work in panes again.
2021-10-25 09:22:17 +00:00
Thomas Adam
1bf2f811ea Merge branch 'obsd-master' into master 2021-10-20 14:01:15 +01:00
nicm
acba07629e Remove a TODO comment. 2021-10-20 09:52:27 +00:00
Thomas Adam
264fe7fc2a Merge branch 'obsd-master' into master 2021-10-14 16:01:20 +01:00
nicm
add20637f2 Add popup-border-lines option to set popup line style, from Alexis
Hildebrandt, GitHub issue 2930.
2021-10-14 13:19:01 +00:00
Thomas Adam
fb23df679b Merge branch 'obsd-master' into master 2021-10-13 14:01:16 +01:00
nicm
837ca176d1 Add popup-style and popup-border-style options, from Alexis Hildebrandt
in GitHub issue 2927.
2021-10-13 09:28:36 +00:00
Thomas Adam
aff2a473ec Merge branch 'obsd-master' into master 2021-10-11 16:01:13 +01:00
nicm
b8581ec80e Make positions hidden by overlays range-based rather than character-based,
from Anindya Mukherjee.
2021-10-11 13:27:50 +00:00
Thomas Adam
af82106fae Merge branch 'obsd-master' into master 2021-10-11 14:01:13 +01:00
nicm
759efe1b33 Add -e flag to set environment for popup, from Alexis Hildebrandt in
GitHub issue 2924.
2021-10-11 10:55:30 +00:00
nicm
1a7eb6ca90 Revert previous; this is not how it should work. 2021-08-17 08:22:44 +00:00
nicm
158f0e8c41 Start sync before drawing popup. 2021-08-17 07:14:33 +00:00
Thomas Adam
79f075bf1b Merge branch 'obsd-master' into master 2021-08-14 01:35:27 +01:00
Thomas Adam
54773d23b5 Merge branch 'obsd-master' into master 2021-08-14 01:34:54 +01:00
nicm
7d7d7c9605 Tweak how mouse works on popup: only Meta alone resizes or moves, not
Meta with other modifiers; button 2 on the left or top border opens
menu, right or bottom resizes; button 1 on any border moves.
2021-08-13 23:05:40 +00:00
nicm
63aa968642 Check callback needs to only return 0 (text should be suppressed) if
menu returns 0, otherwise it should check the popup also.
2021-08-13 20:04:45 +00:00
nicm
7a0cec5ecf Fill in some other bits on new panes. 2021-08-13 19:55:11 +00:00
nicm
2588c3e52e Add menu options to convert a popup into a pane. 2021-08-13 19:27:25 +00:00
nicm
92615b534a Adjust overlay check callback before drawing data from pty. 2021-08-13 19:25:24 +00:00
nicm
7789639b5d Add a menu when a popup is present (mouse only for now). 2021-08-13 18:54:54 +00:00