Paste to active window support
Since version v0.20.3, vicinae supports universal "paste to active window" by relying on the uinput linux kernel module. This is how the well known ydotool utility works. On some systems, this works out of the box. On others, it requires a few tweaks. This page explains everything about it.
Setup
udev setup
Most vicinae installation methods will automatically install a udev rule under $prefix/lib/udev/rules.d that authorizes members of the input group to access the /dev/uinput device.
The instructions in this section only apply to users that do not have them installed by default, for any reason.
From the root of the vicinae repository, copy the udev rules to the appropriate system location:
cp extra/udev/rules.d/* /usr/lib/udev/rules.d/
You may also want to copy the files inside modules-load.d to make sure the uinput kernel module is getting automatically loaded on boot:
cp extra/modules-load.d/* /usr/lib/modules-load.d/
Reload udev rules
If you installed the udev rules manually or just got done installing vicinae, you will most likely need to reload the udev rules:
sudo udevadm control --reload-rules
sudo udevadm trigger
# optional: load `uinput` module manually. Might be required if you just got done installing
sudo modprobe uinput
Add your user to the input group
The installed udev rule states that access to uinput is restricted to members of the input group.
This is a standard group name on most linux distributions, but you may not be part of it. Check with the groups commands. If you are not in this group already, run:
sudo usermod -aG input $(whoami)
# start a new shell with new group, or restart your user session (logout/login again)
newgrp input
Known caveats
Environments without full window management support (KDE Plasma or Gnome without the extension) will not be able to know whether the active window is a terminal emulator window or not, and as such vicinae will not be able to dispatch the correct paste sequence (ctrl+shift+v) to them.
Paste will work in every application accepting ctrl+v though.