Hyper 3.0.0(github.com) |
Hyper 3.0.0(github.com) |
I'm not trying to hate on Electron (VS Code is my main editor now, and I enjoy it). But I just don't see the point here other than, "Look what they wrote with Electron!". Is it the "social" aspect of posting color themes and seeing how many downloads you get, and I'm just old?
Or maybe we're both just old. Lets chase the kids off our lawn, get some dr pepper and fire up the alphaservers?
A web dev friendly developer experience and a javascript plugin ecosystem opens that up to a new audience.
It's a pretty big audience. I guess the hope is that raises the bar for what users expect from a terminal and it's plugins, while providing performance that is adequate enough for it's target audience.
This may or may not be a good thing but IMO it does tend to make some interesting and novel things surface.
It looks cool, though!
But I can imagine it following the same path. Ecosystem becomes more mature. Plugins get more sophisticated.
2.1 was close to unusable on Windows. Major prompt / cursor bugs (it would disappear all the time), ~200ms input latency (but a terminal's only job is to make typing feel awesome) and it took 5 seconds+ to open on an SSD. I reported a number of those issues but the maintainers didn't even respond even though people were commenting that it was a problem for them too.
Since then I've moved to wsltty for WSL and it's great when combined with tmux. Lightning fast with all of the terminal features you could ever want thanks to tmux (separate windows (ie. tabs), split panes, buffer searching and session saving / restoring). Close to zero input latency too as of wsltty 3.0.0.
Enabling insiders means MS will track a bunch of data about you besides anonymous metrics and you can't opt out of it because insiders requests that info.
WSL v2 and / or that terminal sounds good but it may not be until Oct 2019 or Apr 2020 before the stable Windows channel sees it. They tend to release 2 major updates a year and if WSL v2 is only being released in June 2019 for insiders it's quite the push to have it ready by Oct 2019 for stable.
Looking forward to trying out Hyper 3 on Windows when I get home :)
I haven't switched to Hyper because I have found it a bit pokey and that doesn't work for me, but I'll still give this one a try. I'm curious to hear about any interesting reasons other people _have_ chosen Hyper, or particularly cool things it enables by being built on web technologies. Anybody?
I have a feeling that it's used to farm hate (as karma or "acceptance"). In a less accusatory way, let me say, I think that people really like to see that other people share their hate. This is just my gut feeling though, as I don't share their passionate hate,even though I don't "love" electron.
If you read their changelog you'll see that Hyper 3.0 uses WebGL to achieve this.
OpenGL. To draw text at a reasonable speed. It's not individually an insane thing to do within the context of Electron, etc. but take five steps back and talk about using a sledgehammer to crack a nut...
I actually really like the way it's configure/managed, the whole `hyper install foo` is pretty nice.
With the announcement of the new Windows Terminal, I wonder if these projects will become irrelevant. The only reason I use Cmder is for tabs, and once I have Windows Terminal with that feature, I doubt I would ever use Cmder or Hyper.
For example I tried nearly every terminal on Windows and ultimately use wsltty because tmux offers nearly instant tabs and split panes, buffer searching and everything else you could want in a terminal.
Here's a whole write up on the comparisons: https://nickjanetakis.com/blog/conemu-vs-hyper-vs-terminus-v...
There's an autohotkey project that tries to be a tiling window manager but it's quite buggy and feels very forced. Cool project tho.
I found the font rendering more pleasant on the eyes. I'm not entirely sure why this is, and I'd be interested to see what options could be tweaked in iTerm2 to make it visually similar, but Hyper just "feels" nicer to look at for me.
Second, I've found it useful to be able to customize my terminal with web technologies. Previously I used a custom prompt with lots of different bits of context (git status, node environment, python environment, Kubernetes context, etc). With Hyper it's been fairly easy for me to create a local plugin that renders a statusbar with those bits of context. It's built with React, CSS, etc, so personally the ability to easily adjust and create is super nice.
Two things I miss from iTerm2 are infinite scrollback and the ability to search output with Command-F. I would assume there's a plugin out there to handle searching, I just haven't looked that far into it yet.
Performance of Hyper 2 was adequate enough for me to switch. I'm interested to see how Hyper 3 compares.
I'm also interested in iTerm2 3.3, which overhauls the iTerm2 UI.
tl;dr - small customizations add up. It's basically the same migration as when I moved from Sublime Text to Atom (though I use VS Code now)
iTerm2 blows hyper out of the water in those regards, and it actually does add up. Styling otherwise really isn't that difficult, but it begs the question of why do you need so much information? Are you actually developing or just spending time tinkering on your terminal to have bells and whistles that you don't actually even look at? Surely a simple colorscheme + font that aliases correctly should be enough to "feel nice" to look at?
The only thing keeping me from the better performance of alacritty is iterm2's infinite scrollback and some other miscellaneous features that alacritty will probably never get.
I've been using Windows Terminal in the last 24 hours and it still has some major bugs. While I'd say Fluent Terminal is the best in terms of being lightweight and feature filled, and Alacritty for raw power if you have big shell workloads, Hyper 3 is pretty damn good and worth a try.
Sane defaults:
Use pwsh (not cmd, that's the Windows equivalent of launching 70's Bourne shell on a *nix box):
shell: "C:\\Program Files\\PowerShell\\6\\pwsh.exe",
shellArgs: [],
Normal new tab, close window keys, make readline keys work: keymaps: {
"tab:new": "ctrl+t",
// Also known as 'close tab'
"pane:close": "ctrl+w",
// Bug workaround for https://github.com/zeit/hyper/issues/2873
"editor:movePreviousWord": "",
"editor:moveNextWord": ""
},* Linux:
# Tilix - probably the best option in terms of performance, customization, looks and features.
https://gnunn1.github.io/tilix-web/
# Extraterm - in my experience the best electron-based terminal emulator in terms of performance. It has some neat features too. I catch myself using it more often than Tilix.
https://github.com/sedwards2009/extraterm
* Windows:
# CMDer - pretty much the only option. Has everything one needs, even built in bash on Windows. Useful on Windows 7 PCs at work that don't have WSL or admin rights to install more stuff.
https://github.com/cmderdev/cmder
* MacOS
# Plain old built in terminal is actually nice ;)
# Extraterm is alright too, but it's electron based and the old mac-mini does not really like it.
# iTerm 2 - never got around to fully configuring it, but everyone swears by it.
i tried all available copy-paste options (i think there were 4?). none worked. also, the screen keeps flickering with cmdr.
probably a byproduct from the cheap hardware or virus scanner... so hyper won by default.
i'm looking forward to the new windows terminal though. it'll hopefully get rid of that atrocity.
For multi-line the only thing I found to work was right click :) it then properly formats multi-line paste.
Why would one package a 50MB terminal, packing stuff that will never be needed in a terminal.
It would make sense if they were to spend all that effort to create a terminal-based web browser.
When two notable projects share the same name, it's confusing. One of these projects should consider rebranding.
[1] https://hyper.rs
The big downside I see to using the GPU for this is that it is such a hit to battery life. I was an avid iTerm user, but noticed that when I had it running I only get ~2 hours of usable battery time, even when it was just backgrounded. I hope that Hyper doesn't have this same issue -- will keep a close eye on it.
Terminal.app is still going to by my go-to terminal
I'm not really sure if there's any actual benefit to using it as opposed to the regular Mac terminal, but the colors are bit easier on my eyes at night.
The only thing I'm missing is the ability to move tabs around.
okay?
A terminal written in Electron seems just silly to me...
I wonder if this version will finally introduce this functionality.
I'll take a look and see if I can install it on Linux, though.
Thanks!
Am I the only one that doesn't want anything of the following _bull shit_?
* A terminal emulator that is dependent on an entire web browser (not to mention the layers upon layers of bullshit abstractions all to run something from the 70s).
* Support for "emojis" (I mean, come on. It's a _damn terminal_).
* To execute code that can hijack control of my shell from any of the 956 dependencies[1] this _heap of shit_ relies on.
[1] $ git clone https://github.com/zeit/hyper.git $ cd hyper $ npm install $ ls -lt | wc -l 956
I have no intention of ever using Hyper again but I did attempt to install 3.0.0 to see if anything improved just from a pure curiosity standpoint.
After running the setup program, it opens a green rectangle that animates. I can only assume that's the installer, except it doesn't let you customize where it gets installed to or anything like that. After 5 full minutes of animating without ever providing a UI hint that it's doing something (on an SSD), I killed the task. I guess I'll never know!
As much as Microsoft tries to change it still remains the same...
So much for developers.
It's less about having lots of info and more about being able to control how it's displayed. I really only have a few things I keep around in my prompt / status bar, and they're all immediately useful to the task at hand and are reflective of the current project I'm working inside - I jump around a lot between tech stacks for personal and work environments, and being able to know where I am is important:
- what's the git status of this project
- is this a Python or Node app
- am I inside a virtualenv
- what's the Kubernetes cluster context name
- what's the currently active Kubernetes namespace
I really hate visual clutter, so the ability to move some of this stuff to a status bar rather than keeping it around on every repaint of the prompt, and be able to exactly style it as desired with CSS, is what attracted me to Hyper. This applies to the whole UI, if there's any element I don't like, I can change it.
Similar to you, I've considered switching to Alacritty, but it doesn't hit the features/customization to performance ratio for me.
Gatekeeping isn't inclusive.
Terminal apps are a 1970's concept. We're discussing the possible use cases for a brand new one, which has yet to implement a number of basic features common to virtually all existing ones.
If anyone happens to not need those common features, and does have use cases satisfied by the new entry, then that's great! Your existence is not invalidated, there is no membership card for anyone to revoke.
However, while I'm not sure if there's a contemporary jargon term for expressing this in a single word... you should perhaps avoid "raise the bar" boasts, if you're simultaneously sensitive to anyone else pointing at a bar.
[0] https://www.tenforums.com/tutorials/102362-turn-off-tabs-app...
I notices it a little bit when moving around quickly in NeoVim.
Otherwise I'm quite curious too to why you may need a GPU rendering or something like this...
IMO pressing a key and seeing it is the primary focus of a terminal.
[1] https://github.com/jwilm/alacritty/issues/673#issuecomment-4...
You can argue about the downsides of Electron all you want, but in xterm.js (the component that does the terminal parsing/rendering that Hyper consumes) we have a portable terminal frontend that can run on anything that has a webview and is getting really fast. It's also used in _a lot_ of software[0]. I wouldn't call that particularly sad.
Also see https://github.com/jwilm/alacritty
1) You don't have the default config/bindings.
2) You use some plugins.
3) You use multiple _panes.
4) You use multiple _windows_ (Do not confuse these 2).
5) You save sessions which persist between tmux sessions/reboots.
6) You run your terminal full screen or at least maximized.
Example:
I make a pane with ctrl+a (I don't use ctrl+b as tmux hotkey) plus - or plus |.
I make a window with ctrl+a + c.
I can switch between panes with ctrl+a + hjkl (or pointer).
I can switch between windows with ctrl+a + 1234567890 (or pointer).
So what matters is that running multiple terminal windows side by side is akin to using Tmux panes, and using multiple terminal tabs is akin to using Tmux windows.
It requires some practice to get used to it because basically Tmux becomes more and more your window manager...
(You can even run Firefox in a terminal btw, with Browsh.)