diff --git a/inputcontrol/controller_uinput.go b/inputcontrol/controller_uinput.go index 3bdff55..8e6023b 100644 --- a/inputcontrol/controller_uinput.go +++ b/inputcontrol/controller_uinput.go @@ -23,6 +23,7 @@ package inputcontrol import ( + "errors" "fmt" "github.com/bendahl/uinput" "log" @@ -52,10 +53,16 @@ func InitUinputController() (Controller, error) { return nil, err } keyboard, err := uinput.CreateKeyboard("/dev/uinput", []byte("remote-touchpad-keyboard")) + if errors.Is(err, os.ErrNotExist) || errors.Is(err, os.ErrPermission) { + err = &UnsupportedPlatformError{err} + } if err != nil { return nil, err } mouse, err := uinput.CreateMouse("/dev/uinput", []byte("remote-touchpad-mouse")) + if errors.Is(err, os.ErrNotExist) || errors.Is(err, os.ErrPermission) { + err = &UnsupportedPlatformError{err} + } if err != nil { keyboard.Close() return nil, err diff --git a/inputcontrol/keymap.go b/inputcontrol/keymap.go index 3989bb8..353e338 100644 --- a/inputcontrol/keymap.go +++ b/inputcontrol/keymap.go @@ -61,7 +61,7 @@ func LoadKeymap(name string) (*Keymap, error) { } bkeymap, err := exec.Command("loadkeys", "--bkeymap", name).Output() if err != nil { - return nil, err + return nil, &UnsupportedPlatformError{err} } if !strings.HasPrefix(string(bkeymap), bkeymapFileSignature) { return nil, fmt.Errorf("invalid bkeymap: signature not found")