Você não pode fazer isso diretamente, já que as teclas modificadoras são diferentes das outras. Todos os eventos KeyPress ou KeyRelease contêm um campo indicando o estado das teclas modificadoras, então quando você recebe um evento " A pressionado", você sabe se é apenas A ou Ctrl + A . Mas, para outras chaves, você precisa saber se elas foram pressionadas antes da segunda chave.
O módulo XMonad.Actions.Submap fornece uma ação submap
para adicionar às suas combinações de teclas que irão pegar o teclado e aguardar o próximo evento de pressionamento de tecla e, em seguida, retornar a ação correspondente do mapa. Então para F1 então F2 você pode adicionar à sua lista de ligações de teclas:
myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $
[
((0, xK_F1), submap . M.fromList $
[
((0, xK_F2), someAction)
])
]