summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorC. McEnroe <june@causal.agency>2018-09-21 23:32:17 -0400
committerC. McEnroe <june@causal.agency>2018-09-21 23:32:17 -0400
commitfeaade20410afadf84b14898fb39aa47eaf61d42 (patch)
treebe7bd290978d945ff459743d356dade6052b1f5e
parentMap caps lock to escape on Linux console (diff)
downloadsrc-feaade20410afadf84b14898fb39aa47eaf61d42.tar.gz
src-feaade20410afadf84b14898fb39aa47eaf61d42.zip
Add scheme -i to swap white and black
-rw-r--r--bin/man/scheme.15
-rw-r--r--bin/scheme.c15
2 files changed, 18 insertions, 2 deletions
diff --git a/bin/man/scheme.1 b/bin/man/scheme.1
index ae11320d..b2ffc407 100644
--- a/bin/man/scheme.1
+++ b/bin/man/scheme.1
@@ -8,7 +8,7 @@
.
.Sh SYNOPSIS
.Nm
-.Op Fl acghlmtx
+.Op Fl acghilmtx
.
.Sh DESCRIPTION
.Nm
@@ -30,6 +30,9 @@ Output a swatch PNG.
.It Fl h
Output HSV.
.
+.It Fl i
+Swap white and black.
+.
.It Fl l
Output Linux console OSC sequences.
.
diff --git a/bin/scheme.c b/bin/scheme.c
index 8f8243bd..36bbbb09 100644
--- a/bin/scheme.c
+++ b/bin/scheme.c
@@ -89,6 +89,18 @@ static void generate(void) {
scheme.cursor = x(scheme.dark[White], 0.0, 1.0, 0.8);
}
+static void swap(struct Hsv *a, struct Hsv *b) {
+ struct Hsv t;
+ t = *a;
+ *a = *b;
+ *b = t;
+}
+
+static void invert(void) {
+ swap(&scheme.dark[Black], &scheme.light[White]);
+ swap(&scheme.light[Black], &scheme.dark[White]);
+}
+
static void printHsv(struct Hsv hsv) {
printf("%g,%g,%g\n", hsv.h, hsv.s, hsv.v);
}
@@ -265,9 +277,10 @@ int main(int argc, char *argv[]) {
bool ansi = true;
char out = 'x';
int opt;
- while (0 < (opt = getopt(argc, argv, "acghlmtx"))) {
+ while (0 < (opt = getopt(argc, argv, "acghilmtx"))) {
switch (opt) {
break; case 'a': ansi = true;
+ break; case 'i': invert();
break; case 't': ansi = false;
break; case '?': return EX_USAGE;
break; default: out = opt;