I’m posting here, because i have no idea how to search for this.

When exploring GTK programming, I ran into a very specific problem:

I created an application that crashes when i open a GtkDropDown, so to debug the crash I ran my app inside GDB. When GDB notices an application crashing, it freezes it, so i can analyze the state in which it crashed. The GtkDropDown grabs the pointer, like rofi or i3lock grab the pointer to prevent the window manager from exercising any keyboard shortcuts. Problem is now, the application gets frozen while the pointer is grabbed, so I’m basically locked out of my window manager.

To close the application, I can just log into a TTY and kill the GDB process, but I would like to have a simpler solution, that possibly doesn’t kill the application.

Is there a way with Xorg to get out of such a situation without switching to the TTY? If not, why can a single user application completely prevent you from using anything in your graphical environment?

Because Xorg bad? Should I switch to Wayland?

Solution (thanks to @[email protected]):

  • switch to TTY and log in
  • export DISPLAY=':0'
  • setxkbmap -option grab:break_actions
  • xdotool key XF86Ungrab
  • Björn Tantau
    link
    fedilink
    21 year ago

    Does CTRL+ALT+ESC and click work? I think it’s Xorg’s way of killing a window.

    • @[email protected]OP
      link
      fedilink
      21 year ago

      nope, that is probably window manager specific, i’m using i3, but any keyboard shortcuts get disabled when a window grabs the pointer anyway, i found a solution and updated my post