Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WezTerm => multi-platform TMUX #95

Open
aaronnickovich opened this issue Oct 1, 2023 · 1 comment
Open

WezTerm => multi-platform TMUX #95

aaronnickovich opened this issue Oct 1, 2023 · 1 comment

Comments

@aaronnickovich
Copy link

I want to suggest alternative to tmux for this setup --> WezTerm is a shell emulator written in rust, configured with lua: https://wezfurlong.org/wezterm/

I used tmux at work but I wanted a solution for multiplexing in Windows at home. I discovered a way to automate my setup of my different terminal-based workflows! Whats nice is it also has a CLI interface like tmux, so I think it's possible to use neovim to trigger a session swap. Otherwise, WezTerm itself can handle session swaps in it's own lua scripts.

As an example, I use WezTerm's lua scripts to define and swap amongst these workspaces:

  • Hobby gamedev
    • opens or creates 'cmd.exe /k C:/Program Files (x86)/2019/Community/VC/Auxiliary/Build/vcvars64.bat /k '
  • Website
    • opens powershell.exe on my website project folder, then executes "nvim ."
  • Home automation
    • opens a remote ssh to my raspberry pi

There is also a command launcher where I can create a list of common CLI commands. Then, use keybindings to execute their number or a keybinding to show a menu listings the options like this:
Screenshot 2023-10-01 001440

Also, WezTerm maintainer is a very nice dude!

Anyways, let me know if this is something you'd like!

@darianmorat
Copy link

WezTerm is definitely the best option... Even for the blazingly fast part.
Here a few tmux-like bindings:

   { key = '0', mods = 'LEADER', action = wezterm.action.ActivateTab(0) },
   { key = '1', mods = 'LEADER', action = wezterm.action.ActivateTab(1) },
   { key = '2', mods = 'LEADER', action = wezterm.action.ActivateTab(2) },
   { key = '3', mods = 'LEADER', action = wezterm.action.ActivateTab(3) },

   { key = 's', mods = 'LEADER', action = wezterm.action.ShowTabNavigator },

   { key = 'l', mods = 'LEADER', action = wezterm.action.ActivateLastTab },
   { key = 'n', mods = 'LEADER', action = wezterm.action.ActivateTabRelative(1) },
   { key = 'p', mods = 'LEADER', action = wezterm.action.ActivateTabRelative(-1) },

   { key = 'c', mods = 'LEADER', action = wezterm.action{SpawnTab="CurrentPaneDomain"} },
   { key = 'd', mods = 'LEADER', action = wezterm.action{CloseCurrentTab={confirm=true}} },

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants