I think I've figured out why the keyboard delay and rate isn't set by systemd. Under sysvinit the init script /etc/init.d/kbd uses the variables KEYBOARD_DELAY and KEYBOARD_RATE in /etc/kbd/config to set the keyboard delay and repeat rate. I could be wrong but there doesn't seem to be a systemd service to accomplish the same task.
I've discovered that some other distros have a kbd.service (SuSE for one) but I've not been able to obtain a copy. So I tried to write a systemd service to achieve this.ie.
[Unit]
Description=Configure keyboard repeat rate in tty
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart= /sbin/kbdrate -d 750 -r 30.3
[Install]
WantedBy=multi-user.target
It looks OK to me, given that I haven't written a systemd service before, Unfortunately, it doesn't do what I intend it to do.
(The args passed to kbdrate may look odd but they are within the constraints shown in the kbdrate man page.)
To my mind it doesn't work because a) the multi-user.target isn't a tty target and/or b) I should include a Before and/or an After statement. Problem is I don't know what to do to make it work.
Does anyone more knowledgeable know how?