├── .gitattributes ├── .github └── workflows │ └── publish-nuget.yml ├── .gitignore ├── LICENSE.md ├── NeatInput.sln ├── README.md ├── samples └── NeatInput.ConsoleApp │ ├── NeatInput.ConsoleApp.csproj │ └── Program.cs └── src ├── NeatInput.Linux └── NeatInput.Linux.csproj └── NeatInput.Windows ├── Events ├── InputEvent.cs ├── KeyboardEvent.cs └── MouseEvent.cs ├── Hooking ├── Hook.cs ├── KeyboardHook.cs ├── MouseHook.cs └── ThreadContext.cs ├── IInputEventReceiver.cs ├── IInputSource.cs ├── IKeyboardEventReceiver.cs ├── IMouseEventReceiver.cs ├── InputSource.cs ├── Interop ├── Interop.KBDLLHOOKSTRUCT.cs ├── Interop.MSLLHOOKSTRUCT.cs ├── Libraries.cs ├── SafeHandles │ └── SetWindowsHookExSafeHandle.cs └── User32 │ ├── Interop.CallNextHookEx.cs │ ├── Interop.DispatchMessageW.cs │ ├── Interop.GetMessageW.cs │ ├── Interop.HC.cs │ ├── Interop.MSG.cs │ ├── Interop.PM.cs │ ├── Interop.PeekMessageW.cs │ ├── Interop.SetWindowsHookExW.cs │ ├── Interop.TranslateMessage.cs │ ├── Interop.UnhookWindowsHookEx.cs │ ├── Interop.WH.cs │ ├── Interop.WaitMessage.cs │ └── Interop.WindowMessage.cs ├── NeatInput.Windows.csproj └── Processing ├── IProcessingStep.cs ├── InputProcessor.cs ├── InputProcessorBase.cs ├── InputProcessorProvider.cs ├── Keyboard ├── Enums │ ├── KeyStates.cs │ └── Keys.cs └── Steps │ ├── PressedKey.cs │ ├── Simulated.cs │ └── State.cs ├── KeyboardProcessor.cs ├── Mouse ├── Enums │ ├── MouseKeys.cs │ └── MouseStates.cs └── Steps │ ├── Helper.cs │ ├── Key.cs │ ├── Position.cs │ ├── Simulated.cs │ ├── State.cs │ ├── Wheel.cs │ └── XButton.cs ├── MouseProcessor.cs ├── RawInputProcessor.cs └── ValueTransformation.cs /.gitattributes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/.gitattributes -------------------------------------------------------------------------------- /.github/workflows/publish-nuget.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/.github/workflows/publish-nuget.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/LICENSE.md -------------------------------------------------------------------------------- /NeatInput.sln: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/NeatInput.sln -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/README.md -------------------------------------------------------------------------------- /samples/NeatInput.ConsoleApp/NeatInput.ConsoleApp.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/samples/NeatInput.ConsoleApp/NeatInput.ConsoleApp.csproj -------------------------------------------------------------------------------- /samples/NeatInput.ConsoleApp/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/samples/NeatInput.ConsoleApp/Program.cs -------------------------------------------------------------------------------- /src/NeatInput.Linux/NeatInput.Linux.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Linux/NeatInput.Linux.csproj -------------------------------------------------------------------------------- /src/NeatInput.Windows/Events/InputEvent.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Events/InputEvent.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Events/KeyboardEvent.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Events/KeyboardEvent.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Events/MouseEvent.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Events/MouseEvent.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Hooking/Hook.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Hooking/Hook.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Hooking/KeyboardHook.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Hooking/KeyboardHook.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Hooking/MouseHook.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Hooking/MouseHook.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Hooking/ThreadContext.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Hooking/ThreadContext.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/IInputEventReceiver.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/IInputEventReceiver.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/IInputSource.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/IInputSource.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/IKeyboardEventReceiver.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/IKeyboardEventReceiver.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/IMouseEventReceiver.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/IMouseEventReceiver.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/InputSource.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/InputSource.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Interop/Interop.KBDLLHOOKSTRUCT.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Interop/Interop.KBDLLHOOKSTRUCT.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Interop/Interop.MSLLHOOKSTRUCT.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Interop/Interop.MSLLHOOKSTRUCT.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Interop/Libraries.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Interop/Libraries.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Interop/SafeHandles/SetWindowsHookExSafeHandle.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Interop/SafeHandles/SetWindowsHookExSafeHandle.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Interop/User32/Interop.CallNextHookEx.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Interop/User32/Interop.CallNextHookEx.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Interop/User32/Interop.DispatchMessageW.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Interop/User32/Interop.DispatchMessageW.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Interop/User32/Interop.GetMessageW.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Interop/User32/Interop.GetMessageW.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Interop/User32/Interop.HC.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Interop/User32/Interop.HC.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Interop/User32/Interop.MSG.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Interop/User32/Interop.MSG.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Interop/User32/Interop.PM.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Interop/User32/Interop.PM.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Interop/User32/Interop.PeekMessageW.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Interop/User32/Interop.PeekMessageW.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Interop/User32/Interop.SetWindowsHookExW.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Interop/User32/Interop.SetWindowsHookExW.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Interop/User32/Interop.TranslateMessage.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Interop/User32/Interop.TranslateMessage.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Interop/User32/Interop.UnhookWindowsHookEx.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Interop/User32/Interop.UnhookWindowsHookEx.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Interop/User32/Interop.WH.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Interop/User32/Interop.WH.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Interop/User32/Interop.WaitMessage.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Interop/User32/Interop.WaitMessage.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Interop/User32/Interop.WindowMessage.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Interop/User32/Interop.WindowMessage.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/NeatInput.Windows.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/NeatInput.Windows.csproj -------------------------------------------------------------------------------- /src/NeatInput.Windows/Processing/IProcessingStep.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Processing/IProcessingStep.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Processing/InputProcessor.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Processing/InputProcessor.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Processing/InputProcessorBase.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Processing/InputProcessorBase.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Processing/InputProcessorProvider.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Processing/InputProcessorProvider.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Processing/Keyboard/Enums/KeyStates.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Processing/Keyboard/Enums/KeyStates.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Processing/Keyboard/Enums/Keys.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Processing/Keyboard/Enums/Keys.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Processing/Keyboard/Steps/PressedKey.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Processing/Keyboard/Steps/PressedKey.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Processing/Keyboard/Steps/Simulated.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Processing/Keyboard/Steps/Simulated.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Processing/Keyboard/Steps/State.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Processing/Keyboard/Steps/State.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Processing/KeyboardProcessor.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Processing/KeyboardProcessor.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Processing/Mouse/Enums/MouseKeys.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Processing/Mouse/Enums/MouseKeys.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Processing/Mouse/Enums/MouseStates.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Processing/Mouse/Enums/MouseStates.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Processing/Mouse/Steps/Helper.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Processing/Mouse/Steps/Helper.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Processing/Mouse/Steps/Key.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Processing/Mouse/Steps/Key.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Processing/Mouse/Steps/Position.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Processing/Mouse/Steps/Position.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Processing/Mouse/Steps/Simulated.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Processing/Mouse/Steps/Simulated.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Processing/Mouse/Steps/State.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Processing/Mouse/Steps/State.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Processing/Mouse/Steps/Wheel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Processing/Mouse/Steps/Wheel.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Processing/Mouse/Steps/XButton.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Processing/Mouse/Steps/XButton.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Processing/MouseProcessor.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Processing/MouseProcessor.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Processing/RawInputProcessor.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Processing/RawInputProcessor.cs -------------------------------------------------------------------------------- /src/NeatInput.Windows/Processing/ValueTransformation.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LegendaryB/NeatInput/HEAD/src/NeatInput.Windows/Processing/ValueTransformation.cs --------------------------------------------------------------------------------