Xmatrix name patch A patch for Jamie Zawinski's Xmatrix screensaver (4.21) that allows a user to replace their name for Neo's. Jamie thinks this is a dumb idea, I don't see why since you can replace the phone number to be traced. Might as well go all the way. name.patch Apply as follows: At the top level of the xscreensaver source tree do the following, # patch -p0 < name.patch larry@bokchoy:~$ patch -p0 --- xscreensaver-4.21.mod/hacks/xmatrix.c 2003-08-03 21:01:55.000000000 -0400 +++ xscreensaver-4.21/hacks/xmatrix.c 2005-04-02 16:38:40.000000000 -0500 @@ -71,6 +71,7 @@ #define CHAR_MAPS 3 #define PLAIN_MAP 1 #define GLOW_MAP 2 +#define MAXNAME 32 typedef struct { int glow : 8; @@ -944,15 +945,21 @@ { case KNOCK: { - const char *blocks[] = { - "Wake up, Neo...", + char *blocks[] = { + " ", "The Matrix has you...", "Follow the white rabbit.", " ", - "Knock, knock, Neo." + " " }; int nblocks = countof(blocks); int j; + + char *s = get_string_resource ("name", "Name"); + blocks[0] = (char *) malloc (sizeof(char)*MAXNAME); + snprintf(blocks[0],MAXNAME,"Wake up, %s...",s); + blocks[4] = (char *) malloc (sizeof(char)*MAXNAME); + snprintf(blocks[4],MAXNAME,"Knock, Knock, %s.",s); typing_delay = True; transmit_delay = False; long_delay = False; @@ -969,6 +976,9 @@ visible_cursor, True); matrix_usleep (state, 2000000); } + + if (blocks[0]) free(blocks[0]); + if (blocks[4]) free(blocks[4]); } break; @@ -1441,6 +1451,7 @@ "*insert: both", "*mode: Matrix", "*tracePhone: (312) 555-0690", + "*Name: Neo", "*spinners: 5", "*density: 75", "*knockKnock: False", @@ -1459,6 +1470,7 @@ { "-trace", ".mode", XrmoptionNoArg, "trace" }, { "-crack", ".mode", XrmoptionNoArg, "crack"}, { "-phone", ".tracePhone", XrmoptionSepArg, 0 }, + { "-name", ".Name", XrmoptionSepArg, 0 }, { "-dna", ".mode", XrmoptionNoArg, "DNA" }, { "-binary", ".mode", XrmoptionNoArg, "binary" }, { "-hexadecimal", ".mode", XrmoptionNoArg, "hexadecimal"},