Skip to content
This repository has been archived by the owner on Oct 8, 2022. It is now read-only.

Latest commit

 

History

History
76 lines (61 loc) · 2.01 KB

README.md

File metadata and controls

76 lines (61 loc) · 2.01 KB

scone · build status license

Create cross-platform terminal applications.

Example

import scone;

void main() {
  frame.title("example");
  frame.size(33, 20);

  bool run = true;
  while(run) {
    foreach(input; input.keyboard) {
      // if CTRL+C is pressed
      if(input.key == SK.c && input.hasControlKey(SCK.ctrl)) {
        run = false;
      }
    }

    frame.write(
      12, 9,
      TextStyle().fg(Color.yellow), "Hello ", // white foreground text (chainable pattern)
      TextStyle().fg(Color.red).bg(Color.white), "World" // red foreground, white background
    );
    frame.print();
  }
}

win mac

Features

  • Display text and colors
  • Receive keyboard input
  • Cross-platform

Simple cross-platform chart

output Windows POSIX
text
emoji
ansi-color
rgb-color
high performance output
input Windows POSIX
input detection
reliable *
control keys **
key release detection

* Input is converted from arbitrary number sequences (may differ from system to system) to an input event. Basic ASCII should work no matter what system, however special keys like the up-arrow or function keys can vary drastically.

** Only registers the last pressed control key.

Install with dub

Note: 3.0.0 is not yet available.

/// dub.json
"dependencies": {
    "scone": "~>3.0.0",
    ...
}
/// dub.sdl
dependency "scone" version="~>3.0.0"