Wiring a momentary button to USB
Cheapest and simplest solution I know of is to find an old USB PC keyboard. 

Extract the small circuit board from it. 

Run xev on your Linux machine to find which two contacts you have to short together on the board to get some character as an output. You can also trace out the patterns on the keyboard membrane to do this.

Then buy any momentary button and connect it to the two contacts you found.

This way I have PageUp/PageDown footswitches for my notes, when I play piano.