sxalert

Simple notification system for X
Log | Files | Refs | README | LICENSE

commit 30270f25a45d7db88bf8ee6868fbf783d6a8d94d
parent 20bfa34182ff7b13e7124600c290d40d9387b2ff
Author: Michael Constantine Dimopoulos <mk@mcdim.xyz>
Date:   Sat,  4 Nov 2023 17:54:38 +0000

Added readme, duration as argument & updated help panel

Diffstat:
AREADME.md | 36++++++++++++++++++++++++++++++++++++
Mconfig.h | 7++++++-
Msxalert.c | 19+++++++++++--------
3 files changed, 53 insertions(+), 9 deletions(-)

diff --git a/README.md b/README.md @@ -0,0 +1,36 @@ +# Simple X Alert + +Simple notification system for X that works without a daemon. This is mainly for personal use, but I'll be glad to support whoever else wants to use it. Currently in development. + +## Features ++ Freetype scalable fonts ++ UTF-8 support ++ Configurable & scriptable + +## Dependencies +To build simple X alert, you'll need Xlib and Xft. + +## Build +In order to install, execute the following commands: +``` +$ git clone https://github.com/MichaelDim02/sXalert.git && cd sXalert +$ sudo make sxalert +``` + +## Usage +You can simply run the tool with each argument being a line of text +``` +$ ./sxalert "First line" "Second line" +``` +You can also set color and border width +``` +$ ./sxalert -b 5 -t FFFFFF -g 000000 -r FFFFFF "First line" "Second line" +``` +These will overwrite the defaults written in `config.h` + +## TODOs: ++ Dynamic screen positioning ++ Width based on text ++ Exit by event (perhaps as a path) ++ Titles (perhaps as a patch) ++ (?) optional daemon for positinioning diff --git a/config.h b/config.h @@ -1,4 +1,9 @@ -/* simpleXalert Configuration */ +/* Simple X Alert v0.1 + * Simple notification program for X + * GNU GPL v3.0 + * + * config.h - configuration file + */ #define BUFFER 2054 diff --git a/sxalert.c b/sxalert.c @@ -1,4 +1,4 @@ -/* simpleXalert v0.1 +/* Simple X Alert v0.1 * Simple notification program for X * GNU GPL v3.0 * @@ -40,9 +40,12 @@ help(void) /* TODO: update */ { printf("sXalert %s\n", VERSION); printf("Alert utility for X\n\n"); - printf(" -c color in hex:hex:hex format\n"); - printf(" -s time in seconds\n"); + printf(" -t text hex color (eg FFFFFF)\n"); + printf(" -g background hex color\n"); + printf(" -r border hex color\n"); printf(" -b border width in pixels\n"); + printf(" -d duration in milliseconds\n"); + printf(" -v print version & exit\n\n"); printf(" -h print help panel & exit\n\n"); } @@ -65,7 +68,7 @@ convert_text_color_code(void) } static void -draw(int border, char **lines, int linecount, int linestart) +draw(int border, char **lines, int linecount, int linestart, int duration) { char text_color_pnd[8]; strncpy(text_color_pnd, convert_text_color_code(), 8); @@ -141,15 +144,15 @@ main(int argc, char **argv) char text[BUFFER]; extern char *optarg; - while ((c = getopt(argc, argv, "s:b:t:g:r:vh")) != -1 ) { + while ((c = getopt(argc, argv, "d:b:t:g:r:vh")) != -1 ) { switch (c) { case 'v': die(VERSION, EXIT_SUCCESS); case 'h': help(); usage(argv[0]); - case 's': - s=atoi(optarg); + case 'd': + duration=atoi(optarg); break; case 'b': border_width=atoi(optarg); /* overwrite default in config.h */ @@ -166,7 +169,7 @@ main(int argc, char **argv) } } - draw(border_width, argv, argc, optind); + draw(border_width, argv, argc, optind, duration); return 0; }