OK, I hacked something into XBoard for starters. I have second thoughts about the periodic polling: this would consume a lot of bandwidth for the server, if the list is long. So perhaps it would be better to only refresh on demand, when the user clicks on the graph. For instance, a right-click on an empty part of the graph could refresh it. I did not know how to let XBoard react on the mouse pointer just hovering over something. But an alternative design would be to use right-clicking on a dot to only see the info on it displayed (in the Message Field). For coinciding dots, repeated clicking could then cycle through all the ads there. A left-click on a dot could then issue the challenge, a left-click in an empty region would 'pop down' the seek graph (i.e. show the board).
Rated ads are red dots (premoveHighlightColor), unrated ads green, while all wilds (rated or unrated) are yellow (highlightMoveColor). Of course this could be elaborated on, but these were colors that were already available.
Unfortunately I did this development in a branch that is still going to be subject to extensive refactoring of the right-click mouse handler, and I did not want to interfere with that by patching the old mouse handler in an incompatible way. So what I have now is controlled purely by the left mouse button:
* down-click on the board summons up a fresh seek graph.
* down-click on an empty region of the graph pops it down
* down-click on a dot shows the ad in the message field
* up-click on a dot challenges the seeker
So to only view the ad, you left-downclick, see it is not what you want, and move the mouse off the dot before you release the button. If you want to refresh the graph, pop it down, and then back up, by clicking off dots twice.
The seek graph can only be activated when you set the (persistent) option
-seekGraph true. A shortcut for this is
-sg. (There is no shortcut to switch it off, but the default vaue is off.) You can only summon up the seek graph in ICS mode, when you are not playing or observing. (XBoard internal modes BeginningOfGame and IcsIdle.)
The front-end could be better, but now I want to do WinBoard first, while people can already test the back-end. (In particular if this does not interfere with other ICS commands.) The sources are in the 'seekgraph' branch of the hgm,nubati.net repository.