O endereço do argumento na quarta coluna é passado para a função listada na terceira coluna. Por exemplo, observe como a função zoom() é listada duas vezes em argumentos diferentes para atalhos diferentes.
O tipo de dados Shortcut que compõe a matriz shortcuts[] em sua pergunta é definido em x.c como uma estrutura de quatro membros:
typedef struct {
uint mod;
KeySym keysym;
void (*func)(const Arg *);
const Arg arg;
} Shortcut;
O último membro de Shortcut , Arg , é definido em st.h como uma união de quatro:
typedef union {
int i;
uint ui;
float f;
const void *v;
} Arg;
Um exemplo de func de um Shortcut sendo chamado com o endereço do membro da união da estrutura ocorre em keypress() de x.c , onde bp aponta para um Shortcut :
if (ksym == bp->keysym && match(bp->mod, e->state)) {
bp->func(&(bp->arg));
...
Um exemplo concreto de aproveitamento dessa configuração pode ser visto em zoom() , onde o float na Arg union é usado. A partir da configuração da sua pergunta, arg->f nesta função pode ser +1 ou -1 para aumentar ou diminuir o tamanho da fonte:
void
zoom(const Arg *arg)
{
Arg larg;
larg.f = usedfontsize + arg->f;
zoomabs(&larg);
}