GithubHelp home page GithubHelp logo

ncurses.cr's Introduction

ncurses

ncurses.cr is a Crystal binding to the C ncurses library.

Installation

Add this to your application's shard.yml:

dependencies:
  ncurses:
    github: agatan/ncurses.cr

You also need to install the ncurses library. e.g. in ubuntu, sudo apt install libncursesw5-dev

Usage

require "ncurses"

NCurses.open do
  # initialize
  NCurses.cbreak
  NCurses.noecho
  NCurses.start_color

  # define background color
  pair = NCurses::ColorPair.new(1).init(NCurses::Color::RED, NCurses::Color::BLACK)
  NCurses.bkgd(pair)

  NCurses.erase
  # move the cursor
  NCurses.move(x: 0, y: 1)
  # longname returns the verbose description of the current terminal
  NCurses.addstr(NCurses.longname)

  NCurses.move(x: 0, y: 2)
  NCurses.addstr(NCurses.curses_version)

  NCurses.move(y: 10, x: 20)
  NCurses.addstr("Hello, world!")
  NCurses.refresh

  NCurses.notimeout(true)
  NCurses.getch
end

Examples

See example/ for more examples.

Contributing

  1. Fork it ( https://github.com/[your-github-name]/ncurses/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

  • agatan Naomichi Agata - creator, maintainer

ncurses.cr's People

Contributors

agatan avatar geolessel avatar omarroth avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

ncurses.cr's Issues

KeyCode::ESC

Hi, would it be possible to add KeyCode for escpe?

Examples don't work on my laptop

Every example I try to run (except for mouse.cr) don't show anything. after a second or two the program terminates. no error is showing. echo $? return 0 so there is no error.

About my laptop:

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 16.04.6 LTS
Release:	16.04
Codename:	xenial

$ uname -a
Linux oren 4.4.0-171-generic #200-Ubuntu SMP Tue Dec 3 11:04:55 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Support for `-1` as a color

It looks like use -1 as a color number is supported to display no color. I'd like to be able to modify the code to allow that as a color pair value but it looks like it is only expecting unsigned integers. I don't have enough experience in Crystal to know how to fix this issue or I would have included it in #5.

An example of where this matters is when setting NCurses.use_default_colors. Since I'm forced to use a defined background color, it overwrites my default terminal background color. Is there a good way to fix this?

Without NCurses.use_default_colors

screenshot 2018-08-29 14 45 24

With NCurses.use_default_colors

screenshot 2018-08-29 14 45 50

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.