8 ms·
Black Screen: A modern terminal emulator based on Electron
- mycelium 11y agoScreenshot looks awesome! I get this error on mac os Yosemite, I made a github issue here: https://github.com/shockone/black-screen/issues/21 https://github.com/shockone/black-screen/issues/21 black-screen$ gulp [17:35:09] Using gulpfile ~/black-screen/gulpfile.js [17:35:09] Starting 'default'... [17:35:09] Starting 'watch'... [17:35:09] Starting 'clean'... [17:35:09] Finished 'default' after 359 ms [17:35:09] Finished 'clean' after 58 ms [17:35:09] Starting 'typescript'... [17:35:09] Starting 'sass'... [17:35:10] Starting 'react'... [17:35:11] gulp-notify: [Black Screen Watcher] React has been compiled. [17:35:11] Finished 'react' after 1.83 s ~/black-screen/node_modules/typescript/lib/typescript.js:35171 if (host.fileExists(fileName)) { ^ TypeError: undefined is not a function ...
- xnzakg 11y agoGetting the same error on Arch Linux.
- jolux 11y agoGetting the same error on OS X 10.10.5
- tundrax 11y agoAppears to be gulp-typescript problem. Upgrading gulp-typescript to "^2.8.1" solves.
- scotchio 11y agoIf anyone's curious to try this, here's how to get it working: https://github.com/shockone/black-screen/issues/21#issuecomment-138037521 https://github.com/shockone/black-screen/issues/21#issuecomm... Overall, actually really like the interface and the potential behind it. Super laggy and could use some work.
- shockone 11y agoThat should be fixed now.
- epmatsw 11y agoBummer. Doesn't compile with iojs.
- chjj 11y agoIt looks like it uses "child_pty" to spawn pty's. child_pty hasn't been updated to support the latest nan/v8 api (in fact, it looks like it's been unmaintained since March). It also improperly uses fs streams to read and write to the pty fd which will exhaust the thread pool very quickly. So, even if you can compile it, it will still break. It also looks like it doesn't handle sigchld with a waitpid anywhere, so be prepared to have a zombie apocalypse on your machine. I'd recommend the author switch to pty.js[1] which now compiles on io.js >=3.0.0 and reads pty fd's properly, but I'm biased. [1] https://github.com/chjj/pty.js https://github.com/chjj/pty.js
- ilaksh 11y agoTry the 'n' module/cli.
- JulianWasTaken 11y agoOne of these seems to pop up every few months, which is great, terminals are old crusty awful things, but it seems like they always die out in development before they can run existing things like Vim which makes them fun POC's and not much else :/
- scotchio 11y ago> One of these seems to pop up every few months Do you --or anyone reading this-- have a list of these? I would love to check them all out actually (not that I don't get your point).
- xnzakg 11y agoWell, there's Finalterm that doesn't exactly seem to like vim.
- ivank 11y agohttps://github.com/unconed/TermKit https://github.com/unconed/TermKit https://github.com/breuleux/terminus https://github.com/breuleux/terminus https://github.com/substack/exterminate https://github.com/substack/exterminate
- deleted 11y ago[deleted]
- ibrahima 11y agoI would really love it if one of these web-based terminals managed to stick around. Just being able to view images in a terminal would be amazing. The trouble with building on web technologies seems to be that the overhead is just too high (eg. Atom) considering how many terminals the average developer has open at a time. I guess at least since it's based on Electron, it might have more longevity than something built from a cobbled together base. Here's hoping!
- andrewstuart2 11y ago
- arcameron 11y agoreminds me a lot of TermKit http://acko.net/blog/on-termkit/ http://acko.net/blog/on-termkit/ looking cool!
- revelation 11y agoI kind of don't want to have my terminal emulator run a complete webbrowser because that's how all the cool kids now pull off the Delphi window skinning look of 2000.
- nine_k 11y agoIt's still nice sometimes to have a terminal among available Web controls. Not as a main tool, I suspect.
- landr0id 11y agoI think that what these JS-based UI toolkits are doing is really great, but I really dislike the idea of bundling basically a browser with the application.
- shockone 11y agoThere is a positive side: a built-in HTML and CSS engine allows to write very customizable interfaces.
- to3m 11y agoIf we can have a teletype metaphor today in 2015, 40-odd (or thereabouts) years later, with the awfulness of this whole idea being a minority viewpoint, perhaps we need to just go with the web browser metaphor today, and see what comes of it by 2055. Thanks to people insisting for years that the TTY is just fine, we don't appear have any other options. Ideally, we'd have progress - but as it is, we have nothing, or a shit sandwich. Forgive me for not going for nothing.
- derefr 11y agoI have a feeling that when enough things want to run "a complete web browser", what we'll get instead is a single web-browser window server process for these applications to talk to.
- bitwize 11y agoWayland and its associated protocol stack is old, crufty, and written for a use case that doesn't exist anymore. We're planning to get all the major toolkits migrated to DisplayWebKit sometime within the next two years.
- mamcx 11y agoSomething like this, but with performant native controls? I will love to build a interactive REPL "terminal" for some data tool I'm building, but with a modern native GUI.
- lazybum 11y agoI see it is buzzword-compliant, but what is it good for?
- shockone 11y agoHa-ha, I get that a lot after telling about React and Electron. Initially I was thinking about Swift + Cocoa, but I figured CSS would give me more flexibility in designing the UI, and it would allow more people to write plugins. Everybody knows JavaScript, right? So, I use a terminal emulators pretty extensively, and I'm tired of their dumbness. Compare any operating system from 1980 and 2015 - there is a huge difference. The same with web-sites, text editors, and pretty much any other category of software. Except terminals. The biggest achievement they made is 256 colours support. Good job! It doesn't take a genius to understand that the limitations are caused by the text user interface. Of course, text is a great and universal tool. It's easily parsable (or not so easily, but still parsable). It can be piped, after all. But who said we can't take the good old text and present it beautifully? Imagine you fired an sql client, wrote a select statement and received an ASCII table as an output. Wouldn't it be useful if the terminal understood that it looks like a table and converted it into an HTML table, with sorting by any column, resizing, filtering, and everything else. The same with XML, JSON and every other format: why should I type `jq` after a command that outputs JSON? Is that so hard to just detect and parse it for me? Output formatters was the idea that made me start the development. I also plan to let users write custom formatting plugins. But even besides that point there is a lot of room for improvement in current terminal emulators. For example, I have a git branch displayed in RPROMPT of my ZSH. It works well, but if I checkout another branch from a different place, my shell will still show the old branch, which can have certain consequences, if you rely on it. The current feature I work on is autocompletion. I plan to parse man files and provide only what can be displayed in that place. By the way, folks from the Fish team do the same. Unfortunately, right now Black Screen can not be used as a replacement for your favourite terminal, it has a long path to the first release.
- supster 11y agoThis looks really awesome - can't wait to try it out!
- blt 11y agoBringing up a whole web browser engine for the terminal is a deal breaker for me. I want it to start instantly. 1 second is too long.
- shockone 11y agoThat's understandable. It's like with editors. There is vim and there is Intellij IDEA (sorry, JetBrains, for calling your child an editor). I want it to be smart.
- shockone 11y agoHello. I'm the author of Black Screen, and I'm upset this post has appeared on Hacker News. The terminal is at a very early stage; I don't even use it by myself. Although, it's nice to see that people show some interest.
- giodamelio 11y agoYou should probably put a note saying as much at the top of the README. Pretty cool looking project though, I have been thinking about something like this for a while now. The two biggest problems seem to be performance(I spawn throwaway shells all the time, so my terminal emulator need to open pretty much instantly), and fully compatibility(I use vim in the terminal as my main editor). I'll be watching to see how it turns out.
- shockone 11y agoThank you for your kind words. Spawning a shell shouldn't be a performance bottleneck as long as you create a new tab or pane, and not a new application instance. By the way there is a (very) experimental support of panes, press cmd + _ to split horizontally. By biggest concern is how to cat a 50MB file. If you try it now, everything gets stuck.
- SalGnt 11y agoI feel really sorry for the inconvenience, I just wanted to share your awesome project.
- eggsome 11y agoWhen I saw this post I thought it was going to be an xterm with an oldschool CRT look. I got someone to build me one of those for playing rougelikes a few years ago - see here if anyone is interested: http://ubuntuforums.org/showthread.php?t=1884955 http://ubuntuforums.org/showthread.php?t=1884955
- jestinjoy1 11y agoRelated: http://xiki.org/ http://xiki.org/
- eeZi 11y agoiPython Notebook makes for a nice terminal emulator: http://jeroenjanssens.com/2015/02/19/ibash-notebook.html http://jeroenjanssens.com/2015/02/19/ibash-notebook.html (inline images!). It lacks readline support, though, and does not implement all VT100 control characters.
- rtz12 11y agoNice, another application that eats away tons of RAM because it comes with it's own WebKit engine.
- mycelium 11y agoI don't disagree, but as someone who has written a bunch of personal tools (including a Tinder assistant lol) with electron and nwjs, think about why people are using these runtimes before you rip on it. Since so many people are doing it, there must be some good reasons.
- rtz12 11y agoYes, they are using it because they are familiar with the web platform and want to go a step further. But that doesn't mean that all other ways to build programs for desktop use suck and we can only use a webkit engine. With stuff like electron, the result is bloated as hell and looks totally foreign. EDIT: Just think of the major performance problems these electron based editors had and still have. Our compurters have become faster, so we just write more bloated and slower software?