KeyboardSwitch
KeyboardSwitch copied to clipboard
Make the app cross-platform
.NET Core is cross-platform, so the service app can work on Linux. The settings UI should be implemented in Avalonia, and the ReactiveUI view models should be extracted into a separate project.
Supporting Linux seems more difficult than initially assumed. Closing this for now - will reopen if I ever decide to give it another try.
libuiohook can be used for hooking keyboard events instead of the Windows API. Alternatives for working with layouts should be researched (probably X11 can be used on Linux).
For version 4.0, macOS support won't be implemented. Maybe, it will be added in 4.1 or later. For now, only Windows and Linux will be available. I need to refine the Linux version before releasing it.
The app cross-platform now, with support for Windows, macOS, and Linux. I was thinking whether to support other OSes, like FreeBSD, but .NET doesn't support them, so I won't as well. But Wayland support on Linux is absent, so this issue cannot be closed yet.