TODO
vlad-shatskyi opened this issue · 37 comments
- Improve the Build Process
- VT100 compliant ANSI support
- Environment variables support.
- Panes and tabs.
- Man files parsing for better autocompletion.
Have you considered forking Atom to build black-screen?
you could get linting, and autocomplete plug-ins with little work, which already have a well-understood Api.
On the other hand, it would slow down things a lot.
@nmn, little work, you say? I had a similar opinion at first, but Atom turned out not to be very reusable for my case. Or I'm not good at reusing stuff.
haha, I can imagine. It's all coffeescript, which I can't stand anyway.
Anyway, love the work you've done so far. Just came across this today, and I'm really happy someone is trying to improve the terminal.
Thank you.
@ShockOne Is the goal to make this a standalone app that could run from the Dock, like Terminal? as it stands I have use Terminal to run black-screen.
I'm super excited about this project.
@jdsimcoe, that's funny. Sure, you can already install the app with npm run package
, if you're lucky.
@ShockOne Got it. That worked! Is there a way to update built packages automatically or are you planning on publishing binary builds at some point? Just don't know how to keep things fresh.
@jdsimcoe one day it will update automatically. Currently you have to pull the repo and rebuild.
I just tried building black-screen again today. It's beyond amazing to see the progress in such a short time. Obviously there will be more work needed till it can replace zsh, but I really think it can. In the mean time, I'll create issues for bugs I found.
@jdsimcoe, zsh aliases should work.
Do you happen to have tmux launched at the beginning of your zsh session?
i had problems with my zsh stuff as well. probably some config needed.
@ShockOne @nmn Ok I got the aliases working... the only problem is I'm getting issues trying to launch applications. For instance, running atom .
gives this error:
LSOpenURLsWithRole() failed for the application /Applications/Atom.app with error -10810.
When I try to do just open -a /Applications/Atom.app
it does nothing. Also I don't have tmux running by default, but I do have some tmux config stuff in my .bash_profile
and my .zshrc
files.
@ShockOne I tried stuff here:
And no luck. Also tried the reattach-to-user-namespace
here:
Still no luck. Don't have tmux running.
@jdsimcoe I have the same problem but at Linux (Arch Linux). I know black-screen have no support for Linux.
When I type "atom ." does nothing (no error either). However I can launch another desktop apps successfully.
Firstly, same here. Can't open Atom, but can open system apps.
- Can we expand environment variables support to instead be a proper config file? with aliases, bash functions etc.
- Longer term can we consider adding plug-in support? For autocomplete etc?
Personally, I think these terminal usability features are more important than:
VT100 compliant ANSI support
I would vote to de-prioritise ANSI support as I think the people who are most likely to want to use Vim, Nano are less likely to use black-screen.
My guess would be that the typical user of black-screen is more likely to use GUI text editor, and is primarily looking for a nicer, easier to use terminal.
Thoughts?
+1
I would totally agree.
May I suggest using terminal.js from my http://domterm.org project for the guts of the terminal emulator? DomTerm supports a large chunk of vt100/xterm functionality - enough that you can run Emacs with TERM set to xterm-256color. And unlike other JavaScript terminal emulators, it supports rich text, graphics, re-wrapable lines, embedded objects etc in a clean way, and does so using a clean DOM tree.
Hi, @PerBothner. I would love to use it, but then I'd need it as a library and also it would be cool to have a conversation and agree on its API.
Also, in case it doesn't work out, could you please recommend me a good manual to do what you did?
The terminal.js is a library. It doesn't take much to hook it up, as you can see by looking at the repl-client.html file. In addition to the JavaScript API there is also a documented byte-stream protocol. I'm pretty flexible about changes or addition to the either the JavaScript interface or the byte-stream protocol.
I haven't used any particular manual (beside of course "JavaScript: The Definitive Guide"), but I have Googled a lot :-)
@PerBothner, I meant like an npm module, but I think for starters the built-in file will do. Thank you for the reference.
I've never created an npm package - and creating one for DomTerm is probably premature anyway.
I'd like to argue against the case @nmn and @jdsimcoe are trying to make that users of Black Screen are more likely to use GUI text editors. While I enjoy my GUI text editors as much as the next, I often have to rely on my command line tools for both scripting purposes, and to make quick edits of files. It is a major part of my workflow and I'd be sad to see VT100 compliant ANSI support
be delayed for too long
@crutchcorn Good point.
@crutchcorn do you need something particular? I might implement it sooner.
@ShockOne, very gracious of you to ask! Thank you so much for considering a user such as myself. 😄 I personally do not use vim
(although I know many that do), but rather prefer nano
myself and could not make a terminal my default without support for such. Other than that, I need all of the built in commands from ash/bash to make it in (something that I know is a tall order to ask of you as I know that you are using a custom shell currently, although seeking ways to replace that with a more standard shell (as far as I could read from the other issue) as I work extensively with scripting. That, however, I am willing to wait good and long for as I don´t mind dropping down to ash/bash to testing those scripts (although it would be yet another step to doing so). At any rate, your work on this project has been fenominal and I cannot wait to see a final version of this emerge from your amazing work. Thank you so much for everything you´re doing, and seriously - thank you for even asking about my thoughts! 😆
Ти молодець чувак, крута задумка в тебе, якщо доведеш проект до кінця буде реально крутий інструмент
I think you need to implement installation as App, not to run npm script every time
Somewhat related to build process: did you considered making regular pre-build packages (preferably per-distro, but plain .zip
would work fine too) ?
Installing via homebrew would be a godsend.
@whyfuture Fixed on #350. brew cask install black-screen
.
@ShockOne How I can contact with you?
@yarossia shockone89@gmail.com.