Open codehz opened 11 months ago
Wooo! A Windows API that'll let us polyfill POSIX PTY APIs!
is it possible to make tmux working on win10 after the polyfill is done?
I don't know what pty support has to do with tmux. The APIs you mentioned are going to help programs like examples/script.c
work on Windows. What's tmux? Is that a cmd.exe alternative? I recommend using Windows Terminal Preview from the Microsoft Store or the old fashioned cmd.exe. Contributions welcome on supporting other terminals.
I don't know what pty support has to do with tmux. The APIs you mentioned are going to help programs like
examples/script.c
work on Windows. What's tmux? Is that a cmd.exe alternative? I recommend using Windows Terminal Preview from the Microsoft Store or the old fashioned cmd.exe. Contributions welcome on supporting other terminals.
it is provided in cosmos... https://cosmo.zip/pub/cosmos/bin/tmux tmux could be used as terminal multiplexer, the thing is it can be run in background, user can "connect" it later to view the result It is particularly advantageous when used for remote access. Considering that you want run some one-time commands in a remote server, but need to run for a long time, and you need to come back to check the results at any time, you definitely do not want to maintain the ssh connection for a long time.
it seems another blocker is the unix socket, but I think it is also provided in latest windows version
Ah yes, I understand now. Yes, there's a strong chance program like tmux
and screen
will work on Windows if we polyfill syscalls like posix_openpt()
using the WIN32 APIs you suggested. It's going to be a bit invasive and painful to do though. CreatePseudoConsole
requires that we create five separate WIN32 handles, whereas the POSIX API only makes two file descriptors. We'd likely need a pointer in struct Fd
that points to a reference-counted object that holds phPC
. We'd need to define a new file descriptor "kind" for PTYs.
I've added the WIN32 APIs themselves so far. As much as I'd love to have GNU Screen on Windows, I don't have the cycles to complete this right now. Contributions are welcome if anyone has an itch to scratch, and is willing to collaborate closely on Discord while they work on this.
if someone takes this, port this better :p sixel-tmux
it is useful for create cross-platform remote shell service (not for evil usage) there is the win api prototype
ref https://learn.microsoft.com/en-us/windows/console/pseudoconsoles https://learn.microsoft.com/en-us/windows/console/creating-a-pseudoconsole-session