Migrated to qt6.
This commit is contained in:
49
README.md
49
README.md
@ -10,7 +10,7 @@ ThunderPad is an accessibility-focused fork of [QJoyPad](https://github.com/panz
|
||||
Quick Installation
|
||||
------------------
|
||||
|
||||
git clone https://github.com/stormux-dev/thunderpad
|
||||
git clone https://git.stormux.org/storm/thunderpad
|
||||
mkdir thunderpad/build
|
||||
cd thunderpad/build
|
||||
cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
|
||||
@ -21,6 +21,12 @@ For more details see [Installation](#installation).
|
||||
|
||||
## What's New in ThunderPad
|
||||
|
||||
### Latest Updates (2025.06.30)
|
||||
- **Qt 6 Migration**: Updated from Qt5 to Qt6 for improved performance and future-proofing
|
||||
- **Streamlined Interface**: Removed redundant close dialog button - single "Quit" button for clearer UX
|
||||
- **Enhanced X11 Integration**: Direct X11 library usage for better compatibility
|
||||
- **Modern APIs**: Updated all deprecated Qt functions for Qt6 compatibility
|
||||
|
||||
### Accessibility Features
|
||||
- **Full keyboard navigation**: All interface elements are accessible via Tab/Shift+Tab
|
||||
- **Screen reader compatible**: Works seamlessly with Orca and other screen readers
|
||||
@ -83,8 +89,9 @@ In addition to gaming, ThunderPad is useful for anyone who would find it more co
|
||||
|
||||
- A Linux computer and a Linux-compatible gaming device
|
||||
- A Linux kernel with joystick support (see the [Linux Kernel](https://www.kernel.org/) and the Linux joystick driver documentation [joystick.txt](https://www.kernel.org/doc/Documentation/input/joystick.txt) and [joystick-parport.txt](https://www.kernel.org/doc/Documentation/input/joystick-parport.txt))
|
||||
- [XWindows](http://x.org/)
|
||||
- [Qt 5](http://qt-project.org/)
|
||||
- [XWindows](http://x.org/) - Required for GUI display
|
||||
- [Qt 6](http://qt-project.org/) - Qt6Widgets and Qt6Gui modules
|
||||
- [X11 development libraries](https://www.x.org/) - libX11 and libXtst for event generation
|
||||
- [libudev](http://www.freedesktop.org/software/systemd/libudev/) (optional)
|
||||
- For full accessibility: A screen reader like [Orca](https://wiki.gnome.org/Projects/Orca)
|
||||
|
||||
@ -92,7 +99,7 @@ In addition to gaming, ThunderPad is useful for anyone who would find it more co
|
||||
|
||||
Installing ThunderPad should be a quick and painless process. The basic procedure is:
|
||||
|
||||
git clone https://github.com/stormux-dev/thunderpad
|
||||
git clone https://git.stormux.org/storm/thunderpad
|
||||
mkdir thunderpad/build
|
||||
cd thunderpad/build
|
||||
cmake .. -DCMAKE_BUILD_TYPE=Release
|
||||
@ -121,6 +128,16 @@ However, there are some settings that might need to be changed.
|
||||
|
||||
### Using ThunderPad
|
||||
|
||||
#### Running ThunderPad
|
||||
|
||||
ThunderPad requires a valid X11 display connection. In most desktop environments, simply run:
|
||||
|
||||
thunderpad
|
||||
|
||||
If running from a terminal or remote session, you may need to specify the display:
|
||||
|
||||
DISPLAY=:0 thunderpad
|
||||
|
||||
#### Default Window Mode
|
||||
|
||||
Unlike QJoyPad, ThunderPad runs in window mode by default for better accessibility. When you start ThunderPad, it will automatically open the configuration window where you can set up your joystick mappings using full keyboard navigation.
|
||||
@ -146,6 +163,7 @@ At the top are controls for managing your controller layouts:
|
||||
- **Rename button**: Rename the current layout
|
||||
- **Import/Export buttons**: Share layouts with others
|
||||
- **Save/Revert buttons**: Save changes or restore from file
|
||||
- **Quit button**: Exit ThunderPad completely (replaces separate close dialog button)
|
||||
|
||||
##### Joystick Tabs
|
||||
Each connected joystick appears as a separate tab. Use Ctrl+Tab or click to switch between joysticks.
|
||||
@ -374,7 +392,7 @@ If that doesn't work, then you might want to make sure your joysticks are workin
|
||||
|
||||
If for some reason ThunderPad is reporting the wrong number of buttons or axes for your device, that means the Linux joystick driver is also reporting the wrong number. Unless you can't get to buttons or axes that you need, this shouldn't be a problem, but if you want to get the number right, Try using a different driver or check out the documentation for the one you're using.
|
||||
|
||||
If your joysticks are working, plugged in, and ThunderPad is looking in the right place, then I'm not sure what to tell you. Unfortunately, we don't have a wealth of different devices and software setups to test on. If you're really stuck and think it's ThunderPad's fault please [write a bug report](https://github.com/stormux-dev/thunderpad/issues).
|
||||
If your joysticks are working, plugged in, and ThunderPad is looking in the right place, then I'm not sure what to tell you. Unfortunately, we don't have a wealth of different devices and software setups to test on. If you're really stuck and think it's ThunderPad's fault please [write a bug report](https://git.stormux.org/storm/thunderpad/issues).
|
||||
|
||||
### Joystick adjustment
|
||||
|
||||
@ -388,9 +406,20 @@ Chances are, this means you're using an overly sensitive or poorly calibrated jo
|
||||
|
||||
### ThunderPad won't start!
|
||||
|
||||
There are two reasons why ThunderPad won't start. For one, ThunderPad won't start is if it's already running! To make sure ThunderPad doesn't interfere with itself, only one version of ThunderPad is allowed to run at a time. If you can't see an already open version, look for the icon in the system tray (if using `--tray` mode). If you really can't find it anywhere, try running `killall thunderpad` and then `rm -f /tmp/thunderpad.pid` and then try starting ThunderPad again. It should work this time.
|
||||
There are several reasons why ThunderPad might not start:
|
||||
|
||||
Finally, ThunderPad won't actually run if one of its arguments is `-h` or `--help`. When it sees one of those arguments, it outputs usage information to the console and then quits. If you're running ThunderPad away from a console or want it to run like normal, don't give one of these arguments.
|
||||
#### Display Connection Issues
|
||||
Since ThunderPad is a Qt6 GUI application, it requires a valid X11 display connection. If you get an error on startup, try:
|
||||
|
||||
DISPLAY=:0 thunderpad
|
||||
|
||||
Or ensure you're running from within an X11 desktop environment.
|
||||
|
||||
#### Already Running
|
||||
ThunderPad won't start if it's already running! Only one instance is allowed at a time. If you can't see an already open version, look for the icon in the system tray (if using `--tray` mode). If you really can't find it anywhere, try running `killall thunderpad` and then `rm -f /tmp/thunderpad.pid` and then try starting ThunderPad again.
|
||||
|
||||
#### Help Mode
|
||||
ThunderPad won't actually run if one of its arguments is `-h` or `--help`. When it sees one of those arguments, it outputs usage information to the console and then quits. If you're running ThunderPad away from a console or want it to run like normal, don't give one of these arguments.
|
||||
|
||||
### I have two versions of ThunderPad/QJoyPad open at once and they're getting in each other's way!
|
||||
|
||||
@ -400,11 +429,13 @@ If you have multiple instances of the same application, make sure you don't have
|
||||
|
||||
### This program only works in XWindows?
|
||||
|
||||
Yes, ThunderPad, like QJoyPad, only works in X11/XWindows environments. For Wayland or console applications, you'll need to use alternative solutions like [joy2key](https://sourceforge.net/projects/joy2key/) or [AntiMicro](https://github.com/AntiMicro/antimicro).
|
||||
Yes, ThunderPad, like QJoyPad, only works in X11/XWindows environments. ThunderPad uses direct X11 libraries for event generation and requires an active X11 display connection.
|
||||
|
||||
For Wayland environments, you may be able to run ThunderPad under XWayland compatibility. For native Wayland or console applications, you'll need to use alternative solutions like [joy2key](https://sourceforge.net/projects/joy2key/) or [AntiMicro](https://github.com/AntiMicro/antimicro).
|
||||
|
||||
### Why do I have to tell ThunderPad to "update joystick devices"? Why can't it do that on its own?
|
||||
|
||||
If you compile with `-DWITH_LIBUDEV=ON` (the default) then UDev is used to automatically update the joypad list. If automatically updating of the joypad list still does not work compile with `-DCMAKE_BUILD_TYPE=Debug` and post the output on the [GitHub bug tracker](https://github.com/stormux-dev/thunderpad/issues).
|
||||
If you compile with `-DWITH_LIBUDEV=ON` (the default) then UDev is used to automatically update the joypad list. If automatically updating of the joypad list still does not work compile with `-DCMAKE_BUILD_TYPE=Debug` and post the output on the [bug tracker](https://git.stormux.org/storm/thunderpad/issues).
|
||||
|
||||
You can force ThunderPad to rescan your joypads at any time using the menu or by running `thunderpad --update`.
|
||||
|
||||
|
Reference in New Issue
Block a user