| NFMC-PAD(1) | NeoFlux | NFMC-PAD(1) |
nfmc-pad - game pad to keyboard bridge for NeoFlux Media Center
nfmc-pad [--config PATH] [--verbose]
nfmc-pad --list
nfmc-pad --test COMBO
nfmc-pad --write-config [PATH]
nfmc-pad reads Linux game pads (evdev devices under /dev/input/event*) and turns their buttons, d-pad and sticks into X key presses, so a pad drives NeoFlux Media Center's menus, the slit dock apps and ordinary applications exactly as a keyboard would. One stick (the right one by default) moves the mouse pointer instead, and a button bound to a mouse button clicks, so a browser's video thumbnails are reachable from the sofa. It is a separate small process so the window manager itself never opens an input device. Pads plugged in later are picked up within a few seconds; unplugging one is harmless.
Directions (d-pad, hat, or a stick set to arrows) auto-repeat while held, so a menu scrolls; other buttons press once. Key presses, clicks and pointer motion are injected with the XTEST extension, which any X client may use.
A TOML file. Each button maps to a key combo spelled like a neoflux(1) keys.toml binding: a key name (Return, Escape, Up, F1, XF86AudioRaiseVolume) with optional modifiers (Super+r, Super+Shift+f), or to a mouse button: Mouse1 (left), Mouse2 (middle), Mouse3 (right), WheelUp, WheelDown. A mouse button stays pressed while the pad button is held, so it can drag a seek bar; wheel bindings auto-repeat like directions. Button names follow the Linux evdev game-pad layout:
Older pads in "DirectInput" mode (a Logitech F310/F710 with its switch on D, a Rumblepad) report classic joystick buttons; these are mapped by the Logitech numbering (1=west, 2=south, 3=east, 4=north, 5/6 shoulders, 7/8 triggers, 9 select, 10 start, 11/12 stick clicks). --verbose prints any button or axis code it does not know.
Defaults, chosen for someone watching television in a web browser: d-pad and left stick are the arrow keys (menus; page scrolling in a browser); the right stick moves the pointer; A is Return, B is Escape, X is a left click (Mouse1), Y is Super+Shift+f (movie); Start and Guide open the root menu (Super+r); Select is Super+Tab (next window — Firefox to Chrome and back); the shoulders are the volume keys; the triggers are Control+Shift+Tab and Control+Tab (previous / next browser tab); pressing the left stick in is mute, the right stick in is a right click (Mouse3). Other keys:
On a system with logind or elogind, udev tags joystick devices uaccess so the user at the seat may read them with no further setup. Otherwise add the user to the input group. nfmc-pad --list says whether each pad is readable.
nfmc(1), neoflux(1)
| October 2026 | nfmc-pad 0.5.3 |