--- /dev/null
+#!/usr/bin/perl
+$t=0;
+$intv=10;
+
+sub roundnum ($) {
+ my ($s) = @_;
+ return
+ $s < 60*2 ? 60 :
+ $s < 3600*2 ? 60 :
+ $s < 86400*2 ? 3600 :
+ 86400;
+}
+
+sub conv ($) {
+ my ($s) = @_;
+ return sprintf "%2dd%2dh%02dm%02ds",
+ int($s / 86400), int(($s % 86400) / 3600),
+ int(($s % 3600) / 60), $s % 60;
+}
+
+for (;;) {
+ my $unit= roundnum($t);
+ my $r= int($t / $unit) * $unit;
+ printf "%8d %s +%8d %s R %8d %s %7d %5.2f\n",
+ $t, conv($t), $intv, conv($intv),
+ $r, conv($r), $t-$r, ($t-$r)/$unit;
+ $intv= $t*0.01 + 10;
+ $t += $intv;
+ #$intv *= 1.01;
+ #$intv += 5;
+}
--- /dev/null
+
+#include <X11/Xlib.h>
+#include <X11/keysym.h>
+#include <X11/Xutil.h>
+
+#include <stdio.h>
+#include <assert.h>
+
+static Display *disp;
+
+int main(void) {
+ disp= XOpenDisplay(0); assert(disp);
+ fprintf(stderr,"XOpenDisplay OK\n");
+ int code= XKeysymToKeycode(disp,XK_slash);
+ fprintf(stderr,"XKeySymToKeycode(XK_slash)=%d\n",code);
+ int per;
+ KeySym *map= XGetKeyboardMapping(disp, code,code, &per);
+ fprintf(stderr,"XGetKeyboardMapping(...)=%p per=%d\n",map,per);
+ int i;
+ for (i=0; i<per; i++)
+ fprintf(stderr," map[%d]=%#lx\n",i,(unsigned long)map[i]);
+ fprintf(stderr,"done.\n");
+ return 0;
+}