Skip to content

Instantly share code, notes, and snippets.

@reagent
Last active September 13, 2021 15:13
Show Gist options
  • Star 13 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save reagent/9743630 to your computer and use it in GitHub Desktop.
Save reagent/9743630 to your computer and use it in GitHub Desktop.
Curses + C Example
#include <ncurses.h>
#include <unistd.h>
#define DELAY 35000
int main(int argc, char *argv[]) {
int x = 0,
y = 0;
int max_x = 0,
max_y = 0;
int next_x = 0;
int direction = 1;
initscr();
noecho();
curs_set(FALSE);
getmaxyx(stdscr, max_y, max_x);
x = max_x / 2;
y = max_y / 2;
while (1) {
getmaxyx(stdscr, max_y, max_x);
y = max_y / 2;
clear();
mvprintw(y, x, "o");
refresh();
usleep(DELAY);
next_x = x + direction;
if (next_x >= max_x || next_x < 0) {
direction*= -1;
} else {
x+= direction;
}
}
endwin();
return 0;
}
CFLAGS=-Wall
LDFLAGS=-lncurses
all: demo
clean:
rm -rf demo
@arydevy
Copy link

arydevy commented Dec 2, 2020

Sir what if i want to use KEY_F(1) to exit from this loop ? .. i don't want to use ctrl+c to exit ..

change it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment