peopleadmin / tweemux Goto Github PK
View Code? Open in Web Editor NEWEasy multi-user tmux session sharing (tinier than wemux)
License: Other
Easy multi-user tmux session sharing (tinier than wemux)
License: Other
running tweemux
with no commandline arguments produces this error:
/Users/ogredude/.rvm/gems/ruby-1.8.7-p352@global/gems/tweemux-1.2.0/lib/tweemux.rb:22:in understand': undefined method
[]' for nil:NilClass (NoMethodError)
from /Users/ogredude/.rvm/gems/ruby-1.8.7-p352@global/gems/tweemux-1.2.0/lib/tweemux.rb:10:in run' from /Users/ogredude/.rvm/gems/ruby-1.8.7-p352@global/gems/tweemux-1.2.0/bin/tweemux:3 from /Users/ogredude/.rvm/gems/ruby-1.8.7-p352@global/bin/tweemux:19:in
load'
from /Users/ogredude/.rvm/gems/ruby-1.8.7-p352@global/bin/tweemux:19
from /Users/ogredude/.rvm/gems/ruby-1.8.7-p352@global/bin/bundler_wrapper:23
$ tweemux at xxx.xxx.xxx.xxx
: Running; ssh xxx.xxx.xxx.xxx -t tmux -S /tmp/tweemux.sock attach # Connect to xxx.xxx.xxx.xxx, demand a pty, then attach to session
Password:
bash: tmux: command not found
Connection to xxx.xxx.xxx.xxx closed.
Since I'm using Homebrew, tmux
isn't in the default path.
What I had to do was change my /etc/sshd_config
to AllowUserEnvironment
to yes
, and then add this to my pair user's ~/.ssh/environment
file:
PATH=/usr/local/bin:/usr/local/opt/coreutils/libexec/gnubin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/X11/bin:/usr/local/share/npm/bin/
You don't actually need the NPM or CoreUtils paths, but I figured what the hell.
Anyway, is there another way of handling this?
Showoff / forwardhq.com for ideas
Perhaps just force TERM=screen-256color
(Just reinvokes starting with ARGV)
I'm not sure which directory you're aiming at in lib/tweemux/action/help.rb line 5, but it's not hitting the right place on my box.
For me, it's trying to read ~/README.md
Fish-n-Chips:~ ericf$ tweemux
/Users/ericf/.rvm/gems/ruby-1.8.7-p352/gems/tweemux-1.4.1/lib/tweemux/action/help.rb:6:in read': No such file or directory - /Users/ericf/README.md (Errno::ENOENT) from /Users/ericf/.rvm/gems/ruby-1.8.7-p352/gems/tweemux-1.4.1/lib/tweemux/action/help.rb:6:in
run'
from /Users/ericf/.rvm/gems/ruby-1.8.7-p352/gems/tweemux-1.4.1/lib/tweemux/action.rb:8:in call' from /Users/ericf/.rvm/gems/ruby-1.8.7-p352/gems/tweemux-1.4.1/lib/tweemux.rb:11:in
run'
from /Users/ericf/.rvm/gems/ruby-1.8.7-p352/gems/tweemux-1.4.1/bin/tweemux:3
from /Users/ericf/.rvm/gems/ruby-1.8.7-p352/bin/tweemux:19:in `load'
from /Users/ericf/.rvm/gems/ruby-1.8.7-p352/bin/tweemux:19
from /Users/ericf/.rvm/gems/ruby-1.8.7-p352@global/bin/bundler_wrapper:23
I'm not sure if I understand the full behavior, but we have a report that a user did like:
cd myproj # triggering .rvmrc
tweemux host # causing a complaint that it needs to be added to the bundle
Something seems off. Perhaps that rubygems-bundler is in play? Perhaps a funky .rvmrc
is auto-prefixing with bundle exec
somehow?
Not sure, but it needs investigation, and at the least an entry in a "Troubleshooting" section of how to respond to this error, even if it's, "Give up and add gem 'tweemux'
to your Gemfile"
Guest could do like:
ssh thehost tmux -S /tmp/tweemux.sock list-clients | sed 's/.[//; s/ .//
One of the wemux features is "Rogue Mode". Personally, I like the discipline of "One Driver, one Navigator", but I don't want to get in the way of someone's workflow.
To support this, you just need:
tmux new-session -t0
It says "Make a new session, who is targeted at session 0
."
The only iffy parts are:
tweemux at foo.com rogue
0
? Right now, I'm thinking not. If people want to do advanced stuff, they can probably just run the tmux commands directly.For example, imagine two users, Larry and Balki, have identical resolutions,
but Larry is at 100x100 on 10pt font, Balki is at 50x50 on 14pt font.
There are other cases, but this is an example of the idea.
Currently, if you 'tweemux host' a 2nd time, it'll just add another session.
Not completely harmful, but it's surprising and does have some negative effects.
No fwd needed
Verify that this works if installed to /Library/Ruby/Gems
A.K.A. "what happens when you 'sudo gem install tweemux' on OS X Lion"
Maybe it should just try mosh, if it's installed?
Or maybe it should work like:
tweemux mat ...
# ^ like 'tweemux at ...' but uses mosh
Part of bro/sis
As much as I loathe Google's looming size, it is true that Google communication
tools might work for people where SIP/Skype/POTS might not.
Add users
Enable sshs
Probably depends on #15
So gem install tweemux && tweemux on ___
doesn't work for rbenv users.
The workaround is to have them do something like this:
gem install tweemux
exec $SHELL
tweemux on ___
And a possible workaround would be (untested):
gem install tweemux && bash -c 'tweemux on ___'
Which is kinda gross.
Perhaps the best thing would be one of those post-install messages (like from
HTTParty) where it detects the use of rbenv and tells them they'll have to
exec $SHELL
. Iunno.
So they can be pasted in. Right now it says :Running
…probably getting time to also add tweemux unshare
or similar, so we can kick users off and chmod 700 /tmp/tweemux.sock
Sometimes you get in a situation where /tmp/tweemux.sock.lock exists, and tmux
unceremoniously refuses to start.
I'm not sure what the consequences of blindly removing it might be. This might be the moment that spelunking the tmux source first becomes necessary.
Not everyone knows how to ^B
and stuff.
This requires you to know the guest's local username as well as setting up individual accounts per guest.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.