From 34894724b0a85f7d047f31dcdc893dbd47b8f9c3 Mon Sep 17 00:00:00 2001 From: June McEnroe Date: Sat, 6 Feb 2021 19:48:14 -0500 Subject: Add xterm output to scheme --- bin/man1/scheme.1 | 7 +++++-- bin/scheme.c | 24 +++++++++++++++++++++++- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/bin/man1/scheme.1 b/bin/man1/scheme.1 index 9aa4f054..9f72d945 100644 --- a/bin/man1/scheme.1 +++ b/bin/man1/scheme.1 @@ -1,4 +1,4 @@ -.Dd July 6, 2019 +.Dd February 6, 2021 .Dt SCHEME 1 .Os . @@ -8,7 +8,7 @@ . .Sh SYNOPSIS .Nm -.Op Fl acghilmstx +.Op Fl Xacghilmstx .Op Fl p Ar n . .Sh DESCRIPTION @@ -19,6 +19,9 @@ and outputs it in a number of formats. .Pp The arguments are as follows: .Bl -tag -width Ds +.It Fl X +Output Xresources for +.Xr xterm 1 . .It Fl a Generate the 16 ANSI colors. This is the default. diff --git a/bin/scheme.c b/bin/scheme.c index b921a77e..2bae8f82 100644 --- a/bin/scheme.c +++ b/bin/scheme.c @@ -156,6 +156,27 @@ static void outputEnum(const struct HSV *hsv, uint len) { printf("};\n"); } +#define FORMAT_X "rgb:%02hhX/%02hhX/%02hhX" + +static const char *Resources[SchemeLen] = { + [Background] = "background", + [Foreground] = "foreground", + [Bold] = "colorBD", + [Selection] = "highlightColor", + [Cursor] = "cursorColor", +}; + +static void outputXTerm(const struct HSV *hsv, uint len) { + for (uint i = 0; i < len; ++i) { + struct RGB rgb = convert(hsv[i]); + if (Resources[i]) { + printf("XTerm*%s: " FORMAT_X "\n", Resources[i], rgb.r, rgb.g, rgb.b); + } else { + printf("XTerm*color%u: " FORMAT_X "\n", i, rgb.r, rgb.g, rgb.b); + } + } +} + static const char *Mintty[SchemeLen] = { "Black", "Red", "Green", "Yellow", "Blue", "Magenta", "Cyan", "White", @@ -230,8 +251,9 @@ int main(int argc, char *argv[]) { uint len = 16; int opt; - while (0 < (opt = getopt(argc, argv, "acghilmp:stx"))) { + while (0 < (opt = getopt(argc, argv, "Xacghilmp:stx"))) { switch (opt) { + break; case 'X': output = outputXTerm; break; case 'a': len = 16; break; case 'c': output = outputEnum; break; case 'g': output = outputPNG; -- cgit 1.4.1 ='path'>path: root/bounce.h (unfollow)
Commit message (Collapse)Author
2019-11-10Add capsicum note to READMEJune McEnroe
2019-11-10Filter extended-joinJune McEnroe
2019-11-10Expand client configuration documentation and list capabilitiesJune McEnroe
2019-11-10Request all supported caps from serverJune McEnroe
2019-11-10Filter ACCOUNT, AWAY, CHGHOST for incapable clientsJune McEnroe
2019-11-10Rename listen to localJune McEnroe
2019-11-09Remove extended-join and invite-notifyJune McEnroe
The remaining caps only generate new commands which can easily be filtered out when sending to clients so will be in the first pass of support. extended-join is probably safe to pass through unaltered, just causing extraneous parameters on JOIN commands, but maybe not. invite-notify reuses the INVITE command where the invited user is not self.
2019-11-09Maintain stateCaps and offer them to clientsJune McEnroe
2019-11-09Parse capabilitiesJune McEnroe
The list that I've defined are the ones that I expect to be able to enable probably without any clients breaking... And of course server-time which pounce implements itself.
2019-11-09Avoid the reserved _A names with BIT macroJune McEnroe
2019-11-09Define macro for bit flag enumsJune McEnroe
2019-11-08Check that password is hashedJune McEnroe
2019-11-08Avoid calling getopt_long again after it returns -1June McEnroe
On GNU, calling getopt_long again will reset optind back to the first non-option argument, which would cause an infinite loop of reading the same configurtion file forever.
2019-11-08Only change AWAY status for registered clientsJune McEnroe
Turns out I did eventually fix this, because I may want to implement "passive clients" for logging or notification stuff, which wouldn't affect AWAY status either.
2019-11-07Just write the example normallyJune McEnroe
2019-11-07Include path in readlinkat errorJune McEnroe
2019-11-07Call clientConsume before clientRecvJune McEnroe
This might reduce the frequency of a client getting its own message back because it was behind in the ring when it sent it.
2019-11-06Use -l:filename in Linux.mkJune McEnroe
2019-11-06Fix compat.h for #defined strlcpyJune McEnroe
2019-11-06Allow unsetting LIBRESSL_PREFIXJune McEnroe
2019-11-06Document calico service configurationJune McEnroe
2019-11-06Document SASL EXTERNAL configuration in more detailJune McEnroe
2019-11-06Document pounce service configurationJune McEnroe
2019-11-06Mention Darwin and GNU/Linux in READMEJune McEnroe
2019-11-06Assume LibreSSL from brew on DarwinJune McEnroe
2019-11-06Remove -DNO_EXPLICIT_BZERO from Darwin.mkJune McEnroe
2019-11-06Don't install rc scripts or dirs on LinuxJune McEnroe