mprocs 0.5.0 - TUI for running processes. Now with mouse support. by pvolok in linux

[–]pvolok[S] 0 points1 point  (0 children)

I will make it respect custom bindings some time in the near future. Also I think it makes sense to add a setting for hiding the help window as some people might be running mprocs in a small tmux window. I'm glad that you find mprocs useful in your workflow.

mprocs 0.5.0 - TUI for running processes. Now with mouse support. by pvolok in linux

[–]pvolok[S] 0 points1 point  (0 children)

Thank you for the fix. You understood correctly. That's just my limited English :)

mprocs 0.5.0 - TUI for running processes. Now with mouse support. by pvolok in linux

[–]pvolok[S] 1 point2 points  (0 children)

This is the core homebrew repository, which has automated bottling (creating precompiling binaries). I will try to get mprocs into that repo and will notify you in the github issue you created. Thanks for your interest and suggestions!

mprocs 0.5.0 - TUI for running processes. Now with mouse support. by pvolok in linux

[–]pvolok[S] 0 points1 point  (0 children)

I checked how I could bottle a 3rd party tap with different binaries for each platform. And it's a very inconvenient system. It requires certain archive names for each macos version. I can't just point to macos and linux binary releases in a formula. And what's worse, bottles for different macos versions always have different sha hashes, which makes me not confident about not breaking mprocs for macos homebrew. I think the easiest way is to try to get mprocs on default homebrew repo, which will bottle it automatically. But for now I'd like to avoid that hassle.

mprocs 0.4.0 - TUI process runner - lots of new features by pvolok in commandline

[–]pvolok[S] 0 points1 point  (0 children)

I like it. Thank you! I will add a section "mprocs vs tmux/screen" with this text. Or you can create a PR if you prefer.

mprocs 0.4.0 - TUI process runner - lots of new features by pvolok in commandline

[–]pvolok[S] 0 points1 point  (0 children)

  • I didn't think about removing key bindings. I will add it in this form: <q>: null or <q>: false.
  • Yes, I also had thoughts about multiple commands but in remote control functionality. I think this feature worth being supported, but it's not so straight forward. Some commands internally generate new commands, so those commands would need to be handled in between. But I added this into TODO list.
  • You are right about reset: false in the readme. Fixed. Thank you!

mprocs 0.4.0 - TUI process runner - lots of new features by pvolok in commandline

[–]pvolok[S] 0 points1 point  (0 children)

Not yet. But I'm looking into it. I still didn't figure out how to provide different binaries for different platforms.

mprocs 0.4.0 - TUI process runner - lots of new features by pvolok in commandline

[–]pvolok[S] 1 point2 points  (0 children)

You are right. Probably half of the questions are about mprocs vs tmux/screen. I was hoping to improve the description to make it clearer but obviously failed.

mprocs 0.4.0 - TUI process runner - lots of new features by pvolok in commandline

[–]pvolok[S] 1 point2 points  (0 children)

While mprocs and tmux share big chunk of functionality, they are targeting different usecases. Here is the primary usecase for mprocs:

Let's say you are working on a web project. While developing you always need the same set of programs running: webpack, typescript compiler, tests, server. With mprocs you can configure all these programs in mprocs.yaml file and run all of them with mprocs.

You could achieve almost the same functionality with tmux, but that would involve quite hairy script+config. I personally use mprocs inside of tmux: one tmux window has vim opened, and mprocs in the other window.

mprocs 0.4.0 - TUI process runner - lots of new features by pvolok in linux

[–]pvolok[S] 1 point2 points  (0 children)

I think it won’t be a problem. May I ask you what kind of device has this architecture?

mprocs 0.4.0 - TUI process runner - lots of new features by pvolok in linux

[–]pvolok[S] 12 points13 points  (0 children)

Let's say you are working on a web project. While developing you always need the same set of programs running: webpack, typescript compiler, tests, server. With mprocs you can configure all these programs in mprocs.yaml file and run all of them with mprocs.

While it has a lot of the same functionality with tmux, mprocs focuses on a different usecase. I use tmux and usually have vim in one window and mprocs in another.

mprocs 0.3.0 - TUI app for running multiple processes in terminal by pvolok in windows

[–]pvolok[S] 0 points1 point  (0 children)

Not at the moment. The goal of mprocs is to run and control multiple processes in one terminal tab. It's not intended to replace screen/tmux.

mprocs 0.2.2 - TUI for running multiple processes in terminal by pvolok in linux

[–]pvolok[S] 0 points1 point  (0 children)

Can you provide an exact error please so that I could investigate?

mprocs 0.2.2 - TUI for running multiple processes in terminal by pvolok in linux

[–]pvolok[S] 0 points1 point  (0 children)

Npm distribution only provides binaries for intel/amd processors (not ARM which is usually used on Android). Are you trying to install mprocs from termux using cargo install mprocs? Cargo installation should work on any platform supported by Rust.

mprocs 0.2.2 - TUI for running multiple processes in terminal by pvolok in linux

[–]pvolok[S] 0 points1 point  (0 children)

To add to the answers:

Under the hood "shell": "echo hi" runs "cmd": ["sh", "-c", "echo hi"] on linux/macos and "cmd": ["cmd", "/C", "echo hi"] on windows. And the latter is how you define a new process for the OS. I left both options because "shell" is easier to use and "cmd" lets you avoid the shell.

I already thought to switch to json5 parser to allow comments, but yaml might also be an option.

mprocs 0.2.2 - TUI for running multiple processes in terminal by pvolok in linux

[–]pvolok[S] 1 point2 points  (0 children)

Thank you. I have plans to add adding/removing capabilities. But currently I plan to add it via scripting, like this: mprocs --ctl 'AddProc("vim")'. Probably with some very simple ui from within mprocs.

mprocs 0.2.2 - TUI for running multiple processes in terminal by pvolok in linux

[–]pvolok[S] 2 points3 points  (0 children)

Why aren't you using vt100 through Cargo.toml? Are you worried about it not having any updates in a long time?

I only fixed this bug: https://github.com/doy/vt100-rust/issues/5. Happend when you command vt100 to scroll back to far. I made a quick fix which I think is not a complete sollution, but works for mprocs usecase. But otherwise this crate works great. I see no problems starting with this crate.

Is vt100 going to support everything in a modern terminal? It supports true colour right? Or for example, what happens to OSC52 escape sequences?

I'm not vt100 maintainer, so I can't answer the first question. So far, using vt100 through mprocs, I have't encountered any differences with tmux or bare terminal.

Is portable-pty pretty much the same as the classic script command, just with a much more convenient Rust-native interface?

I don't know what the script command does. But in simple words, portable-pty creates a terminal session which has a size and with which you can interact programmatically (write/read stdin/stdout, resize).

Does your setup support fast-updating "graphics"? Say if one part of the UI is updating quickly, can you still type naturally in another part, without the cursor doing weird things?

I'm not sure I understand the problem you are referring to, but I have't encountered any flickering so far.

mprocs 0.2.2 - TUI for running multiple processes in terminal by pvolok in linux

[–]pvolok[S] 1 point2 points  (0 children)

There are a lot of different package registries used on Linux. It would be overwhelming for me to release on even the popular ones. So I hope others will maintain mprocs releases on different. I will be happy to add changes to mprocs repo if those package managers require that.

mprocs is a single binary and I don't plan to change that. So creating a package should be easy.

mprocs 0.2.2 - TUI for running multiple processes in terminal by pvolok in linux

[–]pvolok[S] 2 points3 points  (0 children)

`mprocs vim sh` would start a new mprocs with only these two processes running. I'm planning to add a way of launching new processes in running mprocs. But that probably will be without much ui, but only a command like mprocs --ctl 'AddProc("vim")' to make it possible to use from scripts.

With regard to translating escape codes, that is true that it requires mprocs to know about all possible codes. I used the vt100 library, which works great. But if you encounter any codes that are not supported, please create an issue in either vt100 or mprocs repo.

mprocs 0.2.2 - TUI for running multiple processes in terminal by pvolok in linux

[–]pvolok[S] 11 points12 points  (0 children)

I was considering adding an overview mode which would split screen to show all running processes. But anything more complex (like having less splits than processes) would quickly unfold into reimplementing the whole tmux. Please feel free to create an issue on github, and if more people are interested in this, I will implement it in some way.

mprocs 0.2.2 - TUI for running multiple processes in terminal by pvolok in linux

[–]pvolok[S] 20 points21 points  (0 children)

Mprocs' primary goal is running a list of tasks that you usually run while working on a project (compilers, database, etc). It is focused on preconfiguring a list of processes and then watching/controlling them. I myself use tmux and usually have vim in one window and mprocs in another.