GithubHelp home page GithubHelp logo

3mux's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

3mux's Issues

Alacritty, Kitty on Wayland

  1. Start kitty
  2. $ 3mux
  3. $ nvim

results in

Error during: pane.go (vt.ProcessStream)
runtime error: index out of range [0] with length 0
Tiling state: Universe[0](Workspace(HSplit[0](Term[104x56]*)))
goroutine 12 [running]:
runtime/debug.Stack(0x55efe8509bc0, 0xc000010018, 0xc000043ac0)
	runtime/debug/stack.go:24 +0x9f
main.fatalShutdownNow(0xc0001be000, 0x4e)
	github.com/aaronjanse/3mux/main.go:125 +0x16e
main.newTerm.func4.1()
	github.com/aaronjanse/3mux/pane.go:112 +0xb5
panic(0x55efe84f5860, 0xc0001a20e0)
	runtime/panic.go:969 +0x16a
github.com/aaronjanse/3mux/vterm.(*VTerm).handleSGR(0xc00021e160, 0xc00001cb34, 0xc)
	github.com/aaronjanse/3mux/vterm/sgr.go:19 +0x8b0
github.com/aaronjanse/3mux/vterm.(*VTerm).DispatchCsi(0xc00021e160)
	github.com/aaronjanse/3mux/vterm/states.go:316 +0xf51
github.com/aaronjanse/3mux/vterm.(*VTerm).StateCsiParam(0xc00021e160, 0x6d)
	github.com/aaronjanse/3mux/vterm/states.go:139 +0x12e
github.com/aaronjanse/3mux/vterm.(*VTerm).Anywhere(0xc00021e160, 0x10000006d)
	github.com/aaronjanse/3mux/vterm/states.go:73 +0x264
github.com/aaronjanse/3mux/vterm.(*VTerm).ProcessStream(0xc00021e160)
	github.com/aaronjanse/3mux/vterm/states.go:39 +0x3d
main.newTerm.func4(0xc00021e160)
	github.com/aaronjanse/3mux/pane.go:115 +0x4f
created by main.newTerm
	github.com/aaronjanse/3mux/pane.go:109 +0x1f7


Please submit a bug report with this stack trace to https://github.com/aaronjanse/3mux/issues
$ nvim --version
NVIM v0.4.3
$ kitty --version
kitty 0.17.2
$ sway --version
sway version 1.4

3mux version r223.f233c25

Hardcoded Shell

By default, the shell binary is hardcoded to zsh.

3mux/shell.go

Line 23 in 9068500

cmd := exec.Command("zsh")

I don't have zsh installed on my machine, resulting in a silent failure. Or, if logging to a file is enabled:

2020/04/11 18:27:11 exec: "zsh": executable file not found in $PATH

Might I suggest that the current shell is read via the $SHELL environment variable?

What is the correct TERM?

Things like arrow keys and delete button don't seem to work correct in either st or xterm. I suspect this is probably related to an incorrect TERM(?) But I couldn't find what the correct one should be? Would be helpful if this was documented instead of trying a few until one works!

Feature Request: Multi seat (user) support

Tmux supports several users viewing the same tmux session.

I suggest implementing this too, but taking the feature one step further, allowing several seats(users) working in different panes / workspaces at the same time.

Use cases could be:

  • side by side teaching. The teacher enters commands in the pane on the right side and the student replicates the commands in the left pane

  • 3mux as service management tool. In several tabs/workspaces different services are run. Several admins can work in different workspaces at the same time.

Thanks a lot for writing 3mux. I once considered implementing such functionality myself in tmux. With the much cleaner codebase of 3mux, adding this feature should take a lot less effort.

Error on macOS 10.14.6

  • Mac Pro (early 2009)
  • macOS 10.14.6
  • go version go1.14.1 darwin/amd64
  • Shell - Alacrity + ZSH (not with OhMyZSH!)
  • Same error occurs with iTerm and Terminal

go get github.com/aaronjanse/3mux completes okay
but 3mux [enter] gives the following...

Stack trace...

Error during: pane.go (shell death)
runtime error: index out of range [0] with length 0
Tiling state: Universe[0](Workspace(HSplit[0](Term[160x49]*)))
goroutine 51 [running]:
runtime/debug.Stack(0x1180c60, 0xc00000e018, 0xc0000a6cf8)
	/usr/local/go/src/runtime/debug/stack.go:24 +0x9d
main.fatalShutdownNow(0xc000016140, 0x49)
	/Users/carlca/Code/go/src/github.com/aaronjanse/3mux/main.go:126 +0x16c
main.newTerm.func2.1()
	/Users/carlca/Code/go/src/github.com/aaronjanse/3mux/pane.go:68 +0xb3
panic(0x1144500, 0xc0001a8040)
	/usr/local/go/src/runtime/panic.go:967 +0x166
main.newTerm.func2(0xc00007e000)
	/Users/carlca/Code/go/src/github.com/aaronjanse/3mux/pane.go:74 +0x230
created by main.newTerm
	/Users/carlca/Code/go/src/github.com/aaronjanse/3mux/pane.go:65 +0x167


Please submit a bug report with this stack trace to https://github.com/aaronjanse/3mux/issues

Error on mac os catalina

  ~ go get github.com/aaronjanse/3mux
# github.com/aaronjanse/3mux
go/src/github.com/aaronjanse/3mux/shell.go:96:11: undefined: pty.Setsize
go/src/github.com/aaronjanse/3mux/shell.go:96:32: undefined: pty.Winsize

3mux crashes when gnome-terminal maximizes

  • start 3mux
  • press Ctrl+b % to split vertically
  • press Super+Upper Arrow to maximize gnome-terminal

Getting:

Error during: bad file descriptor
                                                      Tiling state: Universe[0](Workspace(HSplit[0](VSplit[1](Term[82x12], Term[82x12]*))))
                                                                                                   goroutine 15 [running]:                                    
    runtime/debug.Stack(0x547ee0, 0xc000098008, 0xc000091f28)
                                                             	/usr/lib64/go/1.12/src/runtime/debug/stack.go:24 +0x9d
                                                                              main.fatalShutdownNow(0x527d80, 0x13)
                                                                                                                   	/home/michael/.golang/src/github.com/aaronjanse/3mux/main.go:123 +0x169
                                                                      main.(*Shell).resize.func1(0xc000058300, 0xc0000a4218, 0x19, 0x28)
                                                                                                	/home/michael/.golang/src/github.com/aaronjanse/3mux/shell.go:101 +0xd3
                                                         created by main.(*Shell).resize
      	/home/michael/.golang/src/github.com/aaronjanse/3mux/shell.go:94 +0xc9


        Please submit a bug report with this stack trace to https://github.com/aaronjanse/3mux/issues

config files

I'll probably do this today or tomorrow, unless someone wants to make a PR.

Some ideas:

  • TOML primary config
  • import i3 config (but remap Mod to Alt)
  • import tmux config (maybe too complex)

Got stuck while searching

On iTerm, I had a single panel open in 3mux and did an ls directory listing on a folder with about 2 dozen files. I then searched in the panel using alt+/ and typed "package.json". 3mux panel highlighted the file, but then become non-responsive. I couldn't exit search or even ctrl-c.

Feature suggestion: Built-in help

It would be nice to have a keybinding that creates a new pane, that has the readme/manpage for 3mux open.

Additionally it would be nice to have a bar showing the most common needed keybindings at the bottom, like nano. The visibility of this bar should be configurable.

Alt+Enter opens a pane, not a window

Are you using a different terminology compared to tmux or is this a bug? Do you plan to implement "tab-like" windows like tmux with panes inside them? (and group them into sessions, which you already have an issue open here?)

3mux running vim with a theme is broken

What I did

I tried running a instance of vim inside of 3mux. I just opened a simple bash file and all that got displayed was a bunch of jibberish.

System

I use neovim with a theme and airline inside of kitty. In alacritty I can atleast see some colors, but a places where they shouldnt be. So far I havent found a terminal where everything looks fine with my neovim setup. The same for vim.

Setup fuzzing

The goal of fuzzing is the find bugs that cause panics during a process that should be non-fatal.

Things currently fuzzed:

  • ecma48 parser
  • vterm
  • window manager

tmux bindings are buggy

Error during: pane.go (vt.ProcessStream)
runtime error: index out of range [-1]
Tiling state: Universe[0](Workspace(HSplit[0](Term[181x48]*, Term[-1x48])))
goroutine 38 [running]:
runtime/debug.Stack(0x1183000, 0xc00000e018, 0xc000144a88)
/usr/local/Cellar/go/1.14/libexec/src/runtime/debug/stack.go:24 +0x9d
main.fatalShutdownNow(0xc001c64140, 0x41)
/Users/ghazni/go/src/github.com/aaronjanse/3mux/main.go:125 +0x16c
main.newTerm.func4.1()
/Users/ghazni/go/src/github.com/aaronjanse/3mux/pane.go:112 +0xb3
panic(0x11463e0, 0xc000ef2380)
/usr/local/Cellar/go/1.14/libexec/src/runtime/panic.go:967 +0x15d
github.com/aaronjanse/3mux/vterm.(*VTerm).handleEraseInDisplay(0xc0001b2000, 0x0, 0x0)
/Users/ghazni/go/src/github.com/aaronjanse/3mux/vterm/csi.go:171 +0x38c
github.com/aaronjanse/3mux/vterm.(*VTerm).handleCSISequence(0xc0001b2000)
/Users/ghazni/go/src/github.com/aaronjanse/3mux/vterm/csi.go:87 +0x6e7
github.com/aaronjanse/3mux/vterm.(*VTerm).handleEscapeCode(0xc0001b2000)
/Users/ghazni/go/src/github.com/aaronjanse/3mux/vterm/stream.go:130 +0x158
github.com/aaronjanse/3mux/vterm.(*VTerm).ProcessStream(0xc0001b2000)
/Users/ghazni/go/src/github.com/aaronjanse/3mux/vterm/stream.go:80 +0x35f
main.newTerm.func4(0xc0001b2000)
/Users/ghazni/go/src/github.com/aaronjanse/3mux/pane.go:115 +0x4d
created by main.newTerm
/Users/ghazni/go/src/github.com/aaronjanse/3mux/pane.go:109 +0x1f5

dwm style

Really neat project! Any thoughts on dwm-style layouts like dvtm does it?

I find i3 is kind of finicky for rearranging tiles, and tmux is a bit too complex in general.

Most errors should not be fatal

It's silly to think that a parsing bug should crash the entire multiplexer. It would be better to just tell the user something is weird is happening and to submit logs.

thanks for bring sanity to a terminal multiplexer - and a minor suggestion

Very well done - you brought both functionality and usability to a next-generation terminal multiplexer, I was a long term tmux user, 3mux works far better out of the box!

By the way, a minor suggestion - alt+b and alt+f are used by readline for moving cursor between words, they're very handy as many terminal emulators out there don't correctly handle ctrl+left/right for the same feature. Would you consider using a different default key for making a panel full screen?

Another odd one, I'm using fish on Ubuntu 18.04, this happens to fish when I repeatedly press enter in 3mux:

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.