25
submitted 1 year ago* (last edited 1 year ago) by quantenzitrone@feddit.de to c/linux@lemmy.ml

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 @trachemys@iusearchlinux.fyi):

  • switch to TTY and log in
  • export DISPLAY=':0'
  • setxkbmap -option grab:break_actions
  • xdotool key XF86Ungrab
top 12 comments
sorted by: hot top controversial new old
[-] trachemys@iusearchlinux.fyi 14 points 1 year ago

The key word to be searching for is “ungrab” mouse. here is a stackexchange on this.. On some systems ctrl-alt-/(on keypad) might work, but that is often disabled for security.

[-] quantenzitrone@feddit.de 3 points 1 year ago

This is exactly what I needed, thanks!

[-] d_k_bo@feddit.de 9 points 1 year ago

Xorg bad?

It's not bad. It's just old, broken and unmaintained.

[-] wallmenis@lemmy.one 6 points 1 year ago

That is another word for "bad"... But I guess that was the joke 😅

[-] vector_zero@lemmy.world 2 points 1 year ago

old

Old doesn't mean bad

broken

Is it?

unmaintained

Is it?

I use Wayland personally, but I've had almost zero issues with X in the last decade, maybe with the exception of minor screen tearing several years back.

[-] d_k_bo@feddit.de 5 points 1 year ago

My comment above should be taken with a grain of salt.

broken

It works in many cases. From a privacy/security standpoint, it is a nightmare since any program can just access all other windows. Multiple monitor setups with different scaling don't work at all. …

unmaintained

While the git repo receives some commits, most of them are fixes for xwayland. Most X11 contributors that are still active are working on wayland now. See https://gitlab.freedesktop.org/xorg/xserver/-/commits/master and (not so serious) https://floss.social/@XOrgFoundation/110769221673585385

[-] vector_zero@lemmy.world 2 points 1 year ago

Ah, I've almost always used a single monitor setup, so my use case wasn't weird enough to break X11. That said. Even Wayland is wonky on my multi monitor setup at work, though that's probably more a GNOME thing than a Wayland thing.

I do still think the approach they took with Wayland is a tad odd, in that everyone has to implement it themselves. But hey, if it works, it works.

[-] CarlosCheddar@lemmy.world 4 points 1 year ago

I recently enabled SysRq to kill processes that hang and it’s been working nicely. Haven’t had to restart in a while. https://en.m.wikipedia.org/wiki/Magic_SysRq_key

[-] bjoern_tantau@swg-empire.de 2 points 1 year ago

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

[-] quantenzitrone@feddit.de 2 points 1 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

[-] anon5621@lemmy.ml -4 points 1 year ago
[-] quantenzitrone@feddit.de 4 points 1 year ago

Maybe once I am a bit more used to reading and understanding documentation for large existing libraries and programs.

this post was submitted on 03 Oct 2023
25 points (100.0% liked)

Linux

48224 readers
589 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS