{"record":{"id":"27d1b9c5f643f2c1","repo":"iberianpig/fusuma","slug":"touchpad-is-not-found","errorCode":null,"errorMessage":"Touchpad is not found","messagePattern":"Touchpad is not found","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"lib/fusuma/device.rb","lineNumber":52,"sourceCode":"    end\n\n    class << self\n      # Return devices\n      # sort devices by capabilities of gesture\n      # @return [Array]\n      #: () -> Array[Device]\n      def all\n        @all ||= fetch_devices.partition do |d|\n          d.capabilities.match?(/gesture/)\n        end.flatten\n      end\n\n      # @return [Array]\n      #: () -> Array[Device]\n      def available\n        @available ||= all.select(&:available).tap do |d|\n          MultiLogger.debug(available_devices: d)\n          MultiLogger.warn(\"Touchpad is not found\") if d.empty?\n        end\n      end\n\n      #: () -> nil\n      def reset\n        @all = nil\n        @available = nil\n      end\n\n      private\n\n      # @return [Array]\n      #: () -> Array[Device]\n      def fetch_devices\n        line_parser = LineParser.new\n\n        # note: this libinput command takes a nontrivial amount of time (~200ms)\n        libinput_command.list_devices do |line|","sourceCodeStart":34,"sourceCodeEnd":70,"githubUrl":"https://github.com/iberianpig/fusuma/blob/43a7eb04fe6c0709a646be183a612e56e5f60a2e/lib/fusuma/device.rb#L34-L70","documentation":"Error \"Touchpad is not found\" thrown in iberianpig/fusuma.","triggerScenarios":"Thrown at lib/fusuma/device.rb:52 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Confirm the touchpad is detected: run libinput list-devices and look for a device with gesture capabilities.","Make sure your user can read input devices: add yourself to the input group and log out and back in.","On Wayland sessions or VMs without a multitouch touchpad, gestures are unavailable; connect a supported touchpad device."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"43a7eb04fe6c0709a646be183a612e56e5f60a2e","analyzedAt":"2026-08-23T06:17:53.504Z","schemaVersion":2},"datasetVersion":"2026-08-23T08:06:27.607Z"}