在Linux中只用修饰符注册热键

我正在使用这个示例在Linux X11graphics系统的程序中设置热键。 问题是我不明白如何设置热键组合,如Ctrl + AltCtrl + Shift ,即没有任何键,只有修改器。 我想这样:

KeyCode key = XKeysymToKeycode(display, 0); //no key code XGrabKey(display, key, ControlMask | ShiftMask, grabWin, true, GrabModeAsync, GrabModeAsync); 

但它不工作。 但是,它是这样工作的(种):

  KeyCode key = XKeysymToKeycode(display, XK_Alt_L); //Alt key XGrabKey(display, key, ControlMask, grabWin, true, GrabModeAsync, GrabModeAsync); 

我不喜欢这个解决scheme,因为:

  1. 逻辑上错误
  2. 只有在按下Ctrl + Alt时才会触发,而不是Alt + Ctrl ,即按下顺序非常重要
  3. 它用CtrlAlt键在窗口中阻止所有其他组合。

我究竟做错了什么?