This commit is contained in:
Christopher Jeffrey 2015-03-19 05:23:56 -07:00
parent 2b425eec4f
commit c3257e29dc

View File

@ -22,8 +22,9 @@ the changes (damage) to the screen.
Blessed is arguably as accurate as ncurses, but even more optimized in some
ways. The widget library gives you an API which is reminiscent of the DOM.
Anyone is able to make an awesome terminal application with blessed. There are
terminal widget libraries for other platforms (primarily python and perl), but
blessed is the most DOM-like.
terminal widget libraries for other platforms (primarily [python][urwid] and
[perl][curses-ui]), but blessed is possibly the most DOM-like (dare I say the
most user-friendly?).
Blessed has been used to implement other popular libraries and programs.
Examples include: the [slap text editor][slap] and [blessed-contrib][contrib].
@ -1207,42 +1208,47 @@ program.feed();
## FAQ
1. Why doesn't the Linux console render lines correctly on Ubuntu?
- You need to install the `ncurses-base` package __and__ the `ncurses-term`
package. (#98)
- You need to install the `ncurses-base` package __and__ the `ncurses-term`
package. (#98)
2. Why do vertical lines look chopped up in iTerm2?
- All ACS vertical lines look this way in iTerm2.
- All ACS vertical lines look this way in iTerm2.
3. Why can't I use my mouse in Terminal.app?
- Terminal.app does not support mouse events.
- Terminal.app does not support mouse events.
4. Why doesn't the Image element appear in my terminal?
- The Image element uses w3m to display images. This generally only works on
X11+xterm/urxvt, but it *may* work on other unix terminals.
- The Image element uses w3m to display images. This generally only works on
X11+xterm/urxvt, but it *may* work on other unix terminals.
5. Why can't my mouse clicks register beyond 255-287 cells?
- Older versions of VTE do not support any modern mouse protocol. On top of
that, the old x10 protocol it does implement is bugged. Through several
workarounds we've managed to get the cell limit from 127 to 255/287. If
you're not happy with this, you may want to look into using xterm or
urxvt, or a terminal which uses a modern VTE, like gnome-terminal.
- Older versions of VTE do not support any modern mouse protocol. On top of
that, the old x10 protocol it does implement is bugged. Through several
workarounds we've managed to get the cell limit from 127 to 255/287. If
you're not happy with this, you may want to look into using xterm or
urxvt, or a terminal which uses a modern VTE, like gnome-terminal.
6. Is blessed efficient?
- Yes. Blessed implements CSR and uses the painter's algorithm to render the
screen. It maintains two screen buffers so it only needs to render what
has changed on the terminal screen.
- Yes. Blessed implements CSR and uses the painter's algorithm to render the
screen. It maintains two screen buffers so it only needs to render what
has changed on the terminal screen.
7. Will blessed work with all terminals?
- Yes. blessed has a terminfo/termcap parser and compiler that was written
from scratch. It should work with every terminal as long as a terminfo
file is provided. If you notice any compatibility issues in your termial,
do not hesitate to post an issue.
- Yes. blessed has a terminfo/termcap parser and compiler that was written
from scratch. It should work with every terminal as long as a terminfo
file is provided. If you notice any compatibility issues in your termial,
do not hesitate to post an issue.
8. What is "curses" and "ncurses"?
- ["curses"][curses] was an old library written in the early days of unix
which allowed a programmer to not have to worry about terminal
compatibility. ["ncurses"][ncurses] is a free reimplementation of curses.
It improved upon it quite a bit and is now the standard library for
implementing terminal programs. Blessed uses neither of these, and instead
handles terminal compatibility itself.
- ["curses"][curses] was an old library written in the early days of unix
which allowed a programmer to not have to worry about terminal
compatibility. ["ncurses"][ncurses] is a free reimplementation of curses.
It improved upon it quite a bit and is now the standard library for
implementing terminal programs. Blessed uses neither of these, and instead
handles terminal compatibility itself.
9. What is the difference between blessed and blessed-contrib?
- blessed is a major piece of code which reimplements curses from the ground
up. A UI API is then layered on top of this. blessed-contrib is a popular
library built on top of blessed which makes clever use of modules to
implement useful widgets like graphs, ascii art, and so on.
- blessed is a major piece of code which reimplements curses from the ground
up. A UI API is then layered on top of this. blessed-contrib is a popular
library built on top of blessed which makes clever use of modules to
implement useful widgets like graphs, ascii art, and so on.
10. Are there blessed-like solutions for non-javascript platforms?
- Yes. There are some fantastic solutions out there.
- Perl: [Curses::UI][curses-ui]
- Python: [Urwid][urwid]
- Go: [termui][termui] & [termbox-go][termbox]
## Contribution and License Agreement
@ -1263,3 +1269,6 @@ See LICENSE for more info.
[termui]: https://github.com/gizak/termui
[curses]: https://en.wikipedia.org/wiki/Curses_(programming_library)
[ncurses]: https://en.wikipedia.org/wiki/Ncurses
[urwid]: http://urwid.org/reference/index.html
[curses-ui]: http://search.cpan.org/~mdxi/Curses-UI-0.9609/lib/Curses/UI.pm
[termbox]: https://github.com/nsf/termbox-go