bucklespring icon indicating copy to clipboard operation
bucklespring copied to clipboard

Not working with wayland

Open milchmann80 opened this issue 1 year ago • 9 comments

There is no sound in wayland. System is Ubuntu 23.10 with wayland. I tried installing it as an snap package and with apt. Workaround is starting the gnome session with X11.

milchmann80 avatar Apr 09 '24 10:04 milchmann80

I have bucklespring sound in Wayland, but only in the Vivaldi browser. Not in the terminal, text editor, file manager, LibreOffice, or Firefox. I'm listening to it now while typing this comment, but haven't heard it outside of Vivaldi yet.

Fedora 40, KDE Plasma 6.0.4, window manager Kwin, bucklespring installed via Snap

ldedear avatar May 20 '24 01:05 ldedear

This is a known issue with wayland, as wayland does not offer any mechanisms for globally sniffing keyboard events. The X11 API for capturing keystrokes is operational, but no events are generated for other windows. This of course makes sense, as sniffing keystrokes from another application is a potential security issue.

As an alternative, you can build bucklespring with the libinput backend instead, as this will capture keystrokes directly as they are reported from the kernel to userspace:

make libinput=1

This will require some twiddling with permissions though, as regular users typically do not have access to the devices in /dev/input. On debian/ubuntu-based systems adding your user to the input group should suffice.

zevv avatar May 31 '24 06:05 zevv

As a normal user using Ubuntu Desktop 24.04 on Wayland:

  • git clone https://github.com/zevv/bucklespring && cd ./bucklespring/
  • sudo apt-get install libopenal-dev libalure-dev libxtst-dev
  • sudo apt-get install libinput-dev
  • make libinput=1
  • sudo -E -g input -u $(whoami) ./buckle

agcom avatar Jul 16 '24 23:07 agcom

so I tried using this and this still has the issue of [ALSOFT] (EE) Failed to connect PipeWire event context (errno: 112) unable to open default device I had got the things neccessary for make in archlinux

doas pacman -S openal alure li

then make libinput=1

then sudo ./buckle
[ALSOFT] (EE) Failed to connect PipeWire event context (errno: 112) unable to open default device

SerJaimeLannister avatar Sep 25 '24 16:09 SerJaimeLannister

Just a comment to warn people that use the bucklespring-libinput-git AUR package on Arch. Make sure to run buckle and NOT bucklespring: sudo -E -g input -u $(whoami) buckle

I wasted some time on the same "Failed to connect PipeWire event context" error only to realize that /usr/bin/bucklespring is a script that uses pkexec to launch the original buckle program as a background task, but doing so cancels the args passed to sudo.

Be careful and have fun! :]

alexis-belmonte avatar Feb 16 '25 10:02 alexis-belmonte

This is a known issue with wayland, as wayland does not offer any mechanisms for globally sniffing keyboard events. The X11 API for capturing keystrokes is operational, but no events are generated for other windows. This of course makes sense, as sniffing keystrokes from another application is a potential security issue.

As an alternative, you can build bucklespring with the libinput backend instead, as this will capture keystrokes directly as they are reported from the kernel to userspace:

make libinput=1

This will require some twiddling with permissions though, as regular users typically do not have access to the devices in /dev/input. On debian/ubuntu-based systems adding your user to the input group should suffice.

can you pls say me the steps of solving this issue, i want every app typing should output the keystroke sound. can you help me

RanaUniverse avatar Mar 03 '25 16:03 RanaUniverse

i try to add myself to user group input so i don't need to specify -g input:

sudo usermod -aG input $USER

but when i run either bucklespring or sudo buckle it crash:

[ALSOFT] (EE) Failed to connect PipeWire event context (errno: 112)

it works fine if i inherit the environment variables like this:

sudo -E buckle

so what is the required environment variable for running buckle?

DrSensor avatar Apr 05 '25 10:04 DrSensor

As a normal user using Ubuntu Desktop 24.04 on Wayland:

* `git clone https://github.com/zevv/bucklespring && cd ./bucklespring/`

* `sudo apt-get install libopenal-dev libalure-dev libxtst-dev`

* `sudo apt-get install libinput-dev`

* `make libinput=1`

* `sudo -E -g input -u $(whoami) ./buckle`

works on kde debian trixie on wayland 😸 Thank you!

P.S: minor tip, the last command is running buckle already and you don't need to wait for it to finish "installing", the make step is the last build step. to start buckle run the input command mentioned in a terminal or start script for example.

mahatiGH avatar Aug 26 '25 08:08 mahatiGH

i cant get this to compile on arch steamOS

(127)(deck@steamdeck` tmp)$ git clone https://github.com/zevv/bucklespring && cd ./bucklespring/
Cloning into 'bucklespring'...
remote: Enumerating objects: 1826, done.
remote: Counting objects: 100% (160/160), done.
remote: Compressing objects: 100% (24/24), done.
remote: Total 1826 (delta 152), reused 136 (delta 136), pack-reused 1666 (from 2)
Receiving objects: 100% (1826/1826), 16.97 MiB | 26.69 MiB/s, done.
Resolving deltas: 100% (688/688), done.
(deck@steamdeck bucklespring)$ pwd
/tmp/bucklespring
(deck@steamdeck bucklespring)$ make libinput=1
Package libudev was not found in the pkg-config search path.
Perhaps you should add the directory containing `libudev.pc'
to the PKG_CONFIG_PATH environment variable
Package 'libudev' not found
cc  -O3 -g -Wall -Werror  -DVERSION=\"1.5.1\" -DPATH_AUDIO=\""./wav"\"  -c main.c -o main.o
Package libudev was not found in the pkg-config search path.
Perhaps you should add the directory containing `libudev.pc'
to the PKG_CONFIG_PATH environment variable
Package 'libudev' not found
cc  -O3 -g -Wall -Werror  -DVERSION=\"1.5.1\" -DPATH_AUDIO=\""./wav"\"  -c scan-libinput.c -o scan-libinput.o
In file included from scan-libinput.c:8:
/usr/include/libinput.h:35:10: fatal error: libudev.h: No such file or directory
   35 | #include <libudev.h>
      |          ^~~~~~~~~~~
compilation terminated.
make: *** [Makefile:53: scan-libinput.o] Error 1

im p sure i have the dependency's needed but i could be wrong

Littlemac123 avatar Sep 06 '25 09:09 Littlemac123