diff --git a/README b/README index 66739c6..2a37ae5 100644 --- a/README +++ b/README @@ -1,20 +1,20 @@ -usage : tty-clock [-iuvsScbtrahDBxn] [-C [0-7]] [-f format] [-d delay] [-a nsdelay] [-T tty] - -s Show seconds - -S Screensaver mode - -x Show box - -c Set the clock at the center of the terminal - -C [0-7] Set the clock color - -b Use bold colors - -t Set the hour in 12h format - -u Use UTC time - -T tty Display the clock on the specified terminal - -r Do rebound the clock - -f format Set the date format - -n Don't quit on keypress - -v Show tty-clock version - -i Show some info about tty-clock - -h Show this page - -D Hide date - -B Enable blinking colon - -d delay Set the delay between two redraws of the clock. Default 1s. +usage : tty-clock [-iuvsScbtrahDBxn] [-C [0-7]] [-f format] [-d delay] [-a nsdelay] [-T tty] + -s Show seconds + -S Screensaver mode + -x Show box + -c Set the clock at the center of the terminal + -C [0-7] Set the clock color + -b Use bold colors + -t Set the hour in 12h format + -u Use UTC time + -T tty Display the clock on the specified terminal + -r Do rebound the clock + -f format Set the date format + -n Don't quit on keypress + -v Show tty-clock version + -i Show some info about tty-clock + -h Show this page + -D Hide date + -B Enable blinking colon + -d delay Set the delay between two redraws of the clock. Default 1s. -a nsdelay Additional delay between two redraws in nanoseconds. Default 0ns. diff --git a/tty-clock.1 b/tty-clock.1 index 9976826..5343444 100644 --- a/tty-clock.1 +++ b/tty-clock.1 @@ -1,131 +1,131 @@ .\" This manpage was written by Carla Valenti .\" and Christian Giessen for tty-clock. -.\" In details the command line options displayed by tty-clock -h as +.\" In details the command line options displayed by tty-clock -h as .\" well as the keyboard commands. .TH "TTY-CLOCK" "1" "October 2013" "" "User Commands" .SH "NAME" -.LP +.LP tty\-clock \- a terminal digital clock .SH "SYNOPSIS" -.LP +.LP \fBtty\-clock [\-iuvsScbtrahDBxn] [\-C [\fI0\-7\fB]] [\-f \fIformat\fB] [\-d \fIdelay\fB] [\-a \fInsdelay\fB] \fB[\-T \fItty\fB]\fR .SH "DESCRIPTION" -.LP +.LP \fItty\-clock\fR displays a simple digital clock on the terminal. Invoked without options it will display the clock on the upper left corner of the screen on the terminal it was executed from. .SH "COMMANDS" -.LP +.LP \fItty\-clock\fR accepts a number of runtime keyboard commands, upper and lower case characters are treated identically. -.TP +.TP K,J,H,L vi\-style movement commands to set the position of the displayed clock. These commands have no effect when the \fBcentered\fR option is set. -.TP +.TP [0\-7] Select a different color for displaying the clock. -.TP +.TP B Toggles between bold and normal colors. .TP X Toggles displaying a box around the clock. This option is disabled by default. -.TP +.TP C Toggle the clock's position to \fBcentered\fR. When set the movement commands are disabled. -.TP +.TP R Set the clock to \fBrebound\fR along the edges of the terminal. -.TP +.TP S Display seconds. -.TP +.TP T Switch time output to the 12\-hour format. -.TP +.TP Q Quit. .SH "OPTIONS" -.LP -.TP +.LP +.TP \fB\-s\fR Show seconds. -.TP +.TP \fB\-S\fR Screensaver mode. tty\-clock terminates when any key is pressed. -.TP +.TP \fB\-x\fR Show box. -.TP +.TP \fB\-c\fR Set the clock at the center of the terminal. -.TP +.TP \fB\-C\fR \fI[0\-7]\fR Set the clock color. -.TP +.TP \fB\-b\fR Use bold colors. -.TP +.TP \fB\-t\fR Set the hour in 12h format. -.TP +.TP \fB\-u\fR Use UTC time. -.TP +.TP \fB\-T\fR \fItty\fR Display the clock on the given \fItty\fR. \fItty\fR must be a valid character device to which the user has rw access permissions. (See \fBEXAMPLES\fR) -.TP +.TP \fB\-r\fR Do rebound the clock. -.TP +.TP \fB\-f\fR \fIformat\fR Set the date format as described in \fBstrftime(3)\fR. -.TP +.TP \fB\-n\fR Do not quit the program when the Q key is pressed (or when any key is pressed while in \fBScreensaver\fR mode). A signal must be sent to \fItty\-clock\fR in order to terminate its execution. (See \fBEXAMPLES\fR) -.TP +.TP \fB\-v\fR Show tty\-clock version. -.TP +.TP \fB\-i\fR Show some info about tty\-clock. -.TP +.TP \fB\-h\fR Show usage information. -.TP +.TP \fB\-D\fR Hide the date. -.TP +.TP \fB\-B\fR Enable blinking colon. -.TP +.TP \fB\-d\fR \fIdelay\fR Set the delay (in seconds) between two redraws of the clock. Default 1s. -.TP +.TP \fB\-a\fR \fInsdelay\fR Additional delay (in nanoseconds) between two redraws of the clock. Default 0ns. .SH "EXAMPLES" -.LP +.LP To invoke .I tty\-clock in screensaver mode with the clock display set to rebound and the update delay set to 1/10th of a second (10 FPS): -.IP +.IP $ tty\-clock \-Sra 100000000 \-d 0 -.LP +.LP The following example arranges for \fItty\-clock\fR to be displayed indefinitely on one of the Virtual Terminals on a Linux system at boot time using an .B inittab(5) entry: -.IP +.IP # /etc/inittab: -.br +.br 9:2345:respawn:/usr/bin/tty\-clock \-c \-n \-T /dev/tty9 -.LP +.LP diff --git a/ttyclock.c b/ttyclock.c index f656c1e..bc2326f 100644 --- a/ttyclock.c +++ b/ttyclock.c @@ -41,17 +41,17 @@ init(void) /* Init ncurses */ if (ttyclock->tty) { - FILE *ftty = fopen(ttyclock->tty, "r+"); - if (!ftty) { - fprintf(stderr, "tty-clock: error: '%s' couldn't be opened: %s.\n", - ttyclock->tty, strerror(errno)); - exit(EXIT_FAILURE); - } - ttyclock->ttyscr = newterm(NULL, ftty, ftty); - assert(ttyclock->ttyscr != NULL); - set_term(ttyclock->ttyscr); + FILE *ftty = fopen(ttyclock->tty, "r+"); + if (!ftty) { + fprintf(stderr, "tty-clock: error: '%s' couldn't be opened: %s.\n", + ttyclock->tty, strerror(errno)); + exit(EXIT_FAILURE); + } + ttyclock->ttyscr = newterm(NULL, ftty, ftty); + assert(ttyclock->ttyscr != NULL); + set_term(ttyclock->ttyscr); } else - initscr(); + initscr(); cbreak(); noecho(); @@ -166,15 +166,15 @@ signal_handler(int signal) void cleanup(void) { - if (ttyclock->ttyscr) - delscreen(ttyclock->ttyscr); - - if (ttyclock && ttyclock->tty) - free(ttyclock->tty); - if (ttyclock && ttyclock->option.format) - free(ttyclock->option.format); - if (ttyclock) - free(ttyclock); + if (ttyclock->ttyscr) + delscreen(ttyclock->ttyscr); + + if (ttyclock && ttyclock->tty) + free(ttyclock->tty); + if (ttyclock && ttyclock->option.format) + free(ttyclock->option.format); + if (ttyclock) + free(ttyclock); } void @@ -337,7 +337,7 @@ clock_move(int x, int y, int w, int h) } wrefresh(ttyclock->framewin); - wrefresh(ttyclock->datewin); + wrefresh(ttyclock->datewin); return; } @@ -425,7 +425,7 @@ key_event(void) int i, c; struct timespec length = { ttyclock->option.delay, ttyclock->option.nsdelay }; - + if (ttyclock->option.screensaver) { c = wgetch(stdscr); @@ -446,7 +446,7 @@ key_event(void) } return; } - + switch(c = wgetch(stdscr)) { @@ -485,7 +485,7 @@ key_event(void) case 'q': case 'Q': if (ttyclock->option.noquit == False) - ttyclock->running = False; + ttyclock->running = False; break; case 's': @@ -578,10 +578,10 @@ main(int argc, char **argv) " -b Use bold colors \n" " -t Set the hour in 12h format \n" " -u Use UTC time \n" - " -T tty Display the clock on the specified terminal \n" + " -T tty Display the clock on the specified terminal \n" " -r Do rebound the clock \n" " -f format Set the date format \n" - " -n Don't quit on keypress \n" + " -n Don't quit on keypress \n" " -v Show tty-clock version \n" " -i Show some info about tty-clock \n" " -h Show this page \n" @@ -644,25 +644,25 @@ main(int argc, char **argv) case 'x': ttyclock->option.box = True; break; - case 'T': { - struct stat sbuf; - if (stat(optarg, &sbuf) == -1) { - fprintf(stderr, "tty-clock: error: couldn't stat '%s': %s.\n", - optarg, strerror(errno)); - exit(EXIT_FAILURE); - } else if (!S_ISCHR(sbuf.st_mode)) { - fprintf(stderr, "tty-clock: error: '%s' doesn't appear to be a character device.\n", - optarg); - exit(EXIT_FAILURE); - } else { - if (ttyclock->tty) - free(ttyclock->tty); - ttyclock->tty = strdup(optarg); - }} - break; - case 'n': - ttyclock->option.noquit = True; - break; + case 'T': { + struct stat sbuf; + if (stat(optarg, &sbuf) == -1) { + fprintf(stderr, "tty-clock: error: couldn't stat '%s': %s.\n", + optarg, strerror(errno)); + exit(EXIT_FAILURE); + } else if (!S_ISCHR(sbuf.st_mode)) { + fprintf(stderr, "tty-clock: error: '%s' doesn't appear to be a character device.\n", + optarg); + exit(EXIT_FAILURE); + } else { + if (ttyclock->tty) + free(ttyclock->tty); + ttyclock->tty = strdup(optarg); + }} + break; + case 'n': + ttyclock->option.noquit = True; + break; } } @@ -680,3 +680,5 @@ main(int argc, char **argv) return 0; } + +// vim: expandtab tabstop=4 softtabstop=4 shiftwidth=4 diff --git a/ttyclock.h b/ttyclock.h index ba4081b..3d22ade 100644 --- a/ttyclock.h +++ b/ttyclock.h @@ -60,8 +60,8 @@ typedef struct { /* while() boolean */ Bool running; - - /* terminal variables */ + + /* terminal variables */ SCREEN *ttyscr; char *tty; int bg; @@ -77,7 +77,7 @@ typedef struct Bool date; Bool utc; Bool box; - Bool noquit; + Bool noquit; char *format; int color; Bool bold; @@ -145,3 +145,5 @@ const Bool number[][15] = }; #endif /* TTYCLOCK_H_INCLUDED */ + +// vim: expandtab tabstop=4 softtabstop=4 shiftwidth=4