Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??

I'm trying to write a curses-based application to run under Linux. Can anyone suggest more curses-based Perl applications aside from the ones I found on CPAN and listed below? Seems like there are not too many of these, which is quite disappointing.

  • App::Syndicator - A simple RSS fetcher and reader. So far the only rather usable app I can actually use.
  • App::PassManager - A password keeper. The concept is simple and the app could be rather useful, but it has minor UI bugs like off-by-one errors when displaying items, or visual update bugs that turned me off.
  • Config::Model::CursesUI] - Didn't try this one out because the Synopsis doesn't give a sample I can just copy-paste and run.
  • Stackato::Stackrad - ran this and looked around, the app uses a notebook/tab interface and looks quite nice. Didn't try further because I don't use Stackato.
  • Socialtext::Wikrad - server doesn't seem to accept my user/pass.
  • CPANPLUS::Shell::Curses - Unmaintained, no longer runs due to a non-existing module.

All of the above use Curses::UI, the most popular module used to build curses-based application. The other one, Curses::Toolkit, is newer and claims to be the modern alternative but is still in beta and doesn't have as many examples/documentation/widgets. Yet another one, Cdk (Curses-Devkit) while still on CPAN/Debian is long dead, fails on CPANTesters, and no other CPAN modules are using it.

In fact the whole situation with curses and Perl doesn't look too convincing. Lots of things don't seem to work or are buggy. Curses::UI::Grid's demo shows UI defects and spew substr() warnings. In the Curses::UI demo for multilanguage languages like Chinese don't work (my terminal & environment does support Chinese). The colors look atrocious. The demos for Curses::Toolkit look worse: Shift-Tab doesn't work, scroll area cannot be scrolled with keyboard, response to mouse clicks is slow (actually even typing into an input box feels very sluggish).

Should I just give up and look elsewhere for curses? Python seems to be used a lot by RedHat and Debian for this kind of tasks. I'm still trying to use Perl though. Perl is usually great at solving my problems, but for this I feel like I'm thrown *far before* the DOS/Turbo Pascal/Turbo Vision days. Why are we so backwards when it comes to TUI?

Update 2013-11-06: Someone mentioned Tickit on my blog, I actually bookmarked that module a few months ago but forgot about it. It does not use the curses library and looks quite promising. The code is quite clean and simple and modern, the author is active/maintaining, and it looks like it has quite a lot of features (multiple/overlapping windows, lots of widgets). But there is no application on CPAN using it yet.

Also someone reminded me about Inline::Python where you can in theory use many Python modules through Perl. I haven't explored this route further.

As I said also on the comment, dialog(1) is another simple alternative. Its form support is rather limited though.


In reply to Curses-based applications? by sedusedan

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (3)
As of 2024-04-19 20:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found