Coder Social home page Coder Social logo

raku-ncurses's Introduction

NCurses

Actions Status

NCurses provides a Raku native interface to the ncurses library for terminal-independent screen I/O.

Example

use NCurses;

# Initialize curses window
my $win = initscr() or die "Failed to initialize ncurses\n";
start_color;

# Initialize colors
init_pair(1, COLOR_WHITE, COLOR_RED);
init_pair(2, COLOR_WHITE, COLOR_BLUE);

# Print Hello World
color_set(1, 0);
mvaddstr( 10, 10, " Hello world " );
color_set(2, 0);
mvaddstr( LINES() - 2, 2, "Press any key to exit..." );

# Refresh (this is needed)
nc_refresh;

# Wait for a keypress
getch;

# Cleanup
LEAVE {
    delwin($win) if $win;
    endwin;
}

For more examples, please see the examples folder.

Installation

  • On Debian-based linux distributions, please use the following command:
$ sudo apt-get install libncurses6
  • On Mac OS X, please use the following command:
$ brew update
$ brew install ncurses
  • Using zef (a module management tool bundled with Rakudo Star):
$ zef install NCurses

Environment variables

The following environment variables can be used to specify the location of the different ncurses libraries:

  • RAKU_NCURSES_LIB
  • RAKU_NCURSES_PANEL_LIB
  • RAKU_NCURSES_MENU_LIB
  • RAKU_NCURSES_FORM_LIB

Troubleshooting

  • To fix a broken or messed up terminal after a crash, please type reset to reset your terminal into its original state.

Testing

  • To run tests:
$ prove -ve "raku -Ilib"
  • To run all tests including author tests (Please make sure Test::Meta is installed):
$ zef install Test::META
$ AUTHOR_TESTING=1 prove -e "raku -Ilib"

Author

Ahmad M. Zawawi, azawawi on #raku, https://github.com/azawawi/

License

MIT License

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.