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

vladdeSV/scone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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"