Terminology – a new terminal emulator
enlightenment.org
enlightenment.org
Transparency without blur might be problematic though.
Granted, it is much more heavily used in screenshots than it is anything else. :)
Yeah, its useless. But a bit of candy is not to bad.
So, as other commenters have pointed out, using blur and/or 80% opacity helps with this. One thing I haven't seen (with this terminal or any other) is to actually outline each character in black (assuming white on black color scheme). That would give some much needed contrast, while still allowing areas with no text to be visible without much or any blurring and perhaps not needing the opacity set so high.
Edit: That sounded a little more negative than I meant it. I'm actually a fan of transparent or backgrounds, but I think they need a lot of tint/blur to them or they become distracting and/or make the text unreadable. This was evident in the video where I couldn't read a lot of the grey text once the background picts were enabled.
Though the use case for video still eludes me. :-)
It's very clean and nice looking... I don't understand how this is distracting.
Otherwise, I'd be running tmux on my local machine, then want to run tmux on a remote machine, and nesting terminal multiplexers is not good.
I have a shell function called 'go' that creates a new screen and labels it, connects to the remote host via SSH, and then recreates or re-attaches to the remote scren as appropriate. My top level screen session currently has 8 remote hosts I'm logged into, each running their own nested screen sessions.
My go() function also reads my ~/.ssh/config file to grab all my host aliases so I can tab complete to them. Note, I'm a Perl programmer, and rarely write shell scripts, so this function may be kinda ugly.
go()
{
local OPTIND OPTARG
local SCREENCMD="screen -dRR"
while getopts "xn" flag; do
case "$flag" in
x) SCREENCMD="screen -xRR"; shift;;
n) SCREENCMD=""; shift;;
esac
done
if [ "$#" == "0" ]; then
echo "Need someplace to go."
return 1;
fi
while (( "$#" )); do
screen -t $1 ssh -tq $1 $SCREENCMD
shift
done
}
_go_show()
{
local curr opts
cur="${COMP_WORDS[COMP_CWORD]}"
opts=$(grep 'Host ' ~/.ssh/config | cut -d' ' -f2)
COMPREPLY=( $(compgen -W "${opts}" ${cur}) )
}
complete -F _go_show goIt kind of sucks if you accidentally use a hardstatusline in both the nesting and the nested muxes, and it slightly sucks if you use the same escape key for both/all levels of nesting.
I have been using a nested screen setup for ~3 years at home and it's great. My outer screen uses ^Z as its escape key (I ^Z very few commands) and the inner ones use ^O.
It works wonderfully, and I never have a problem remembering which screen has what because of the different escape keys. It's sort of like the finger memory that you develop if you use multiple workspaces (esp in a WM that supports tagging windows) and always keep the same things on the same workspaces.
also, using ^a^a to send commands to the nested tmux isn't so bad.. but to get to the third one down you need to use ^a^a^a^a as you need to send a ^a^a to the second one in..
for the fourth nest you need 8 ^a's, but again, it's a bit like code indentation, if you're 4 tmuxes deep, then there's a good chance you're doing it wrong
but still, it's nice to be able to do it if necessary
Tabbing and whatnot are something the WM (in my case, i3) handle far better than a specific program.
For example it also allows you to detach/reattach your running session, which is invaluable if you're working remotely, and especially if you have a flaky connection. I've used it in several instances where there is more than one person handling DB upgrades and the like. You can have several panes/tabs open, vim with upgrade notes, and everyone connecting and working as needed. It beats the crap out of constant copying/pasting pieces of code and terminals on some IM program to make sure everyone sees what you're seeing.
I usually also end up running it locally and bypassing the terminal emulator and WM's multiplexing abilities, but it's more out of a desire to use the same tool whether I'm running locally or on some remote box. If you don't need the latter, it's a bit harder to justify using it, even though it still has some advantages, like generally being more scriptable.
I use dtach(1) for this. I'm sure tmux is far more powerful, but dtach is much simpler and does all I need at this point. It's still less than a year since I learned Vim, so I'm taking a break from learning arcane programs with a zillion options for a while :P
also, running tmux locally has the advantage that if you need to leave the office or go somewhere, you can still reattach to your work machine and pick up from where you left off.. so, in a sense, everything is remote
Also, Is there any reason not to use just urxvt (without the client/daemon setup)? I've never had a crash that has brought down all of my clients, however.
at the time, I think I was on some kind of network where urxvt's terminfo wasn't likely to be installed anywhere. I know I could install it everywhere in ~/.terminfo or whatever, but it was a pain to get to a new host and realize that I hadn't set it up. I went back to xterm.
If you use a mac, I encourage you to try iTerm2/tmux-git. The combination allows you to reconnect to a remote tmux session and get a window with all of your tabs for that server. You'll never need to know the tmux commands again. You'll just use your native commands to switch tabs, search the history, see the list of open tabs, open new tabs, etc. This is the killer setup.
- Multi-plexing in the terminal
- screen/tmux
- multi-plexing in the WM
And it's pretty nice ! Written by hackers, for hackers.
I've been stacking screen sessions for years, so this is really exciting. Thanks!
Maybe these things can be enabled in tmux somehow? I know on a mac tmux/iTerm can do these things, but I'm on linux.
setw -g mouse-select-window on
setw -g mouse-select-pane on
setw -g mouse-resize-pane on
It's the price you pay for emulating a 35 years old piece of hardware[1] inside an emulator of the same...
With tmux's copy-mode, you can even select text without touching your mouse, using e.g. vim-like movements. Which is amazing feature.
The fact, that the copy-mode doesn't jump back down with every change on stdout is also very nice feature.
If you want to work with standard linux clipboard, you still can - just hold shift and select like in almost any linux TUI application.
On a random note, why do all unix applications (generalising I know) seem to default to a super-minimal set of options? Surely the kind of people who get annoyed by mouse integration (and you can just ignore it) are the kind of people who can find out how to turn it on, whereas those of us who are using tmux for the first time want all the nice options turned on by default?
I say this as someone who reads reddit quite a bit.
On the plus side, it feels really snappy. Impressive speed indeed.
I do like some of the classic monospace fonts like 6x13, but my monitor resolution is just too high for that.
that one would help a lot.
(i used to have a very visible window manager active border and shadows, and also lower the opacity of the non-focused ones... but gnome 3 designers in all their wisdom decided i didn't need all that)
Themes like that are very easy to change to suit yourself.
But gnome3...
I'm only using it because I'm stubborn. And because i maintain one somewhat popular gui app and i want to test it where i know none of other contributors are testing
As to all the "uhh, i don't want additional stuff" comments: There is no reason a terminal emulator can look nice as long as it doesn't distract. And so far, terminology does a really good job! And good, does it look sexy.. ;)
Keep up the development of terminology, one user here for sure! ;)
As I said it's still a work in progress.
For the neatest demo of what you might want to do, download the development version of Elive -- there is a demonstration showing how the terminal can have a transparent video (or is it rendered EFL/OpenGL?) as a background.
The terminal shows promise, and I don't think I've filed a bug that hasn't been corrected and closed, so if anyone with more expertise can replicate problems as I've described, maybe you should do that.
I'm currently working on text reflow when resizing terminology.
I just fired up a virtualbox. All you have to do to see the misbehavior is run 'ps wuax' in a regular 80x24 terminology and then go to fullscreen. Your cursor winds up in the middle of the screen, above some of the text that used to show before the cursor, and before the cursor is a big empty space or certainly nothing sensible.
I just confirmed that my build from 3/20 has the problem, and a newer build on 3/25 has the same issue.
I will file a ticket if you can't reproduce right away, and gladly help out!
sudo apt-add-repository ppa:hannes-janetzek/enlightment-svn
sudo apt-get update
sudo apt-get install terminology
great effort coming along. I'm sticking with terminator for now but will keep my eye on terminolog.
[buster@Fry➔ ~] terminology
terminology: symbol lookup error: /usr/lib/libelementary.so.1: undefined symbol: ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_ACTIVATEFor me, I wasn't able to finish apt-get upgrade without uninstalling an old libefl and all of its dependencies (some libraries that have been since merged into libefl I think), then installing again.
Try doing `apt-get dist-upgrade`
CTRL-Pgup and Pgdown, trying tomorrow :)
sudo apt-add-repository ppa:hannes-janetzek/enlightenment-svnI’ve done the same thing both in Linux and now on OS X, by using various 'open' commands or – on OS X – 'qlmanage -p', which opens a QuickLook window for a file, just like the video is showing, but it’s system wide and not in my terminal.
And this is not a “OS X had this before” post, it’s just that the feature seems more fit to an external program to me. I’m trying not to type unix philosophy here, but it’s going right against it.
find | xargs tycat | less
and scroll around with the data? Can it work remotely?In tycat.c, you can see some code like: if (mode == CENTER) snprintf(buf, sizeof(buf), "%c}ic#%i;%i;%s", 0x1b, w, h, path);
Because the path is given, it won't work remotely.
find | xargs tycat should work but doesn't (one more bug to fix :D ).
tyserver bash
and tyserver could then say replace escape-w-h-path with an escape-w-h-file-descriptor-n which would then allow the remote side to async query for the contents of fd-n with an escape-read-fd-n-bytes while you continue to interact with the terminal.Also, it doesn't remember volume settings, so if you Ctrl-L to clear the screen and then scroll up to the audio element in the scrollback buffer, it will start playing at full volume again x_x
That should bring you into configure. This still fails for me, but at least then one can see what needs to be installed or updated in order to satisfy configure.
Now if someone could integrate that with bash-completions =)
Remember completely wiping my computer as a teenager trying to get Enlightenment running on it. After a good 12 hours or so I got booted into it… then I learned what the term "winmodem" meant