Showing posts with label clipboard. Show all posts
Showing posts with label clipboard. Show all posts

Sunday, 31 May 2026

I just want to paste something - Ubuntu keyboard shortcuts

Last time, I wrote about wrestling with the Ubuntu display server, Wayland, to get a clipboard manager working. This involved a lot of research and fiddling with settings I'd forgotten existed.

So we're coming back to this (and this series is building to a point, I promise) because important keyboard shortcuts weren't working, and I couldn't figure out why.

Again, for credit - I used ChatGPT and Claude to help investigate everything, as well as lots of The Internet of course.

The setup

Specifically, I noticed that Ctrl+Shift+V (paste without formatting) had stopped working - nothing happened at all. Right-clicking and selecting "Paste without formatting" from the menu worked fine, so the clipboard itself was functioning correctly.

None of the obvious things seemed to work, so in we go.

Tally ho

Yeah so clearly something had broken - presumably something was capturing the keyboard event somewhere. But where to start? I can debug Ubuntu, but it's not a forte of mine so let's start with Claude.

According to Claude, the first suspect was IBus, Ubuntu's input method framework, which is known to grab Ctrl+Shift+V for Unicode character entry. Killing the IBus daemon ruled it out.

Next I checked GNOME's built-in keyboard shortcuts using gsettings:

gsettings list-recursively | grep -i "ctrl.*shift.*v\|<Primary><Shift>v"
gsettings list-recursively org.gnome.shell.keybindings | grep -i shift
gsettings list-recursively org.gnome.settings-daemon.plugins.media-keys | grep -i shift

Lo and behold - nothing useful came back.

A test in Firefox showed this wasn't a Chrome anomaly, which made it likely the interception was happening at the OS level, not in the browser.

So where is it?

Claude had me go looking for a running clipboard manager (which was odd, since it knew GPaste was running having just helped me get it working) but a process grep "revealed" GPaste (shock):

ps aux | grep -iE "copyq|gpaste|autokey|xbindkeys|keyd|espanso|ulauncher|albert"

GPaste does grab paste-related shortcuts, although I'd previously manually checked through the shortcuts. Re-inspecting its own settings showed Ctrl+Shift+V wasn't listed there.

The real breakthrough came from using wev, a Wayland event viewer:

wev | grep -A2 "sym\|state"

This showed that when pressing Ctrl+Shift+V, the V key only ever produced a release event, never a press. Something was consuming the keypress at the GNOME Shell level, before it ever reached Wayland or the browser.

Claude went back to GPaste at this point, and the GPaste GNOME Shell extension. It does operate at exactly that level, but disabling it and logging out didn't fix the problem - the keydown event was still being swallowed.

No really, where is it?

A final breakthrough came from querying dconf directly, which shows much lower level configuration than gsettings:

dconf dump / | grep -i "shift.*v\|ctrl.*v" | grep -iv "audio\|volume\|XF86"

This revealed a custom keybinding with Ctrl+Shift+V. Inspecting it further:

dconf dump / | grep -B5 "Shift><Control>v"
dconf dump /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/

Showed this:

binding='<Shift><Control>v'
command='/usr/bin/diodon'
name='Diodon'

Oh hello Diodon - you're still here. Apparently, despite being uninstalled months ago, my old clipboard manager did not clear up properly when it was uninstalled. Or possibly I'd written an extra shortcut and forgotten? Either way, there was a leftover GNOME keybinding, orphaned but causing problems. The binary was gone, so the shortcut did absolutely nothing, but it was still intercepting the keypress at the Shell level and swallowing it.

Execute Order 66

dconf reset -f /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/

One command, instant fix, no restart required.

Conclusion

This was interesting. I did essentially end up editing the blasted registry again, which is a really poor state of affairs and as I said before, something I thought Linux had moved past. But here we are.

More interesting was the journey Claude and I went on together. I could have debugged this myself, but this isn't information I retain in my brain, so I'd have been looking everything up. By letting Claude take the lead, the investigation was certainly quicker, but also took a very different path.

Instead of methodically isolating the exact place where the keypress event was being intercepted, I would have gone to dconf sooner, and without a detour through gsettings. I'd have used my experience and intuition to bypass some stages of diagnosis. If I remembered all the relevant commands, that probably would have been quicker.

That said, if that intuitive guess had proven wrong I'd have been much more lost. I hadn't used wev before, so I'd have been starting from scratch entirely there. Plus I actually fixed this alongside doing something else, whereas working solo would have required direct focus and likely I'd have put it off for much longer.

So was Claude helpful here? Undoubtedly yes, but not quite in the way I expected - and here we are getting to the point of this trilogy (oh yes - there is a point) which is about how we work collaboratively with AI, and how we learn through this process. But that's next time!


This post is part of a series:

Monday, 27 April 2026

I just want to paste something - Ubuntu clipboard managers

Every so often I need to remind myself I can still do technical things. Then I feel the urge to write about it. This time, the rabbit hole starts with Ubuntu clipboard managers, and leads to debugging the desktop itself.

Digging into the nuts and bolts of the desktop is something I don't do very often, so I'm keeping some notes for posterity.

Credit - I used ChatGPT and Claude to help investigate everything, as well as lots of The Internet of course.

The setup

I've run Ubuntu on my laptop for many years. Ubuntu is great, but for some reason it doesn't come with a built-in clipboard manager. I ran Diodon for a long, long time - simple and handled everything I needed. Sadly, it stopped working a while back so I removed it and tried other options - none of which worked.

More setup

After lots of digging, plus some conversations with Claude, it became clear the problem was with the display server, Wayland. This has an enhanced security model over X11 which stops many of the top listed clipboard managers working - presumably including Diodon, back in the day. The solution was either to switch back to X11 (which then breaks support for touchpad swipes between desktops) or to use GPaste. Which also doesn't work.

Sigh

Yeah it's one of those problems. So down the rabbithole we go...

So, by default GPaste is blocked by the same security as the others. We can register it as a trusted shell extension ... if we have the extensions app installed... which we don't by default...

sudo apt install gnome-shell-extension-prefs

Ok, back on track. We can register it as a trusted shell extension with the extensions app:

gnome-extensions enable GPaste@gnome-shell-extensions.gnome.org

Which allows it to load properly (appears top right). Copy also now adds things to the clipboard list. If you're following along at home and it doesn't, turn on "Track changes" in the UI and all should be well.

Pasting from history?

Now you're able to click on the manager, look at the list and pick the entry you want to be on the clipboard. For me, doing this with the mouse destroys about 2/3 of the point of a clipboard manager - may as well just navigate back to the original data and copy from there. I need a keyboard shortcut to open the history except... the keyboard shortcuts don't seem to work.

Hhgggnnnn.

No matter - I can just change the binding to something. Except the rebinding screens don't work. Can't type into the boxes, and it doesn't capture keypress.

Argh.

This is, according to Claude, a "known quirk" with GPaste's settings UI. Which seems a polite way of saying "it's broken". Claude recommends setting it directly from the command line:

gpaste-client settings --set-string shortcuts-show-history "<Ctrl><Shift>H"

Yeah, that didn't work either. Silently ignored.

Now we're breaking out dconf-editor (which also needed installing) and navigating to:

/org/gnome/gpaste

and editing directly there.

And finally, finally it's working.

Conclusion

Well, this was frustrating. A stupidly long runaround to get to something that even Windows has built-in by default now. And the fixes are exactly the kind of thing that put normal people off using Linux - the kind of thing I thought we'd moved past a long time ago. Breaking out dconf-editor is the equivalent of having to use regedit for crying out loud.

On the Wayland / X11 choice, the touchpad gestures were fixable in X11 with some work. The real reason I didn't switch back was because I try to keep my Linux desktop as vanilla as possible. It seems likely that Wayland is the future for Ubuntu, so unless I want to change distro I may as well accept that.

Right, enough of this for the moment. More coming...


This post is part of a series: