pax_global_header 0000666 0000000 0000000 00000000064 13777035150 0014522 g ustar 00root root 0000000 0000000 52 comment=2888bf65ab5a87f22fd948fa4c1b429cea3c730c
AntiMicroX-antimicrox-2888bf6/ 0000775 0000000 0000000 00000000000 13777035150 0016263 5 ustar 00root root 0000000 0000000 AntiMicroX-antimicrox-2888bf6/.clang-format 0000664 0000000 0000000 00000000451 13777035150 0020636 0 ustar 00root root 0000000 0000000 BasedOnStyle: LLVM
IndentWidth: 4
BreakBeforeBraces: Custom
ColumnLimit: 125
IndentPPDirectives: BeforeHash
BraceWrapping:
AfterEnum: true
AfterStruct: true
AfterClass: true
AfterControlStatement: true
AfterFunction: true
AfterUnion: true
BreakConstructorInitializersBeforeComma: true AntiMicroX-antimicrox-2888bf6/.github/ 0000775 0000000 0000000 00000000000 13777035150 0017623 5 ustar 00root root 0000000 0000000 AntiMicroX-antimicrox-2888bf6/.github/ISSUE_TEMPLATE/ 0000775 0000000 0000000 00000000000 13777035150 0022006 5 ustar 00root root 0000000 0000000 AntiMicroX-antimicrox-2888bf6/.github/ISSUE_TEMPLATE/bug_report.md 0000664 0000000 0000000 00000001334 13777035150 0024501 0 ustar 00root root 0000000 0000000 ---
name: "\U0001F41E Bug Report"
about: Create a report to help us improve
title: ''
labels: 'bug'
assignees: ''
---
**Describe the bug**
**To Reproduce**
**Expected behavior**
**Screenshots**
**Configuration**
Version of antimicrox:
Used package:
System version:
**Additional context**
AntiMicroX-antimicrox-2888bf6/.github/ISSUE_TEMPLATE/feature_request.md 0000664 0000000 0000000 00000001204 13777035150 0025530 0 ustar 00root root 0000000 0000000 ---
name: "\U0001F680 Feature Request"
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
**Describe the solution you'd like**
**Describe alternatives you've considered**
**Additional context**
AntiMicroX-antimicrox-2888bf6/.github/ISSUE_TEMPLATE/question.md 0000664 0000000 0000000 00000000210 13777035150 0024170 0 ustar 00root root 0000000 0000000 ---
name: "\U00002753 Question"
about: Ask question about app or project
title: ''
labels: 'question'
assignees: ''
---
**Question**
AntiMicroX-antimicrox-2888bf6/.github/pull_request_template.md 0000664 0000000 0000000 00000001166 13777035150 0024570 0 ustar 00root root 0000000 0000000 Closes #...
## Proposed changes
-
-
-
----
AntiMicroX-antimicrox-2888bf6/.github/workflows/ 0000775 0000000 0000000 00000000000 13777035150 0021660 5 ustar 00root root 0000000 0000000 AntiMicroX-antimicrox-2888bf6/.github/workflows/code_formatting.yml 0000664 0000000 0000000 00000001234 13777035150 0025547 0 ustar 00root root 0000000 0000000 name: Check code formatting
on: pull_request
jobs:
test:
# The type of runner that the job will run on
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Download tools
run: |
sudo apt-get update && sudo apt-get install clang-format-10
echo "Clang-format version"
clang-format --version
wget https://raw.githubusercontent.com/Sarcasm/run-clang-format/master/run-clang-format.py
chmod +x ./run-clang-format.py
- name: Test
run: ./run-clang-format.py -r src
AntiMicroX-antimicrox-2888bf6/.github/workflows/main.yml 0000664 0000000 0000000 00000001423 13777035150 0023327 0 ustar 00root root 0000000 0000000 name: Build
on: [ push, pull_request]
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- name: Install Dependencies
run: sudo apt-get update && sudo apt-get install g++ cmake extra-cmake-modules qttools5-dev qttools5-dev-tools libsdl2-dev libxi-dev libxtst-dev libx11-dev itstool gettext
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
# Runs a set of commands using the runners shell
- name: Build
run: |
ls
pwd
mkdir build && cd ./build
cmake ..
make
AntiMicroX-antimicrox-2888bf6/.github/workflows/release.yml 0000664 0000000 0000000 00000006603 13777035150 0024030 0 ustar 00root root 0000000 0000000
name: Release_actions
on:
release:
types: [published]
jobs:
#Build .deb files for debian-based systems.
build_deb:
# The type of runner that the job will run on
runs-on: ubuntu-latest
steps:
- name: Install Dependencies
run: sudo apt-get update && sudo apt-get install g++ cmake extra-cmake-modules qttools5-dev qttools5-dev-tools libsdl2-dev libxi-dev libxtst-dev libx11-dev itstool gettext
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
- name: Build deb file
id: create_deb
run: |
mkdir build && cd ./build
cmake .. -DCPACK_GENERATOR="DEB" ..
cmake --build . --target package
#upload generated files to release
- name: Upload binaries to release
uses: AButler/upload-release-assets@v2.0
with:
files: ./build/*.deb
repo-token: ${{ secrets.GITHUB_TOKEN }}
#Build universal and portable AppImage package.
build-appimage:
# Version of ubuntu building this appimage, it shouldn't be the latest verion of ubuntu to avoid breaking compatibility with older systems
runs-on: ubuntu-18.04
needs: build_deb
steps:
- name: Install Dependencies
run: sudo apt-get update && sudo apt-get install g++ cmake extra-cmake-modules qttools5-dev qttools5-dev-tools libsdl2-dev libxi-dev libxtst-dev libx11-dev itstool gettext qt5-default libsdl2-2.0-0 zsync
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
# Installing antimicrox is required for appimage creator
- name: Install antimicrox
run: |
VERSION=`cat ./CMakeLists.txt | grep "set(ANTIMICROX_" | grep _VERSION | cut -d " " -f 2 | cut -d ")" -f 1`
MAJOR=`echo $VERSION | cut -d " " -f 1`
MINOR=`echo $VERSION | cut -d " " -f 2`
PATCH=`echo $VERSION | cut -d " " -f 3`
wget "https://github.com/$GITHUB_REPOSITORY/releases/latest/download/antimicrox-$MAJOR.$MINOR.$PATCH-amd64.deb"
sudo dpkg -i `ls -1 | grep .deb`
- name: Prepare files to create apppimage
run: |
mkdir build && cd ./build
wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
chmod +x linuxdeploy-x86_64.AppImage
chmod +x appimagetool-x86_64.AppImage
chmod +x linuxdeploy-plugin-qt-x86_64.AppImage
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make
make install DESTDIR=AppDir
#UPDATE_INFORMATION describes where information about updates can be found
- name: Create AppImage file
run: |
cd build
export UPDATE_INFORMATION="zsync|https://github.com/$GITHUB_REPOSITORY/releases/latest/download/antimicrox-x86_64.AppImage.zsync"
./linuxdeploy-x86_64.AppImage --appdir AppDir --plugin qt
./appimagetool-x86_64.AppImage AppDir/ -u "$UPDATE_INFORMATION"
#Upload generated files to release
- name: Upload binaries to release
uses: AButler/upload-release-assets@v2.0
with:
files: ./build/AntiMicroX*.AppImage;./build/AntiMicroX*.zsync
repo-token: ${{ secrets.GITHUB_TOKEN }}
AntiMicroX-antimicrox-2888bf6/.github_changelog_generator 0000664 0000000 0000000 00000000204 13777035150 0023617 0 ustar 00root root 0000000 0000000 user=AntiMicroX
project=antimicrox
since-tag=3.1.1
pr-label=**Other merged pull requests:**
issues-label=**Notable closed issues:**
AntiMicroX-antimicrox-2888bf6/.gitignore 0000664 0000000 0000000 00000000230 13777035150 0020246 0 ustar 00root root 0000000 0000000 # Build directories
build/
build-dir/
Build/
.flatpak-builder/
repo/
doc/
# Changelogs
src/Changelog
src/CHANGELOG.md
# IDE- related files
.vscode
AntiMicroX-antimicrox-2888bf6/AntiMicroX Future Developments.mm 0000664 0000000 0000000 00000011756 13777035150 0024526 0 ustar 00root root 0000000 0000000
AntiMicroX-antimicrox-2888bf6/BUILDING.md 0000664 0000000 0000000 00000012173 13777035150 0020006 0 ustar 00root root 0000000 0000000 # Building AntiMicroX
Most of these packages are already built and available on [Release Page](https://github.com/AntiMicroX/antimicrox/releases), but if you want, you can also build AntiMicroX by yourself.
- [Building AntiMicroX](#building-antimicrox)
- [Build Dependencies](#build-dependencies)
- [Basic building](#basic-building)
- [Build Options for CMake](#build-options-for-cmake)
- [Universal Options](#universal-options)
- [Linux Options](#linux-options)
- [Building deb package](#building-deb-package)
- [Building rpm package](#building-rpm-package)
- [Building AppImage](#building-appimage)
- [Building Flatpak](#building-flatpak)
## Build Dependencies
This program is written in C++ using the [Qt](https://www.qt.io/)
framework. A C++ compiler and a proper C++ build environment will need to be installed on your system prior to building this program. Under Debian and Debian-based distributions like Ubuntu, the easiest way to get a base build environment set up is to install the meta-package **build-essential**. The following packages are required to be
installed on your system in order to build this program:
- `g++` from `gcc`
- `cmake`
- `extra-cmake-modules`
- `qttools5-dev` and `qttools5-dev-tools` (`qt5-tools` on distros based on Arch Linux) (Qt5 support)
- `libsdl2-dev` (`sdl2` on distros based on Arch Linux) (SDL2)
- `libxi-dev` (`libxi` on distros based on Arch Linux) (Optional. Needed to compile with X11 and uinput support)
- `libxtst-dev` (`libxtst` on distros based on Arch Linux) (Optional. Needed to compile with XTest support)
- `libx11-dev` (`libx11` on distros based on Arch Linux) (Needed to compile with Qt5 support)
- `itstool` (extracts messages from XML files and outputs PO template files, then merges translations from MO files to create translated XML files)
- `gettext`
## Basic building
This way of building is useful for testing purposes.
In order to build this program, open a terminal and cd into the antimicrox
directory. Enter the following commands in order to:
Build the program:
```bash
cd antimicrox
mkdir build && cd build
cmake ..
cmake --build .
```
Run built binaries
```
./bin/antimicrox
```
A recommended way of installation is building package typical for for your system (or building universal one like an AppImage).
Installation using cmake (not recommended)
This way of installation is not recommended, because it doesn't integrate very well with some environments.
Install:
```bash
sudo cmake --install .
```
Uninstall:
```bash
sudo make uninstall
```
### Build Options for CMake
There are a few application specific options that can be used when running
cmake to build antimicrox. The following file will attempt to list some of those
options and describe their use in the project.
### Universal Options
-DUPDATE_TRANSLATIONS
Default: OFF. Set updateqm target to call lupdate in order to update
translation files from source.
-DTRANS_KEEP_OBSOLETE
Default: OFF. Do not specify -noobsolete option when calling lupdate
command for qm files. -noobsolete is a method for getting rid of obsolete text entries
-DWITH_TESTS
Default: OFF. Allows for the launch of test sources with unit tests
### Linux Options
-DAPPDATA
Default: ON. Build the project with AppData support.
-DWITH_UINPUT
Default: ON. Compile the program with uinput support.
-DWITH_X11
Default: ON. Compile the program with X11 support.
-DWITH_XTEST
Default: ON. Compile the program with XTest support.
## Building DEB package
```bash
cd antimicrox
mkdir build && cd build
cmake .. -DCPACK_GENERATOR="DEB"
cmake --build . --target package
```
## Building RPM package
If your distribution doesn't yet have an RPM package, you can easily build one for yourself.
```bash
cd antimicrox
mkdir build && cd build
cmake .. -DCPACK_GENERATOR="RPM"
cmake --build . --target package
```
## Building AppImage
Create build directory
```bash
mkdir build && cd ./build
```
Download tools used for creating appimages (and make them executable)
```bash
wget https://github.com/linuxdeploy/linuxdeploy/releases/downloacontinuous/linuxdeploy-x86_64.AppImage
wget https://github.com/AppImage/AppImageKit/releases/downloacontinuous/appimagetool-x86_64.AppImage
wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releasedownload/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
chmod +x linuxdeploy-x86_64.AppImage
chmod +x appimagetool-x86_64.AppImage
chmod +x linuxdeploy-plugin-qt-x86_64.AppImage
```
Build antimicrox and install it in AppDir directory
```bash
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make
make install DESTDIR=AppDir
```
Create AppImage file
```bash
./linuxdeploy-x86_64.AppImage --appdir AppDir --plugin qt
./appimagetool-x86_64.AppImage AppDir/ --no-appstream
```
## Building Flatpak
The command builds the package into the `build` folder and installs the created flatpak.
The Flathub manifest can be located in [Flathub's Github repo](https://github.com/flathub/io.github.antimicrox.antimicrox).
```bash
flatpak install flathub org.kde.Platform//5.11 org.kde.Sdk//5.11
flatpak-builder --user --install build/ other/io.github.antimicrox.antimicrox.yml --force-clean
```
AntiMicroX-antimicrox-2888bf6/CHANGELOG.md 0000664 0000000 0000000 00000134114 13777035150 0020100 0 ustar 00root root 0000000 0000000 # Changelog
## [3.1.4](https://github.com/AntiMicroX/antimicrox/tree/3.1.4) (2021-01-11)
[Full Changelog](https://github.com/AntiMicroX/antimicrox/compare/3.1.3...3.1.4)
Kudos to @Janfel for PR!
**Implemented enhancements:**
- Remove qglobalshortcuts [\#106](https://github.com/AntiMicroX/antimicrox/issues/106)
- File cleanup [\#104](https://github.com/AntiMicroX/antimicrox/issues/104)
- Cmakefile fixes [\#102](https://github.com/AntiMicroX/antimicrox/issues/102)
- Add dark tray icon [\#66](https://github.com/AntiMicroX/antimicrox/issues/66)
- Icons overhaul [\#61](https://github.com/AntiMicroX/antimicrox/issues/61)
- Automate generating changelogs [\#10](https://github.com/AntiMicroX/antimicrox/issues/10)
**Fixed bugs:**
- Clear shortcut not working [\#116](https://github.com/AntiMicroX/antimicrox/issues/116)
- Assigning Text Entry to button doesn't assign proper string. [\#79](https://github.com/AntiMicroX/antimicrox/issues/79)
- The uninstallation leaves several folders and files behind \(cmake\) [\#68](https://github.com/AntiMicroX/antimicrox/issues/68)
**Notable closed issues:**
- Remove antilib shared object because it's not really shared! [\#98](https://github.com/AntiMicroX/antimicrox/issues/98)
**Other merged pull requests:**
- feat: improve mime type definition [\#132](https://github.com/AntiMicroX/antimicrox/pull/132) ([Janfel](https://github.com/Janfel))
- docs: update building and installation instructions [\#129](https://github.com/AntiMicroX/antimicrox/pull/129) ([pktiuk](https://github.com/pktiuk))
- feat: antimicro config migration [\#120](https://github.com/AntiMicroX/antimicrox/pull/120) ([gombosg](https://github.com/gombosg))
## [3.1.3](https://github.com/AntiMicroX/antimicrox/tree/3.1.3) (2020-11-15)
[Full Changelog](https://github.com/AntiMicroX/antimicrox/compare/3.1.2...3.1.3)
**Fixed bugs:**
- ARM build failure [\#80](https://github.com/AntiMicroX/antimicrox/issues/80)
- AntiMicroX system tray icon not appearing in flatpak package [\#58](https://github.com/AntiMicroX/antimicrox/issues/58)
- Icons in tray menu only showing up as "X" [\#56](https://github.com/AntiMicroX/antimicrox/issues/56)
- Outdated information in the "Credits" tab in the "About" window [\#67](https://github.com/AntiMicroX/antimicrox/issues/67)
**Notable closed issues:**
- Consistent style of code [\#25](https://github.com/AntiMicroX/antimicrox/issues/25)
**Other merged pull requests:**
- Icons overhaul [\#73](https://github.com/AntiMicroX/antimicrox/pull/73) ([pktiuk](https://github.com/pktiuk))
- Fix: Use system icons in common cases to avoid incompatibility issues [\#62](https://github.com/AntiMicroX/antimicrox/pull/62) ([pktiuk](https://github.com/pktiuk))
- General cleanup of repository [\#18](https://github.com/AntiMicroX/antimicrox/pull/18) ([pktiuk](https://github.com/pktiuk))
## [3.1.2](https://github.com/AntiMicroX/antimicrox/tree/3.1.2) (2020-10-02)
[Full Changelog](https://github.com/AntiMicroX/antimicrox/compare/3.1.1...3.1.2)
**Fixed bugs:**
- Right click - Turbo and Clear not working properly [\#7](https://github.com/AntiMicroX/antimicrox/issues/7)
- Wrong order for setting sets [\#6](https://github.com/AntiMicroX/antimicrox/issues/6)
**Notable closed issues:**
- Fedora resubmission [\#29](https://github.com/AntiMicroX/antimicrox/issues/29)
- Flatpak packaging [\#9](https://github.com/AntiMicroX/antimicrox/issues/9)
**Other merged pull requests:**
- refactor: remove Dockerfiles [\#52](https://github.com/AntiMicroX/antimicrox/pull/52) ([gombosg](https://github.com/gombosg))
2020-09-15 Gergely Gombos
Version 3.1.1
* AppStream XML file revision
* New screenshots
* Add 128x128 icon
* Prepare for Flathub submission
2020-09-09 Paweł Kotiuk
Version 3.1.0
* Updated documentation connected with migration to new repository
* Add instruction and config for building Flatpak packages - Gergely "gombosg" Gombos
* Multiple improvements of packaging for Debian/Ubuntu
* Ensure consistent naming across entire project
* Rename used directories and files from antimicroX to antimicrox
* First official AppImage release
2018-16-06 Jagoda Gorska
Version 3.0.1
* Works with old antimicro profiles
* Added small changes (in instructions, comments, etc.)
* Added running in tray from right button
Version 3.0
* Added qt directives for compatibility with older versions of qt5
* Arch Linux packages of application of frealgagu and sir_lucjan
Link1: https://aur.archlinux.org/packages/antimicrox/
Link2: https://aur.archlinux.org/packages/antimicrox-git/
* Deb package of Paweł "pktiuk" Kotiuk
Link1: https://github.com/pktiuk
Link2: https://github.com/juliagoda/antimicroX/pull/120
Link3: https://github.com/juliagoda/antimicroX/pull/103
* Rpm package of Gergely "gombosg" Gombos meanwhile
Link1: https://github.com/gombosg
Link2: https://github.com/juliagoda/antimicroX/issues/118
* Created and added dockerfiles to containers - look README
Link1: https://hub.docker.com/r/juliagoda/antimicrox
* Changed icon for antimicroX
* Added F13-F24 buttons to "Others" only if they are detected on keyboard
* Added more adjusted debug/info/warning outputs to log settings
* Added new functionality - joining and splitting slots
* Added new functionality - deletion of more slots at once
* Added new functionality - insertion of more slots at once
* Added new functionality - One choice of execution paths and its arguments for multiple slots
* Added new functionality - One choice of profile for multiple slots
* Added new functionality - attaching numeric keypad keys thanks to option in settings
* Added new functionality - global shortcuts for quitting application from settings
* Added support for the same model of gamepads
* Updated german, english and polish translation files
# Fixed issue #92
* Fixed issue #97
* Fixed issue #90
* Fixed issue #98
* Fixed issue #101
* Fixed issue #107
* Fixed issue #108
* Fixed issue #109
* Fixed issue #113
* Fixed issue #112
* Fixed issue #114
* Fixed iisue #116
Version 2.25
* renamed AntiMicro into antimicroX
* added detection of scripts - fixed unfinished JoyExecute slot
* added menu icons and shortcuts
* removed unused files and directives
* removed majority of deprecated code
* updated information about application
* sorted and cleaned headers in header files
* unlocked multiple parameters for command line
* added notifications about battery level
* added guard conditions
Version 2.24.2
* Fixed bug with too many "emit propertyUpdated()"
* Splitted JoyButtonSlot class into JoyButtonSlotXml and the original
* Created template class for JoyDPad and VDPad xml
* Splitted GameControllerDPad class into GameControllerDPadXml and the original
* Replaced for loops with iterators and functional mappers
* Replaced for loops with hashiterators
* Added functions about vendor and product informations
* Changed guid to uniqueID
Version 2.24.1
* Changed images and screenshots
* Updated Documents (README, *.txt files, *.md, *.mm files)
* Updated resources
* Created index.theme
* Changed destination directories for icons, images, index.theme and other resources
* Translated new text entries
* Added detection of window partial title
* Added reset settings option
* Created smaller functions in part of classes
* Splitted part of classes into new xml classes
* Added com.github.juliagoda.antimicro.json for Flatpak (building and installation on Linux)
* Cppcheck Analysis - fixed part of warnings
* Added Comparing to nullptr instead of NULL and smart pointers
* Changed if else to switch statements for int data types
* First preparation for unit tests (app splitted into library (antilib) and executable (antimicro))
* Updated calibration - reset old values during calibration startup
* Fixed part of memory leaks with Memcheck (application exit)
* Fixed bug in gamecontrollermappingdialog class
* Fixed segmentation fault for activating Turbo option
* Unblocked delay sliders
Version 2.24
* Added calibration
* Ported Qt4 to Qt5
* Removed Qt4 support
2016-11-05 Jeff Backus
Version 2.23
* Fixed portable version. (issue #37)
* Added ability to specify logging level and file in config dialog. (issue #50)
* Updated build system to find libraries on Windows systems instead of using
explicit paths. (issue #43)
* Added relevant window information to debug messages related to auto profiles.
(issue #46)
* Fixed issue with anything in profile name after first period being truncated.
(issue #70)
* Fixed issues with SDL 2.0.5 on all platforms. (issue #71)
* Added support for additional small-case Latin characters when using Xtest.
(issue #49)
* Added inclusion of README-SDL.txt when building Windows distributables.
2016-07-30 Jeff Backus
Version 2.22
* Fixed a segfault on startup issue affecting some Linux distributions
* Fixed issues with SDL 2.0.4 on Windows.
* Updated documentation and URLs in code to note transition in
management.
* Updated translations and added new ones.
* Added code to revert all virtual buttons to beginning of slot list
before a set switch.
* Build system updates
* Fixed a bug where invalid joystick was inserted into device list.
* Modified to hide turbo mode combobox for regular buttons
* Changed to allow blank config for auto profile entries again.
* Fixed matching by process filename in AutoProfileWatcher
2016-01-10 Travis Nickles
Version 2.21
* Changed unplug routine slightly. The old behavior was slightly wrong anyway
but the old behavior did not work with SDL 2.0.4.
* Custom Qt builds are being used for the 64 bit Windows build and noSSE
Windows build.
* Updated Windows build to use Qt 5.5.1.
* Updated Windows build to use SDL 2.0.4. This should clear up a couple
of problems for people running Windows 10.
* Changes to some acceleration curves. Both the output values and the input
offsets were changed to make mouse movement looser.
* Removed First Run Wizard from program. In the end, that wizard was causing
more problems for other users than it was worth.
* Add arguments property for Execute slots.
* Allow a real absolute mouse to be used with uinput support. Previously,
relative mouse movement was being used to fake an absolute position for the
mouse pointer. The WiimoteGlue project provided a way to allow uinput to
send absolute mouse pointer events when using uinput.
* Fixed set changing with analog triggers.
2015-10-19 Travis Nickles
Version 2.20.2
* Change Enhanced Precision and Easing Quad/Cubic acceleration
curves
* Skipped straight to 2.20.2 since version 2.20 actually had 2.20.1 marked
as its version in the application
2015-10-10 Travis Nickles
Version 2.20
* Replace usage of QElapsedTimer with QTime for mouse movement calculations.
* Start using Qt 5 with Ubuntu Vivid package.
* Change XTest pointer acceleration when starting the program.
* Allow release slot to have a 0 ms interval. This is useful for people who
use a gamepad poll rate less than 10 ms.
* Change minimize to tray code to work better with later versions of Gnome 3
and Unity.
* Transfer travel distance axis changes when switching sets.
2015-09-29 Travis Nickles
Version 2.19.3
* Japanese translation provided by tou omiya.
* Make sure Game Controller Mapping dialog window reads raw joystick events.
This should fix problems regarding improper mapping causing controller elements
to no longer be mappable.
* Make Set Change slots activate on button release instead of button press.
* Tweaked the locking being performed in various portions of the program.
* Fixed a problem with blank info window appearing when escaping from window
capture utility dialog.
* Fixed issues with document-save-as icon staying displayed after resetting
a profile.
* Fixed "Media Next" key binding for virtual keyboard.
* Fixed various issues regarding binding slots in the Advanced Edit dialog window.
2015-09-15 Travis Nickles
Version 2.19.2
* Add --next to allow multiple profiles to be loaded in one command call.
* Add a flag to settings file when wizard is finished. Don't depend on any
other settings being changed during an application run.
* Fixed issue with inserting Pause slots.
* Fixed issue with blank application filepath being matched for auto profile
support.
2015-09-03 Travis Nickles
Version 2.19.1
* Fixed SDL 1.2 build support.
* Fixed issue with SDL thread not being stopped due to connections not being
made in some situations.
* Fixed loading of a profile from a second instance.
* Fixed problem with main window not being populated after the App Settings
Wizard was finished.
* Fixed another portion of the program that assumed that a controller would be
connected at startup. Fixes excessive CPU load.
2015-08-31 Travis Nickles
Version 2.19
* Added curve options for extra acceleration.
* Fixed bug when App Settings Wizard would pop up when not needed.
* Simplified Chinese translation updated.
2015-08-24 Travis Nickles
Version 2.18.2
* Fixed overly active timer used to reset acceleration distances when
no events are returned from SDL in a given gamepad poll.
* Sebian translation updated by Jay Alexander Fleming.
* Changed behavior of 4 Way Cardinal mode for DPads. Diagonals are no longer
counted as a dead zone. This change is more likely temporary.
Up+Right - Up, Down+Right - Right, Down+Left - Down, Up+Left - Left
2015-08-18 Travis Nickles
Version 2.18.1
* Fixed some threading issues when using X11.
* Fixed excessive CPU load on startup when no controller is connected.
2015-08-15 Travis Nickles
Version 2.18
* Perform event simulation in its own thread. Timer used for mouse speed
calculations has improved as a result.
* Slow down Enhanced Precision mouse acceleration curve slightly. Changes
were mainly due to overall mouse emulation being tweaked.
* Distributing 64 bit builds for Windows again.
* Using a simulated event to click the minimize button in title bar now works
on Windows. The move to using a dedicated thread for event simulation allows
that to work now.
* Simplified Chinese translation added thanks to zzpxyx.
2015-08-02 Travis Nickles
Version 2.17
* Changed Enhanced Precision acceleration curve. The curve has been slowed down
slightly.
* Changed how initial mouse movement is performed when the gamepad poll rate
and the mouse refresh rate differ.
* Flash interface buttons after restoring the main window from the tray icon.
* Tweaked mouse movement remainder routine. Remainders now only apply when
the direction along an axis is the same.
* Raised maximum cycle reset time to 60 seconds.
* Fixed improper cycle reset interval.
2015-07-22 Travis Nickles
Version 2.16
* Loosen initial mouse movement experienced after going outside the dead zone.
* Added option in the mouse settings section that would allow antimicroX to
reset the acceleration values being used for the uinput virtual mouse pointer.
This is useful after playing older Linux games that change the acceleration
settings for all mouse pointers after a game exits. Postal 2 and Doom 3 are two
examples of games in my game library that exhibit this behavior.
* Queue all events before performing any actions. The priority of various events
has been changed as well.
* Added option to change the gamepad poll rate used by the application. By
default, the old 10 ms poll rate will be used.
* Bundle a few backup icon files. Mainly useful on SteamOS since the themes
used don't bundle a couple of essential icons that are expected to be present.
* Compiled vmulti support into Windows build. The driver is not currently
provided. The program needs to be started with the arguments --eventgen vmulti.
* Temporarily stop packaging a 64 bit version of the program for Windows.
Unfortunately, the version of Qt being used has a problem regarding timer
accuracy that is not experienced with the 32 bit version of Qt being used.
At this time, working around the problem is not feasible so there will be no
64 bit release. Please use the 32 bit version.
* Change shortcuts used for the .msi package.
* Bundle Qt translation files for Windows version.
2015-06-27 Travis Nickles
Version 2.15
* Changed routine for extra acceleration for mouse movement. The new version
is a bit faster and more responsive than the previous version.
* Added release circle setting for spring mouse mode. This can be used to have
the mouse return to a region around a character based on the last detected
direction of an analog stick.
* Added a sub-menu to the virtual keyboard. Some multimedia and browser keys
can now be selected.
* Added Execute slot type. A program can be set to launch when a slot is
activated.
* Added Text Entry slot type. You can now have a string of text typed
when a slot is activated. This can be useful for inputting common commands in
games.
* Added proper interpolation to determine the start of diagonal regions of
analog sticks. This is used for mouse movement in order to determine the proper
starting dead zone point.
* Changed Enhanced Precision mouse acceleration curve. The new changes in the
curve should be much looser than before.
* Fixed --unload command line option. Enforce reloading of config file
when finished.
* Fixed issue with spring mouse mode where the mouse would temporarily return
to center when switching stick directions quickly.
* Fixed some bindings in the virtual keyboard when using SendInput for the
event generator.
* Fixed issue with widgets used to update stick and dpad delay. The spinbox can
now be used to edit the delay.
* Reduced multiple instances of some objects. Reduces memory usage slightly.
2015-05-01 Travis Nickles
Version 2.14
* Refactored extra axis acceleration. This revision uses individual gamepad
polls again. Other changes in the code have made switching back feasible. With
minor adjustments, the mouse will be looser but very controllable.
* Added longer duration for extra axis acceleration. This allows extra
acceleration to be performed over a period of time as opposed to just one
gamepad poll.
* Changed key repeat routine when using SendInput on Windows. Key releases
restart the last active key repeat delay.
* Now using Qt64-NG for the 64 bit Windows builds.
* Initial experiments with vmulti support in the Windows version. Using that
driver would allow antimicroX to use a virtual keyboard and mouse rather than
using SendInput. That would allow antimicroX to work around UAC problems and
anti-cheat programs. Support is not currently compiled into the Windows builds
due to not being able to properly distribute the vmulti driver.
* Do not write empty names tag in profiles if no custom button names have been
specified.
* Allow mouse history buffer size to go up to 100.
* Allow diagonal range to go up to 90 degrees.
* Remove old mouse speeds from mouse history buffer if stick has been returned
to the dead zone. History buffer will be filled with zeroes.
* Omit hotplugging dependent code when compiling against SDL 1.2.
* Fixed dpad pointer bug when certain QueuedConnection slots are executed.
2015-03-31 Travis Nickles
Version 2.13
* Updated extra axis acceleration routine. Now, extra acceleration is
calculated after an axis has stopped moving past the assigned threshold
in one gamepad poll.
* Stick presets now change the diagonal range of a stick. This is mainly
beneficial for mouse control changes so that 65 degrees is used by default.
* Added a screen selector for Spring mouse mode in settings menu.
* Added a small language selection portion to the settings menu.
* Added a small logger. Please run antimicroX with "--log-level debug" in order
to get output about button presses.
2015-03-22 Travis Nickles
Version 2.12.1
* Implemented a small wizard that will be run when antimicroX is launched
for the first time. It currently only has a page for editing some of the mouse
settings and a page for associating antimicroX with .amgp files on Windows.
* Show slots that are active for a stick modifier button on the main interface.
The text for the main stick direction buttons will be prefixed with the
currently active slots of the stick modifier button.
* Corrected issue with stick and dpad events not getting activated on a set
change. Events were being queued but not executed.
2015-03-15 Travis Nickles
Version 2.12
* Added option for extra mouse acceleration. Enabling that option will
increase the speed of the mouse based on the amount an axis has travelled in one
gamepad poll and the set multiplier. This will greatly affect how the mouse
behaves and it will make mouse movement looser. Using this feature can be
problematic if the analog stick on your controller is worn out and loose.
* Corrected issue with extra mouse sync events occurring when not needed (0,0
events). This change seems to have smoothed out mouse movement on the low end
of an axis a bit.
* Tweaked controller unplug workaround to still invoke release events for
axes and buttons. For triggers, the release value is modified from what is
provided by SDL so an unplug event will cause a release event to occur for the
triggers.
2015-02-25 Travis Nickles
Version 2.11.1
* Added workaround to allow gamepad unplugging on Windows to not
activate bindings for the triggers. This was caused by the way controller
unplugging is handled by SDL (primarily with the Windows version).
SDL sends a release value for all elements of an unplugged joystick a brief
period before sending the expected SDL_JOYDEVICEREMOVED event. The problem is
that the released value used for triggers assumes that the dead zone is half the
trigger's full range. This would cause bindings for triggers to usually activate
for a brief period before SDL would send the final SDL_JOYDEVICEREMOVED event
which would then deactivate those bindings.
* Changes for the portable Windows version. Allow relative profile paths for
use in the portable package on Windows. Associate profiles registry change
prompt skipped.
* Queue stick and dpad events. Allows for better control of 8-way sticks
and dpads.
2015-02-07 Travis Nickles
Version 2.11
* Adjusted the Enhanced Precision, Easing Quadratic, and Easing Cubic
mouse acceleration curves. The low end of each curve has been loosened a bit
and the rest of the curves have been adjusted accordingly. Comparing the two
versions, the resulting mouse speed for a given axis point is slightly lower
in the new versions for most of the curve. The extreme low end and the extreme
high end of the curves will be slightly faster.
* Updated Qt to version 5.4.0 for the Windows builds.
* Compiled a 64 bit version for Windows thanks to the Qt-x64 project.
* Added a set changing slot.
* Added AppData for use when packaging on Linux thanks to Jeff Backus.
* Fixed bug with mouse wheel event methods for axes which resulted in negative
values being passed to the event timer.
2014-12-29 Travis Nickles
Version 2.10.1
* Changed event handler fallback method under Linux.
* Changed interface of Assignments page in Advanced Button Dialog.
* Reset set number upon changing profiles.
* Added "About Development" tab to About Dialog.
* Fixed dynamic text resizing in Button Edit Dialog under Linux.
* Fixed launching a second instance in order to load a profile in the
first instance.
2014-12-10 Travis Nickles
Version 2.10
* Changed allowed values for easing duration. The minimum value has been
lowered to 0.0 and the maximum value has been increased to 5.0.
* Added a stick modifier button. This button is primarily meant to be used
to assign walk/run functionality to an analog stick. Instead of having to
create distance zones and assign keyboard modifier keys to each stick button,
you can now make the assignment on the stick modifier button and it
will apply to the stick as a whole. It makes assigning walk/run functionality
to an analog stick much less cumbersome. The DreadOut demo has already shown a
use case where only the stick modifier button was needed due to the demo not
handling running when using the left stick on an Xbox 360 controller.
* Increased idle mouse timer interval to 100 ms.
* Added a load profile slot. You can now tell the program to load a different
profile upon pressing a button.
* Added gradient functionality for the high end of the Easing Quadratic and
Easing Cubic mouse acceleration curves.
* Raise process priority on Windows. Now, the antimicroX process will run
with High priority. This allows internal timers to work better and be less
susceptible to the activity of other running programs. On Linux, the priority of
the main thread has been increased.
* Take multiple direction buttons into account when assigning set switching
to stick buttons.
* If uinput is enabled but not usable at runtime then XTest will be used
as a fallback option for the Linux version.
* Tweaked Gradient and Pulse turbo modes to make them a bit tighter. A lower
delay will be needed in profiles to achieve a similar control from previous
versions. On the plus side, this has been tested to work with FlatOut 2 fairly
well. It is good enough to use and actually win some races against AI opponents.
* Added analog control for mouse wheel buttons that are mapped to an axis
button.
* Tweaked mouse movement code to improve mouse accuracy. This is mainly due
to discovering the QElapsedTimer class that is included in Qt.
* Fixed middle mouse button binding when using the uinput event handler
on Linux.
* Fixed memory leaks that were discovered by Valgrind.
2014-11-19 Travis Nickles
Version 2.9
* Added mouse refresh rate as an option. Please be mindful of how your
system behaves if you set the refresh rate to a low value like 1 ms.
In the worst case scenario, you could end up dedicating one CPU core on
just the antimicroX process. Also, on Windows, you will want to make sure
to disable the "Enhance Pointer Precision" option if you use a low value
otherwise Windows will severely slow down the mouse pointer.
* Added an application level mouse smoothing option. The older button level
smoothing option has been removed. The old option didn't do much since it only
dealt with the partial distance remainder.
* Button responsiveness has been improved. The old mouse movement code was
creating a bottleneck for button processing which would result in a slight
delay.
* Changed mouse movement code. The overall mouse movement should be smoother
now.
* Allow the Windows setting "Enhance Pointer Precision" to be disabled while
antimicroX is running. This will make sure Windows does not directly manipulate
the mouse events sent to the system. This will allow mouse control on an analog
stick to be more accurate on Windows.
* Changes to Auto Profile to allow more variables for matching. Multiple
window properties can be specified which will cause antimicroX to count an
entry as a match only if all specified properties match.
* Changed how windows are grabbed in X on Linux.
* Minor fix for Gradient and Pulse turbo modes. There were times when the
timer interval controlling those modes could be negative and cause problems.
2014-11-05 Travis Nickles
Version 2.8.1
* Fixed some buttons in virtual keyboard when program is using uinput support.
* Fixed Update Joysticks option for SDL 1.2 users.
2014-10-28 Travis Nickles
Version 2.8
* Added delay settings for analog sticks and dpads. This is meant to
keep some games from overreacting when switching directions quickly.
A delay is especially useful for games that utilize a dash on a key double tap.
This will also be very useful while playing rougelike games. The new
delay setting allows for more responsive controls than the old alternative of
using hold zones on individual direction buttons.
* Added two new mouse acceleration curves: Easing Quadratic and
Easing Cubic. These new mouse acceleration curves are meant to mimic the
camera control that is used for gamepad support in some recent first person
shooters such as Borderlands 2. Once a stick direction has reached a threshold
(80%) then the mouse speed will gradually accelerate over a period of time
before the mouse speed reaches its peak. The duration of the easing method is
set at 0.50 seconds by default but the setting is configurable per
button.
* Major refactor to mouse event generation. The new routine requires
fewer system resources and it is more accurate.
* Made uinput support a runtime option for Linux users. The program can
now be compiled with both XTest and uinput support and the event
generator can be specified using the --eventgen flag. It defaults
to XTest if available. The option is only available when the program
is compiled with both XTest and uinput support.
* Added right click context menus for buttons in main interface.
* Fixed issue with Game Controller Mapping dialog. Controller DPads that
are exposed as 4 buttons can now be bound to the DPad of an SDL Game
Controller.
* Fixed an issue with incorrect profile names being displayed in the
profile combobox.
* Fixed issue introduced in version 2.7 regarding mouse movement calculations
for the left direction of analog sticks. A major portion of the
safe zone for that direction was being skipped.
* Changed button groups in the main interface to update immediately
when a stick or dpad mode has been changed.
* Initial removal of old joystick abstraction support in interface when using
SDL 2.
2014-10-14 Travis Nickles
Version 2.7
* Added a UAC workaround for use in Windows. antimicroX can be restarted
as Administrator in case a game is running with elevated permissions and
the events generated by antimicroX are not detected by a game.
* Added more key aliases for uinput support.
* Force higher dead zones for axes in Game Controller Mapping window.
* Fixed virtual keyboard in Button Edit Dialog window for Linux users
utilizing XTest support.
* Display some minor mouse stats in Mouse Settings dialog.
* Alter Analog Stick dialog window to show some new stats. Also,
show square stick coordinates as well as adjusted circle
stick coordinates.
* Added square stick to circle stick conversion.
* Fixed issue with VK_LSHIFT and VK_RSHIFT aliases not being saved properly
on Windows.
* xinput is used for the uinput virtual pointer in order to
disable mouse acceleration for the pointer. This allows spring mode to work
as intended.
* Added some code to guess which axes of a gamepad should be considered
triggers by default while in old Joystick mode. The initial values of
axes are taken from SDL and those are used as the point of the axes
while centered. If the initial value of an axis is below -30,000 then
an axis is considered to be a trigger.
2014-09-16 Travis Nickles
Version 2.6
* Added two new Turbo modes. Gradient mode is used to change the key press
time depending on the position of an axis (useful for racing games).
Pulse mode is used to change how many times a key press is invoked depending
on the position of an axis (scrolling in a web browser using arrow keys).
* Fixed profile resetting in a couple of places.
* A Russian translation has been provided by Dima Koshel.
* Added option to invoke Game Controller mapping window from command line.
The final mapping string will be printed to stdout. This is useful
for saving a SDL_GAMECONTROLLERCONFIG for your controller that
can be used system wide. Any SDL 2 game can then be set up to use
that mapping and it can be changed if needed.
* Profiles now use a unique .amgp file extension. Older xml profiles will
continue to be supported.
* Fixed spring mouse mode so that it uses proper axis distance values.
* Set changing has been fixed for analog sticks and virtual dpads.
* EXPERIMENTAL. uinput support has been added to the source code. Binary
Linux packages will continue to utilize XTest for event generation for the
time being. If you would like to test uinput integration then you will have
to compile the program using -DWITH_UINPUT=ON and -DWITH_XTEST=OFF
when running cmake. Playing Warsow 1.51 in Linux using antimicroX requires
using uinput integration. Also, keys can now be pressed in a tty.
2014-08-01 Travis Nickles
Version 2.5
* Fixed packaging the Windows version so the program will work on
Windows XP again.
* Delay rendering of flashing buttons. This helps improve controller
responsiveness when the main window is not hidden.
* Reduced the size of written profiles. Only changed values are
now stored in profiles.
* Updated German translation provided by phob and Leonard Koenig.
* Allow a profile to be listed as the final argument on the command line.
Ex: antimicroX ~/antimicroX-profiles/profile.xml.
* Added diagonal distance support for distance slots for Standard
mode on Sticks and DPads. This was necessary for some modifier assignments
to work properly. The best example is for assigning walking in Half-Life 1.
* Allow generated events to be sent to a different X display than the
application is running on. This change was mainly done to better work
with SteamOS. antimicroX can be run via ssh with X tunneling in order
to configure profiles on one system but the program will send events to the
X display that is running Steam and games.
* Auto Profile support has improved for SteamOS. Application grabbing can
now be done while in the SteamOS BPM Session. Steam BPM can be grabbed as
well.
* Only show active or soon to be active slots for buttons in the main
window. The text displayed on the buttons will update when a
new zone has been reached due to using slots such as distance or hold.
* Allow no profile to be assigned to an application for an Auto Profile entry.
This means that the program will choose an empty profile when the application
for that Auto Profile entry has focus. This will help with disabling antimicro
for applications that already have controller support.
* Controller Mapping dialog now stops processing events until all elements
have been released on a controller.
2014-05-30 Travis Nickles
Version 2.4
* Relative spring mode added.
* Key repeating changes in Windows.
* Updated Windows version to use Qt 5.3.0.
* Set copying added.
* Corrected application checks used for Auto Profile support
in Windows.
2014-05-23 Travis Nickles
Version 2.3.3
* Tweaked Enhanced Precision mouse acceleration curve.
* Tweaked "all" option in Auto Profile. No profile assigned to "all" now
implies that a blank configuration should be loaded.
* Manpage created by Jeff Backus.
* Migrated to the CMake build system.
2014-05-15 Travis Nickles
Version 2.3.2
* Fixed problem with old profiles not being usable in the
program.
2014-05-13 Travis Nickles
Version 2.3.1
* Added new Enhanced Precision mouse curve. It is now the default
mouse curve. The new mouse curve will make the cursor move slowly
towards the low end of an axis and the cursor movement will be
accelerated towards the high end of an axis.
* Added unsaved profile dialogs.
* Added key repeating behavior under Windows.
* Increased maximum turbo interval.
* Added more options to the Edit Settings dialog.
* Added profile name display editing.
* Fixed invalid pointer issue for Hold events.
2014-05-02 Travis Nickles
Version 2.3
* Added a daemon mode.
* Added joystick profile compatibility parser for game controllers.
Old profiles are now usable when using SDL Game Controller support.
Old profiles have to be mapped against the same controller that
is connected.
* Added cycle reset support. Sequences with cycles can now get
returned to the first cycle zone in a sequence after a period of
time.
* Changed Auto Profile support to work properly in SteamOS
while running the SteamOS Big Picture Mode session. On many
tested games (Duke Nukem 3D, SuperTux, World of Goo), the
game had to be run in windowed mode in order for Auto Profile
support to be able to detect the application. It is recommended
that you run games in windowed mode when using Auto Profile support
in the SteamOS BPM session. This is not an issue when running the Steam
desktop client in desktop mode.
* Added a delay slot type. A delay slot can be used for
key presses in a key combination. Unlike other macro slots, slots
placed before a delay slot will remain active after the specified
time has passed.
* Added option to allow the program to start on Windows startup.
* Changed dialogs for secondary set buttons to display the set
that the button is currently in.
* Changed turbo mode to give more control. Key presses are now given
more time to be active. Key presses and releases now run for a
duration of t/2 seconds.
* Altered tray menu to display a single list when only one controller
is connected. An option has been added to allow for a single
list to also be used when multiple controllers are detected.
* Fixed issue with Windows XP Auto Profile workaround.
On the plus side, now the program is confirmed to work in
Windows XP.
* Fixed issues with Auto Profile support saving and precedence.
2014-04-19 Travis Nickles
Version 2.2
* Added example controller display to Game Controller Mapping
dialog window.
* Added Auto Profile support. Allows for profiles to be associated
with specific applications.
* Added button icons in Windows version.
* Added a press time slot type. That slot type is used
to have keys active for a specific period of time.
* Allow Pause slots to have a 0 second interval. Allows
for a forced key release.
* Windows version is now built with SDL 2.0.3.
* Fixed 8-Way D-Pad mode.
* Fixed preset options in various dialogs to account for new aliases.
* Fixed ampersand rendering in set buttons.
* Fixed spring mouse mode dimension support.
* Fixed spring mouse mode accuracy under Windows.
2014-02-28 Travis Nickles
Version 2.1
* Added new stick and dpad modes.
* Added set names.
* Minor fixes for Windows.
* Fixed QSettings usage to reduce reads and write to config file.
2014-02-10 Travis Nickles
Version 2.0.1
* Active keyboard keys now use a reference count. This will
be useful for keeping modifier keys held when moving a stick
from a diagonal direction to a cardinal direction. This will allow a run
to be maintained properly.
* A release delay has been added to release slot events. This is needed
for some games where a key press and release might happen too quickly
for a game, such as The Elder Scrolls IV: Oblivion, to catch it.
* Altered data sent to SendInput under Windows. The change should allow
games that rely exclusively on scancode data to detect keyboard
key presses now. Previously, keyboard emulation would not work
while playing The Elder Scrolls IV: Oblivion on Windows.
* Improved key associations under Windows. VK_OEM_* keys associations
are now generated at runtime which will allow associations
to be more layout independent.
* Changed some portions of the Windows version so that the Numpad
Enter key can be emulated.
* The recent profile list is now updated when a profile is added
or removed from the list as opposed to when the program is closed.
This allows the list to be in sync while utilizing hotplugging.
2014-01-04 Travis Nickles
Version 2.0
* Migrated profiles to use Qt key values as opposed to using native key code
values. Allows for better cross-platform compatibility. Current
joystick profiles will be migrated when first loaded by the program.
* Program can now be compiled against SDL 2.
* The Game Controller API provided by SDL 2 has been integrated into the
application. The API is used to abstract various gamepads to a unified
standard. Profiles made against the Game Controller API can be used with
any controller that is supported. Unsupported controllers will have to be
mapped in the program.
* A simple Game Controller mapping window has been made so people that are using
an unsupported controller can map that controller so that it can be used with
the Game Controller API. Any saved mapping string will be loaded into
SDL when antimicro is first launched or when you select the
"Update Joysticks" option in the main window.
* Any new saved profile will include the device type that it is
associated with in the filename. Joysticks and game controllers use slightly
different file specifications.
* Joystick hotplugging support has been added thanks to SDL 2.
* On Windows, XInput support is now available. This allows the Xbox 360
controller guide button to be usable and both gamepad triggers can be used at
the same time. Previously, only DirectInput was being used so both triggers were
being mapped to one axis so they would negate each other if used at the same
time. This problem would really affect people trying to play Call of Duty with a
360 controller when the "Hold Aim Down the Sight" option is enabled in the game.
* The list of recent profiles is now tied to a joystick GUID or joystick name
if the GUID is not available (compiled against SDL 1.2).
* Program options window has been made. For right now, it is only being used to
allow users to be able to disable Game Controller integration for specific
controllers.
* Mouse events are queued before a mouse event is sent to the system. This
allows for smoother diagonal mouse movement. This really helped improve camera
control for me in Warsow.
* Key checker dialog has been made so you can check the alias values that are
being used for keyboard keys. This is mainly for debugging purposes. If you
find that a keyboard key that you use does not have a built-in alias, please
let me know so an alias can be added. Although, the key can still be used in
the program and saved to a profile. The major downside is that a profile
that uses an unsupported key will not be cross-platform compatible.
2013-12-13 Travis Nickles
Version 1.2
* Improved while held set changing so that the program should not get stuck on
the wrong set. The changes made should behave roughly like the old while held
workaround that used turbo.
* Windows port of antimicro has been made.
* Tweaked code used for button presses and releases in order
to improve responsiveness.
* Allow time-dependent action slots to have an interval
as low as 0.01 seconds.
* Tweaked Release action slot. Release slots can now be placed at the
beginning of the assigned slots. This can be useful for
Tap and Hold slot configurations.
* Pause slots can now be used with Release slots.
* Profiles can be removed from the recent configs list.
* Spring mouse mode preview has now been enabled.
* Mouse speed modifier action slot has been added. This can be used to modify
the mouse speed settings used with any controller element while the slot is
active. The setting will modify the mouse speed by the percentage that is
specified. The mouse speed modifier can be used to allow for the mouse speed
to be slowed down while sniping.
* Button and action names have been added. Names can be used to describe
the action that a slot sequence performs in the game.
* Mouse wheel buttons are now used as a form of mouse movement. Mouse wheel
scrolling is now possible without using turbo. The speed that the wheel is
rotated can be specified in the mouse settings dialog window.
* Added support for two extra mouse buttons.
* A new controller properties window has been made. This window shows various
bits of information provided by SDL about a controller as well as the current
values of all the controller elements.
* Added quick assign functionality for sticks and virtual dpads.
* Windows version of the program now uses LocalAppData variable to know
where to place the program's settings file.
* New translations provided by the translation team.
2013-10-03 Travis Nickles
Version 1.1
* Added spring mouse mode. This mode is used to move the mouse cursor
from the center of the screen based on how much an axis has been moved
from the dead zone. The mouse cursor will be returned to the center
of the screen when the axis is released.
* Added mouse curve options from QJoyPad.
* Tweaked mouse movement in cursor mode to improve axis responsiveness
and to allow mouse movement to be less jittery.
* Added optional mouse smoothing for a further reduction
in jitter in exchange for slightly delayed responsiveness.
* Moved various mouse settings into a new dialog window.
Several other dialog windows have been changed to point to the
new dialog window to allow for mouse setting adjustments.
* Added an option to start the program hidden.
* Tray menu has been tweaked to allow configuration profiles to be
disabled. A blank new profile will be enabled in the program
for a controller. This is equivalent to selecting in the main window
combobox.
* Serbian translation provided by Jay Alexander Fleming.
* Brazilian Portuguese translation provided by VaGNaroK.
2013-07-12 Travis Nickles
Version 1.0
* 8-way controls have been implemented. This allows keys to be mapped
to the diagonal directions of controller sticks and dpads. 8-way controls
allow rougelike games to be playable.
* Virtual Dpad support has been added. Axes and buttons can be mapped
to a virtual dpad. This is useful for mapping dpads that are detected as a
pair of axes in SDL.
* A Quick Set option has been added. Using the Quick Set option, you
can press a button on the controller and the program will bring up the edit
window for that specific button. The button can then be mapped to an
assignment from the edit window. The Quick Set option also works for axes,
controller sticks, and dpads. This is more of a convenience function than
anything but I have found it really useful since implementing it.
* Main interface button text is now updated whenever the assigned slots
are changed. This allows the buttons' text to be in sync in many situations
that was not possible before.
* Toggle and Turbo can be used together to create automated key macros for
use in MMORPGs.
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
AntiMicroX-antimicrox-2888bf6/CMakeLists.txt 0000664 0000000 0000000 00000054724 13777035150 0021037 0 ustar 00root root 0000000 0000000 ## antimicrox Gamepad to KB+M event mapper
## Copyright (C) 2015 Travis Nickles
## Copyright (C) 2020 Jagoda Górska
## Copyright (C) 2020 Paweł Kotiuk
##
## This program is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation, either version 3 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program. If not, see .
cmake_minimum_required(VERSION 3.6)
set(QT_REQUIRED_VERSION 5.8)
set(SDL_REQUIRED_VERSION 2.0.6)
project(antimicrox)
if(POLICY CMP0071)
cmake_policy(SET CMP0071 NEW)
endif()
if(UNIX)
find_package(ECM REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_MODULE_DIR})
endif(UNIX)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" "${CMAKE_ROOT}/Modules")
set(CMAKE_INCLUDE_CURRENT_DIR ON)
if(UNIX AND NOT APPLE AND CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
set(CMAKE_INSTALL_PREFIX "/usr" CACHE PATH "force cmake prefix to be set for /usr" FORCE)
endif(UNIX AND NOT APPLE AND CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
include(CheckCXXCompilerFlag)
include(GNUInstallDirs)
if(UNIX)
include(ECMInstallIcons)
endif(UNIX)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
if(COMPILER_SUPPORTS_CXX11)
if(NOT WIN32)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Wcast-align -Wcast-qual -Wctor-dtor-privacy -Wdisabled-optimization -Wformat=2 -Winit-self -Wlogical-op -Wmissing-declarations -Wmissing-include-dirs -Wnoexcept -Wold-style-cast -Woverloaded-virtual -Wredundant-decls -Wstrict-null-sentinel -Wstrict-overflow=5 -Wundef -Wno-unused -std=c++11")
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
endif()
else()
message(FATAL_ERROR "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
endif(COMPILER_SUPPORTS_CXX11)
# The version number.
set(ANTIMICROX_MAJOR_VERSION 3)
set(ANTIMICROX_MINOR_VERSION 1)
set(ANTIMICROX_PATCH_VERSION 4)
option(WITH_TESTS "Allow tests for classes" OFF)
if(WITH_TESTS)
message("Tests enabled")
endif(WITH_TESTS)
if(UNIX)
option(WITH_X11 "Compile with support for X11." ON)
option(WITH_UINPUT "Compile with support for uinput. uinput will be usable to simulate events." ON)
option(WITH_XTEST "Compile with support for XTest. XTest will be usable to simulate events." ON)
option(APPDATA "Build project with AppData file support." ON)
endif(UNIX)
option(UPDATE_TRANSLATIONS "Call lupdate to update translation files from source." OFF)
option(TRANS_KEEP_OBSOLETE "Add -noobsolete option to lupdate command to get rid of old text entries" OFF)
option(ATTACH_FAKE_CLASSES "Fake classes can be used in application to tests functionalities" OFF)
if(UNIX)
find_package(PkgConfig REQUIRED)
pkg_check_modules(SDL2 REQUIRED sdl2)
# find_package(SDL2 REQUIRED) -> will fail on some systems
if(WITH_X11)
find_package(X11 REQUIRED)
endif(WITH_X11)
if(WITH_XTEST AND NOT WITH_X11)
set(WITH_XTEST OFF)
message("Cannot use XTest without X11. Disabling XTest support.")
endif(WITH_XTEST AND NOT WITH_X11)
if(WITH_XTEST)
message("XTest support allowed for simulating events.")
endif(WITH_XTEST)
if(WITH_UINPUT)
message("uinput support allowed for simulating events.")
endif(WITH_UINPUT)
if(NOT WITH_XTEST AND NOT WITH_UINPUT)
message(FATAL_ERROR "No system is defined for simulating events.")
endif(NOT WITH_XTEST AND NOT WITH_UINPUT)
endif(UNIX)
set(antimicrox_MAIN src/main.cpp)
set(antimicrox_SOURCES
src/aboutdialog.cpp
src/addeditautoprofiledialog.cpp
src/advancebuttondialog.cpp
src/advancestickassignmentdialog.cpp
src/antimicrosettings.cpp
src/antkeymapper.cpp
src/applaunchhelper.cpp
src/autoprofileinfo.cpp
src/axiseditdialog.cpp
src/axisvaluebox.cpp
src/buttoneditdialog.cpp
src/calibration.cpp
src/commandlineutility.cpp
src/common.cpp
src/dpadcontextmenu.cpp
src/dpadeditdialog.cpp
src/dpadpushbutton.cpp
src/dpadpushbuttongroup.cpp
src/editalldefaultautoprofiledialog.cpp
src/event.cpp
src/eventhandlerfactory.cpp
src/eventhandlers/baseeventhandler.cpp
src/extraprofilesettingsdialog.cpp
src/flashbuttonwidget.cpp
src/gamecontroller/gamecontroller.cpp
src/gamecontroller/gamecontrollerdpad.cpp
src/gamecontroller/gamecontrollerset.cpp
src/gamecontroller/gamecontrollertrigger.cpp
src/gamecontroller/gamecontrollertriggerbutton.cpp
src/gamecontroller/xml/gamecontrollerdpadxml.cpp
src/gamecontroller/xml/gamecontrollertriggerxml.cpp
src/gamecontroller/xml/gamecontrollerxml.cpp
src/gamecontrollerexample.cpp
src/gamecontrollermappingdialog.cpp
src/globalvariables.cpp
src/inputdaemon.cpp
src/inputdevice.cpp
src/inputdevicebitarraystatus.cpp
src/joyaxis.cpp
src/joyaxiscontextmenu.cpp
src/joyaxiswidget.cpp
src/joybutton.cpp
src/joybuttoncontextmenu.cpp
src/joybuttonmousehelper.cpp
src/joybuttonslot.cpp
src/joybuttonstatusbox.cpp
src/joybuttontypes/joyaxisbutton.cpp
src/joybuttontypes/joycontrolstickbutton.cpp
src/joybuttontypes/joycontrolstickmodifierbutton.cpp
src/joybuttontypes/joydpadbutton.cpp
src/joybuttontypes/joygradientbutton.cpp
src/joybuttonwidget.cpp
src/joycontrolstick.cpp
src/joycontrolstickbuttonpushbutton.cpp
src/joycontrolstickcontextmenu.cpp
src/joycontrolstickeditdialog.cpp
src/joycontrolstickpushbutton.cpp
src/joycontrolstickstatusbox.cpp
src/joydpad.cpp
src/joydpadbuttonwidget.cpp
src/joystick.cpp
src/joystickstatuswindow.cpp
src/joytabwidget.cpp
src/joytabwidgetcontainer.cpp
src/keyboard/virtualkeyboardmousewidget.cpp
src/keyboard/virtualkeypushbutton.cpp
src/keyboard/virtualmousepushbutton.cpp
src/localantimicroserver.cpp
src/logger.cpp
src/mainsettingsdialog.cpp
src/mainwindow.cpp
src/messagehandler.cpp
src/mousedialog/mouseaxissettingsdialog.cpp
src/mousedialog/mousebuttonsettingsdialog.cpp
src/mousedialog/mousecontrolsticksettingsdialog.cpp
src/mousedialog/mousedpadsettingsdialog.cpp
src/mousedialog/springmoderegionpreview.cpp
src/mousedialog/uihelpers/mouseaxissettingsdialoghelper.cpp
src/mousedialog/uihelpers/mousebuttonsettingsdialoghelper.cpp
src/mousedialog/uihelpers/mousecontrolsticksettingsdialoghelper.cpp
src/mousedialog/uihelpers/mousedpadsettingsdialoghelper.cpp
src/mousehelper.cpp
src/mousesettingsdialog.cpp
src/qkeydisplaydialog.cpp
src/qtkeymapperbase.cpp
src/quicksetdialog.cpp
src/sdleventreader.cpp
src/setaxisthrottledialog.cpp
src/setjoystick.cpp
src/setnamesdialog.cpp
src/simplekeygrabberbutton.cpp
src/slotitemlistwidget.cpp
src/stickpushbuttongroup.cpp
src/uihelpers/advancebuttondialoghelper.cpp
src/uihelpers/buttoneditdialoghelper.cpp
src/uihelpers/dpadcontextmenuhelper.cpp
src/uihelpers/dpadeditdialoghelper.cpp
src/uihelpers/gamecontrollermappingdialoghelper.cpp
src/uihelpers/joyaxiscontextmenuhelper.cpp
src/uihelpers/joycontrolstickcontextmenuhelper.cpp
src/uihelpers/joycontrolstickeditdialoghelper.cpp
src/uihelpers/joytabwidgethelper.cpp
src/vdpad.cpp
src/xml/inputdevicexml.cpp
src/xml/joyaxisxml.cpp
src/xml/joybuttonslotxml.cpp
src/xml/joybuttonxml.cpp
src/xml/joydpadxml.cpp
src/xml/setjoystickxml.cpp
src/xmlconfigmigration.cpp
src/xmlconfigreader.cpp
src/xmlconfigwriter.cpp
)
set(antimicrox_HEADERS
src/aboutdialog.h
src/addeditautoprofiledialog.h
src/advancebuttondialog.h
src/advancestickassignmentdialog.h
src/antimicrosettings.h
src/antkeymapper.h
src/applaunchhelper.h
src/autoprofileinfo.h
src/axiseditdialog.h
src/axisvaluebox.h
src/buttoneditdialog.h
src/calibration.h
src/commandlineutility.h
src/dpadcontextmenu.h
src/dpadeditdialog.h
src/dpadpushbutton.h
src/dpadpushbuttongroup.h
src/editalldefaultautoprofiledialog.h
src/eventhandlerfactory.h
src/eventhandlers/baseeventhandler.h
src/extraprofilesettingsdialog.h
src/flashbuttonwidget.h
src/gamecontroller/gamecontroller.h
src/gamecontroller/gamecontrollerdpad.h
src/gamecontroller/gamecontrollerset.h
src/gamecontroller/gamecontrollertrigger.h
src/gamecontroller/gamecontrollertriggerbutton.h
src/gamecontroller/xml/gamecontrollerdpadxml.h
src/gamecontroller/xml/gamecontrollertriggerxml.h
src/gamecontroller/xml/gamecontrollerxml.h
src/gamecontrollerexample.h
src/gamecontrollermappingdialog.h
src/globalvariables.h
src/inputdaemon.h
src/inputdevice.h
src/inputdevicebitarraystatus.h
src/joyaxis.h
src/joyaxiscontextmenu.h
src/joyaxiswidget.h
src/joybutton.h
src/joybuttoncontextmenu.h
src/joybuttonmousehelper.h
src/joybuttonslot.h
src/joybuttonstatusbox.h
src/joybuttontypes/joyaxisbutton.h
src/joybuttontypes/joycontrolstickbutton.h
src/joybuttontypes/joycontrolstickmodifierbutton.h
src/joybuttontypes/joydpadbutton.h
src/joybuttontypes/joygradientbutton.h
src/joybuttonwidget.h
src/joycontrolstick.h
src/joycontrolstickbuttonpushbutton.h
src/joycontrolstickcontextmenu.h
src/joycontrolstickeditdialog.h
src/joycontrolstickpushbutton.h
src/joycontrolstickstatusbox.h
src/joydpad.h
src/joydpadbuttonwidget.h
src/joystick.h
src/joystickstatuswindow.h
src/joytabwidget.h
src/joytabwidgetcontainer.h
src/keyboard/virtualkeyboardmousewidget.h
src/keyboard/virtualkeypushbutton.h
src/keyboard/virtualmousepushbutton.h
src/localantimicroserver.h
src/logger.h
src/mainsettingsdialog.h
src/mainwindow.h
src/messagehandler.h
src/mousedialog/mouseaxissettingsdialog.h
src/mousedialog/mousebuttonsettingsdialog.h
src/mousedialog/mousecontrolsticksettingsdialog.h
src/mousedialog/mousedpadsettingsdialog.h
src/mousedialog/springmoderegionpreview.h
src/mousedialog/uihelpers/mouseaxissettingsdialoghelper.h
src/mousedialog/uihelpers/mousebuttonsettingsdialoghelper.h
src/mousedialog/uihelpers/mousecontrolsticksettingsdialoghelper.h
src/mousedialog/uihelpers/mousedpadsettingsdialoghelper.h
src/mousehelper.h
src/mousesettingsdialog.h
src/qkeydisplaydialog.h
src/qtkeymapperbase.h
src/quicksetdialog.h
src/sdleventreader.h
src/setaxisthrottledialog.h
src/setjoystick.h
src/setnamesdialog.h
src/simplekeygrabberbutton.h
src/slotitemlistwidget.h
src/stickpushbuttongroup.h
src/uihelpers/advancebuttondialoghelper.h
src/uihelpers/buttoneditdialoghelper.h
src/uihelpers/dpadcontextmenuhelper.h
src/uihelpers/dpadeditdialoghelper.h
src/uihelpers/gamecontrollermappingdialoghelper.h
src/uihelpers/joyaxiscontextmenuhelper.h
src/uihelpers/joycontrolstickcontextmenuhelper.h
src/uihelpers/joycontrolstickeditdialoghelper.h
src/uihelpers/joytabwidgethelper.h
src/vdpad.h
src/xml/inputdevicexml.h
src/xml/joyaxisxml.h
src/xml/joybuttonslotxml.h
src/xml/joybuttonxml.h
src/xml/joydpadxml.h
src/xml/setjoystickxml.h
src/xmlconfigmigration.h
src/xmlconfigreader.h
src/xmlconfigwriter.h
)
if(ATTACH_FAKE_CLASSES)
LIST(APPEND antimicrox_SOURCES
src/fakeclasses/xbox360wireless.cpp
)
LIST(APPEND antimicrox_HEADERS
src/fakeclasses/xbox360wireless.h
)
endif(ATTACH_FAKE_CLASSES)
set(antimicrox_FORMS
src/aboutdialog.ui
src/addeditautoprofiledialog.ui
src/advancebuttondialog.ui
src/advancestickassignmentdialog.ui
src/axiseditdialog.ui
src/buttoneditdialog.ui
src/calibration.ui
src/capturedwindowinfodialog.ui
src/dpadeditdialog.ui
src/editalldefaultautoprofiledialog.ui
src/extraprofilesettingsdialog.ui
src/gamecontrollermappingdialog.ui
src/joycontrolstickeditdialog.ui
src/joystickstatuswindow.ui
src/mainsettingsdialog.ui
src/mainwindow.ui
src/mousesettingsdialog.ui
src/qkeydisplaydialog.ui
src/quicksetdialog.ui
src/setaxisthrottledialog.ui
src/setnamesdialog.ui
)
set(antimicrox_RESOURCES src/resources.qrc)
# Platform dependent files.
if(UNIX)
if(WITH_X11)
LIST(APPEND antimicrox_SOURCES src/x11extras.cpp
src/qtx11keymapper.cpp
src/unixcapturewindowutility.cpp
src/autoprofilewatcher.cpp
src/capturedwindowinfodialog.cpp
)
LIST(APPEND antimicrox_HEADERS src/x11extras.h
src/qtx11keymapper.h
src/unixcapturewindowutility.h
src/autoprofilewatcher.h
src/capturedwindowinfodialog.h
)
if(WITH_XTEST)
LIST(APPEND antimicrox_SOURCES src/eventhandlers/xtesteventhandler.cpp)
LIST(APPEND antimicrox_HEADERS src/eventhandlers/xtesteventhandler.h)
endif(WITH_XTEST)
endif(WITH_X11)
if(WITH_UINPUT)
LIST(APPEND antimicrox_SOURCES src/qtuinputkeymapper.cpp
src/uinputhelper.cpp
src/eventhandlers/uinputeventhandler.cpp
)
LIST(APPEND antimicrox_HEADERS src/qtuinputkeymapper.h
src/uinputhelper.h
src/eventhandlers/uinputeventhandler.h
)
endif(WITH_UINPUT)
endif(UNIX)
if(UNIX)
if(WITH_X11)
add_definitions(-DWITH_X11)
endif(WITH_X11)
if(WITH_XTEST)
add_definitions(-DWITH_XTEST)
endif(WITH_XTEST)
if(WITH_UINPUT)
add_definitions(-DWITH_UINPUT)
endif(WITH_UINPUT)
endif(UNIX)
if(UNIX)
find_package(Qt5Widgets ${QT_REQUIRED_VERSION} REQUIRED)
find_package(Qt5Core ${QT_REQUIRED_VERSION} REQUIRED)
find_package(Qt5Gui ${QT_REQUIRED_VERSION} REQUIRED)
find_package(Qt5Network ${QT_REQUIRED_VERSION} REQUIRED)
find_package(Qt5LinguistTools ${QT_REQUIRED_VERSION} REQUIRED)
find_package(Qt5Concurrent ${QT_REQUIRED_VERSION} REQUIRED)
#find_package(Qt5Test REQUIRED)
QT5_WRAP_CPP(antimicrox_HEADERS_MOC ${antimicrox_HEADERS})
QT5_WRAP_UI(antimicrox_FORMS_HEADERS ${antimicrox_FORMS})
QT5_ADD_RESOURCES(antimicrox_RESOURCES_RCC ${antimicrox_RESOURCES})
add_subdirectory("share/antimicrox/translations")
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
endif(UNIX)
# linker libraries
LIST(APPEND QT_LIBS Qt5::Core)
LIST(APPEND QT_LIBS Qt5::Gui)
LIST(APPEND QT_LIBS Qt5::Widgets)
LIST(APPEND QT_LIBS Qt5::Concurrent)
LIST(APPEND QT_LIBS Qt5::Network)
if(UNIX)
if(WITH_X11)
LIST(APPEND X11_LIBS ${X11_X11_LIB})
LIST(APPEND X11_LIBS ${X11_Xi_LIB})
endif(WITH_X11)
if(WITH_XTEST)
LIST(APPEND EXTRA_LIBS ${X11_XTest_LIB})
endif(WITH_XTEST)
# necessary ifwe use find_package for SDL2
# if(NOT DEFINED SDL2_LIBRARIES)
# set(SDL2_LIBRARIES SDL2::SDL2)
# endif()
endif(UNIX)
include_directories(
${CMAKE_CURRENT_BINARY_DIR}
"${CMAKE_CURRENT_BINARY_DIR}/src"
${PROJECT_SOURCE_DIR}
"${PROJECT_SOURCE_DIR}/src"
)
if(UNIX)
# Store executable in a bin subdir. Needed here so translations can be loaded.
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin")
endif(UNIX)
add_executable(antimicrox
${antimicrox_MAIN}
${antimicrox_HEADERS_MOC}
${antimicrox_SOURCES}
${antimicrox_FORMS_HEADERS}
${antimicrox_RESOURCES_RCC}
)
target_link_libraries(antimicrox
${QT_LIBS}
${X11_LIBS}
${SDL2_LIBRARIES}
${EXTRA_LIBS}
)
# Specify out directory for final executable.
if(UNIX)
install(TARGETS antimicrox RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
# install(TARGETS antilib DESTINATION "${CMAKE_INSTALL_LIBDIR}")
install(FILES ${antimicrox_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/antimicrox")
endif(UNIX)
if(UNIX)
ecm_install_icons(ICONS src/icons/application/16x16/apps/16-apps-io.github.antimicrox.antimicrox.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons)
ecm_install_icons(ICONS src/icons/application/24x24/apps/24-apps-io.github.antimicrox.antimicrox.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons)
ecm_install_icons(ICONS src/icons/application/32x32/apps/32-apps-io.github.antimicrox.antimicrox.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons)
ecm_install_icons(ICONS src/icons/application/48x48/apps/48-apps-io.github.antimicrox.antimicrox.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons)
ecm_install_icons(ICONS src/icons/application/64x64/apps/64-apps-io.github.antimicrox.antimicrox.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons)
ecm_install_icons(ICONS src/icons/application/128x128/apps/128-apps-io.github.antimicrox.antimicrox.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons)
ecm_install_icons(ICONS src/icons/application/scalable/apps/sc-apps-io.github.antimicrox.antimicrox.svg DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons)
ecm_install_icons(ICONS src/images/breeze_themed/48-apps-antimicrox_trayicon.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons THEME breeze)
ecm_install_icons(ICONS src/images/48-apps-antimicrox_trayicon.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons)
install(FILES CHANGELOG.md DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/doc/antimicrox")
install(FILES other/io.github.antimicrox.antimicrox.desktop DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications")
install(FILES other/io.github.antimicrox.antimicrox.xml DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/mime/packages")
# Copy current Changelog file to location that the resource file expects.
install(FILES CHANGELOG.md DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/antimicrox")
endif(UNIX)
# Add man page for *nix platforms.
if(UNIX)
add_subdirectory(other)
# Only way to force install target to be dependent on manpage.
install(CODE "execute_process(COMMAND ${CMAKE_BUILD_TOOL} manpage WORKING_DIRECTORY \"${CMAKE_CURRENT_BINARY_DIR}\")")
if(APPDATA)
# Only way to force install target to be dependent on appdata.
install(CODE "execute_process(COMMAND ${CMAKE_BUILD_TOOL} appdata WORKING_DIRECTORY \"${CMAKE_CURRENT_BINARY_DIR}\")")
endif(APPDATA)
endif(UNIX)
# uninstall target
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
IMMEDIATE @ONLY)
add_custom_target(uninstall
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
# Only way to force install target to be dependent on updateqm.
install(CODE "execute_process(COMMAND ${CMAKE_BUILD_TOOL} updateqm WORKING_DIRECTORY \"${CMAKE_CURRENT_BINARY_DIR}\")")
# Use this to use some variables created here in the actual project.
# Modify the config.h.in file using the appropriate variables.
configure_file(
"${PROJECT_SOURCE_DIR}/src/config.h.in"
"${PROJECT_BINARY_DIR}/config.h"
)
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/CHANGELOG.md DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/src/)
if(WITH_TESTS)
enable_testing()
add_subdirectory(tests)
endif(WITH_TESTS)
#building package using CPack
include(InstallRequiredSystemLibraries)
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Program used to map keyboard keys and mouse controls to a gamepad.")
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
set(CPACK_PACKAGE_VERSION_MAJOR "${ANTIMICROX_MAJOR_VERSION}")
set(CPACK_PACKAGE_VERSION_MINOR "${ANTIMICROX_MINOR_VERSION}")
set(CPACK_PACKAGE_VERSION_PATCH "${ANTIMICROX_PATCH_VERSION}")
set(CPACK_PACKAGE_FILE_NAME "antimicrox-${ANTIMICROX_MAJOR_VERSION}.${ANTIMICROX_MINOR_VERSION}.${ANTIMICROX_PATCH_VERSION}-${CMAKE_HOST_SYSTEM_PROCESSOR}")
set(CPACK_PACKAGE_INSTALL_DIRECTORY "CMake ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}")
if(UNIX)
set(CPACK_STRIP_FILES "")
set(CPACK_SOURCE_STRIP_FILES "")
endif()
# Building .deb package
if(CPACK_GENERATOR STREQUAL "DEB")
set(CPACK_DEBIAN_PACKAGE_DEPENDS "qtbase5-dev (>= ${QT_REQUIRED_VERSION}), libsdl2-2.0-0 (>= ${SDL_REQUIRED_VERSION}), libc6")
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "pktiuk ")
set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "AntiMicroX is a graphical program used to map gamepad buttons to keyboard, mouse, scripts and macros.
It is a new fork of discontinued AntiMicro.")
message("Preparing documentation for DEB package")
add_custom_target(package_docummentation ALL)
#Compress changelog and save it as share/doc/xournalpp/changelog.Debian.gz
add_custom_command(TARGET package_docummentation PRE_BUILD
COMMAND gzip -c -9 -n "${PROJECT_SOURCE_DIR}/CHANGELOG.md" > "changelog.gz" VERBATIM)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/changelog.gz" DESTINATION "share/doc/antimicrox/")
#Strip binaries from unnecessary notes, comments, etc
add_custom_command(TARGET antimicrox POST_BUILD
COMMAND strip --strip-unneeded --remove-section=.comment --remove-section=.note "${CMAKE_CURRENT_BINARY_DIR}/bin/antimicrox" VERBATIM)
endif()
set(CPACK_PACKAGE_EXECUTABLES "antimicrox" "antimicrox")
include(CPack)
AntiMicroX-antimicrox-2888bf6/LICENSE 0000664 0000000 0000000 00000104515 13777035150 0017276 0 ustar 00root root 0000000 0000000 GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc.
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
Copyright (C)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
Copyright (C)
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
.
AntiMicroX-antimicrox-2888bf6/ProfileTips.md 0000664 0000000 0000000 00000007772 13777035150 0021062 0 ustar 00root root 0000000 0000000 Profile Tips
============
## Sticks
### Dead Zones
The XInput standard of 8,000 will typically be used in profiles for analog
sticks. For an Xbox 360 controller, that value tends to be the best minimum
value to ensure that no unintentional events are produced due to what position
a stick will be centered at.
When using a different controller, you will likely want to play with the value
of the dead zone used for the analog sticks and find what works best for
your controller. As an example, when I make profiles for my Logitech F310
gamepad, I find that using a dead zone value of 2,000 for the analog sticks
works best.
### Left Stick (Keyboard)
The default diagonal range of 45 degrees is recommended when mapping keyboard
keys to an analog stick when using the **standard** stick mode. If only one
action should ever occur at a time and the diagonal direction doesn't matter as
much, you might want to look into **4-way cardinal** stick mode. That can be
useful for navigating menus or mapping weapon hotkeys to an analog stick.
Some games will overreact when mapping WASD or other keyboard keys to an
analog stick. This is mainly due to how quickly directions can be changed
especially if you have the stick positioned right around where a diagonal zone
resides. If you encounter problems in game or you just want to make movement a
little more definitive, you can adjust the **stick delay** value used for that
stick. That will cause direction changes to be slightly delayed. Even setting
the value to 0.01 seconds can greatly increase control in some games.
### Right Stick (Mouse)
To allow for better mouse control with an analog stick, it is recommended
that you use a diagonal range of at least 65 degrees instead of the
normal 45 degree value. If you want more twitchy mouse control, you will
likely want to set the diagonal range of the stick to 89 degrees or 90 degrees.
This will minimize the range used for the absolute cardinal directions.
Another tip that will allow for more twitchy mouse control is related
to the dead zone used for the analog stick. Decreasing the value used for
the stick dead zone can help make mouse control feel more responsive than
when using the standard value of 8,000 even when using an Xbox 360 controller.
Based on my experience, even decreasing the value to 6,000 can make a
huge difference. The big compromise is that there might be some mouse
cursor drift if the analog stick does not center back to the assigned dead
zone. On my Xbox 360 controller, I find that the stick can get stuck slightly
in the southwest region of the stick; the other directions don't have this
issue. However, the mouse cursor drift is very minimal and you can easily
compensate while playing a game. It doesn't hinder gameplay and the benefit
obtained far outweights the minor problem.
One final thing that you can do to make mouse movement more twitchy is to
enable extra acceleration for mouse events. Changing the **extra duration** of
acceleration will have the biggest impact on mouse movement. Increasing the
maximum extra duration of the acceleration will loosen the mouse movement.
Changing the **multiplier** is another option that will change how mouse
movement behaves. One final option that can be changed is to use a different
curve for extra acceleration. **Linear** is still the default setting since it
was the only option available for many versions but I find myself using
**Ease Out Quad** lately. Besides altering the final multiplier used, it also
changes the final duration experienced.
With all the options available for extra acceleration, you will have an easier
time performing a quick 180 degree turn while still having precision on the low
end of a stick for aiming at targets.
## Action Names
It is generally recommended that you specify action names when making profiles
that you will share with other people. This will allow other people to more
easily decipher what buttons are used for in a profile. Specifying action names
can also be a helpful reminder for yourself in order to document a more complex
action.
AntiMicroX-antimicrox-2888bf6/README.md 0000664 0000000 0000000 00000016770 13777035150 0017555 0 ustar 00root root 0000000 0000000 #
AntiMicroX
1. [Description](#description)
2. [License](#license)
3. [Installation](#installation)
4. [Wiki](#wiki)
5. [Command Line](#command-line)
6. [Testing Under Linux](#testing-under-linux)
7. [AntiMicroX Profiles](#antimicrox-profiles)
8. [Support](#support)
9. [Bugs](#bugs)
10. [Shoutout](#shoutout)
11. [Credits](#credits)
12. [Participation in the translation of AntiMicroX](#participation-in-the-translation-of-antimicrox)
## Description
AntiMicroX is a graphical program used to map gamepad keys to keyboard, mouse, scripts and macros. You can use this program to control any desktop application with a gamepad on Linux.
It can be also used for generating SDL2 configuration (useful for mapping atypical gamepads to generic ones like xbox360).
Currently we don't support Wayland ([#32](https://github.com/AntiMicroX/antimicrox/issues/32)) - your system has to be running X.org in order to run this program.
It allows mapping of gamepads/joystick buttons to:
- keyboard buttons
- mouse buttons and moves
- scripts and executables
- macros consisting of elements mentioned above
This program is currently supported under various Linux
distributions.
This application is continuation of project called `AntiMicro`, which was later abandoned and revived by juliagoda.
Legacy repositories:
- First AntiMicroX repository: https://github.com/juliagoda/antimicroX
- Second, maintained by organization: https://github.com/AntiMicro/antimicro
- First, original AntiMicro repository: https://github.com/Ryochan7/antimicro
**Screenshots:**
Disclaimer: Theme may depend on your system configuration.
## License
This program is licensed under the GPL v.3. Please read the LICENSE text document
included with the source code if you would like to read the terms of the license.
The license can also be found online at
http://www.gnu.org/licenses/gpl.txt
## Installation
### Flatpak
The flatpak version is distributed on Flathub, and runs on most major Linux distributions. See instructions here: [Flathub application page](https://flathub.org/apps/details/io.github.antimicrox.antimicrox)
If you have Flathub [set up](https://flatpak.org/setup/) already:
```
flatpak install flathub io.github.antimicrox.antimicrox
```
### Fedora
```
dnf install antimicrox
```
### Arch Linux or Arch Linux based distributions:
```
trizen -S antimicrox
```
**or**
pre-built version can de downloaded from unofficial repository called [chaotic-aur](https://lonewolf.pedrohlc.com/chaotic-aur/).
Append (one of listed mirrors) to `/etc/pacman.conf`:
```bash
# Brazil
Server = http://lonewolf-builder.duckdns.org/$repo/$arch
# Germany
Server = http://chaotic.bangl.de/$repo/$arch
# USA (Cloudflare cached)
Server = https://repo.kitsuna.net/$arch
# Netherlands
Server = https://chaotic.tn.dedyn.io/$arch
```
To check signature, add keys:
```bash
sudo pacman-key --keyserver hkp://keyserver.ubuntu.com -r 3056513887B78AEB 8A9E14A07010F7E3
sudo pacman-key --lsign-key 3056513887B78AEB
sudo pacman-key --lsign-key 8A9E14A07010F7E3
```
Install package
```bash
pacman -S antimicrox
```
### Debian/Ubuntu-based distributions:
Download from the [release site](https://github.com/AntiMicroX/antimicrox/releases) and install `.deb` package.
### AppImage
Download from the [release site](https://github.com/AntiMicroX/antimicrox/releases).
It is recommended to use [AppImageLauncher](https://github.com/TheAssassin/AppImageLauncher) with this package.
### Building Yourself
List of required dependencies and build instructions can be found [here](./BUILDING.md).
## Command Line
Run `antimicrox --help` or read `man antimicrox` for command-line parameters.
## Wiki
[Look here](https://github.com/juliagoda/antimicroX/wiki)
## Testing Under Linux
If you are having problems with antimicrox detecting a controller or
detecting all axes and buttons, you should test the controller outside of
antimicrox to check if the problem is with antimicrox or not. The two endorsed
programs for testing gamepads outside of antimicrox are **sdl-jstest**
(**sdl2-jstest**) and **evtest**. SDL2 utilizes evdev on Linux so performing
testing with older programs that use joydev won't be as helpful since some
devices behave a bit differently between the two systems. Another method also exist,
which can be found [here](https://github.com/juliagoda/SDL_JoystickButtonNames).
## AntiMicroX Profiles
If you would like to send the profile you are using for your application or find something
for yourself, [here](https://github.com/AntiMicroX/antimicrox-profiles) is the forked repository. If you want to report a bug, ask
a question or share a suggestion, you can do that on the antimicrox page or on the
[antimicrox-profiles](https://github.com/AntiMicroX/antimicrox-profiles) page.
## Support
In order to obtain support, you can post an issue [here](https://github.com/AntiMicroX/antimicrox/issues).
## Bugs
Application's bugs will be fixed. There are created tests for detecting bugs. Of course, I'm open to proposals or questions from users.
## Shoutout
A big, original inspiration for this program was the program QJoyPad.
## Credits
### Contributors
Full list is available [here](https://github.com/AntiMicroX/antimicrox/graphs/contributors)
### Package Maintainers
**Distro** | **Maintainer** | **Package** |
| :--------- | :------------- | :----------- |
| Arch Linux | frealgagu | [antimicrox](https://aur.archlinux.org/packages/antimicrox/) AUR |
| Arch Linux | FabioLolix | [antimicrox-git](https://aur.archlinux.org/packages/antimicrox-git) AUR |
| Fedora Linux | [gombosg](https://github.com/gombosg) | antimicrox |
| Flatpak | [gombosg](https://github.com/gombosg) | [io.github.antimicrox.antimicrox](https://flathub.org/apps/details/io.github.antimicrox.antimicrox) |
### Translators
VaGNaroK - Brazilian Portuguese
zzpxyx - Chinese
Belleguic Terence - French
Leonard Koenig - German
phob - German
tou omiya - Japanese
Dmitriy Koshel - Russian
Jay Alexander Fleming - Serbian
burunduk - Ukrainian
Flavio HR - Spanish
WAZAAAAA - - Italian
juliagoda - Polish
## Participation in the translation of AntiMicroX
If you want to participate in the translation of the program, but your language is not yet on the support list. Please contact us.
However, if your language is already supported in the program, you must have the Qt Linguist program installed, which is usually included in the qt5-tools package, to conveniently translate the application. However, before you do that, make sure that you don't already have this program installed. All you have to do is open it, and then use it to open a file with the ts extension.
If a red exclamation mark appears in the translation field, it means that your translation does not end with the same sign as the original content. Try to place commas or dots in appropriate places and often save your progress.
AntiMicroX-antimicrox-2888bf6/Resources.txt 0000664 0000000 0000000 00000004757 13777035150 0021013 0 ustar 00root root 0000000 0000000 1) Generate GUIDs for use in .wxs files
http://www.guidgen.com/
2) Site used to check out the behavior of different easing curves
http://easings.net/
3) Repository of code examples for many different easing curves
https://github.com/jesusgollonet/ofpennereasing
4) Site used to generate acceleration curve images
http://rechneronline.de/function-graphs/
5) Check GUID of your connected controller, controller name, vendor, product, product version and buttons.
https://github.com/juliagoda/SDL_JoystickButtonNames
6) Check ASCII character
https://www.tau.ac.il/~flaxer/edu/course/computerappl/ASCII_Characters.htm
http://www.asciitable.com
7) Device registers in C
https://www.embedded.com/design/programming-languages-and-tools/4432746/Device-registers-in-C
https://samypesse.gitbooks.io/how-to-create-an-operating-system/Chapter-8/
8) Regex tutorial
https://medium.com/factory-mind/regex-tutorial-a-simple-cheatsheet-by-examples-649dc1c3f285
9) Appveyor documentation and examples
https://www.appveyor.com/docs/getting-started-with-appveyor-for-linux/
https://www.appveyor.com/docs/appveyor-yml/
https://www.appveyor.com/docs/windows-images-software/
https://github.com/vlc-qt/examples/blob/master/.appveyor.yml
https://github.com/Yubico/yubioath-desktop/blob/master/appveyor.yml
10) Appveyor validator (log in needed)
https://ci.appveyor.com/tools/validate-yaml
11) Travis documentation and example
https://docs.travis-ci.com/user/multi-os/
https://docs.travis-ci.com/user/installing-dependencies/
https://www.codementor.io/amratab/travis-ci-integration-for-github-owctkf8js
https://eng.localytics.com/best-practices-and-common-mistakes-with-travis-ci/
https://github.com/glfw/glfw/blob/master/.travis.yml
https://github.com/qterm/qterm/blob/master/.travis.yml
12) Travis validation
https://support.travis-ci.com/hc/en-us/articles/115002904174-Validating-travis-yml-files
13) Hex to string converter
http://string-functions.com/hex-string.aspx
14) Boolean Expressions Simplificator
https://www.dcode.fr/boolean-expressions-calculator
15) Diff online checker - online diff tool to compare text differences between two text files
https://www.diffchecker.com/diff
16) create own icons, fonts, svg
https://icomoon.io/app/#/select
17) Create icon theme
https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html#install_icons
https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html#example
https://api.kde.org/ecm/module/ECMInstallIcons.html
AntiMicroX-antimicrox-2888bf6/cmake_uninstall.cmake.in 0000664 0000000 0000000 00000002013 13777035150 0023037 0 ustar 00root root 0000000 0000000 if(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
message(FATAL_ERROR "Cannot find install manifest: @CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
endif(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
file(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
string(REGEX REPLACE "\n" ";" files "${files}")
foreach(file ${files})
message(STATUS "Uninstalling $ENV{DESTDIR}${file}")
if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
exec_program(
"@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
OUTPUT_VARIABLE rm_out
RETURN_VALUE rm_retval
)
if(NOT "${rm_retval}" STREQUAL 0)
message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}")
endif(NOT "${rm_retval}" STREQUAL 0)
else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
message(STATUS "File $ENV{DESTDIR}${file} does not exist.")
endif(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
endforeach(file)
AntiMicroX-antimicrox-2888bf6/other/ 0000775 0000000 0000000 00000000000 13777035150 0017404 5 ustar 00root root 0000000 0000000 AntiMicroX-antimicrox-2888bf6/other/40-uinput.rules 0000664 0000000 0000000 00000000101 13777035150 0022215 0 ustar 00root root 0000000 0000000 SUBSYSTEM=="misc", KERNEL=="uinput", MODE="0660", GROUP="uinput"
AntiMicroX-antimicrox-2888bf6/other/CMakeLists.txt 0000664 0000000 0000000 00000000503 13777035150 0022142 0 ustar 00root root 0000000 0000000 add_subdirectory(appdata)
add_custom_target(manpage)
add_custom_command(TARGET manpage PRE_BUILD
COMMAND gzip -c -9 -n "${PROJECT_SOURCE_DIR}/other/antimicrox.1" > "antimicrox.1.gz" VERBATIM
)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/antimicrox.1.gz" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/man/man1")
AntiMicroX-antimicrox-2888bf6/other/antimicrox.1 0000664 0000000 0000000 00000004224 13777035150 0021645 0 ustar 00root root 0000000 0000000 .\" Manpage for antimicrox.
.\" Contact juliagoda.pl@protonmail.com to correct errors or typos.
.TH ANTIMICROX "1" "7 January 2020" "antimicrox 2.25" "User Commands"
.SH NAME
AntiMicroX \- map keyboard keys and mouse controls to a gamepad
.SH SYNOPSIS
.B antimicrox
[\fIOPTION\fR] [\fIPROFILE\fR]
.SH DESCRIPTION
.PP
AntiMicroX is a graphical program used to map gamepad buttons to keyboard, mouse, scripts and macros. However, you can use this program to control any desktop application with a gamepad.
.TP
\fB\-\-tray\fR
launch program in system tray only
.TP
\fB\-\-no\-tray\fR
launch program with the tray menu disabled
.TP
\fB\-h\fR, \fB\-\-help\fR
display this help and exit
.TP
\fB\-v\fR, \fB\-\-version\fR
output version information and exit
.TP
\fB\-\-profile\fR \fI\fR
use specified profile as default for selected controllers. Defaults to all controllers.
.TP
\fB\-\-profile-controller\fR \fI\fR
apply configuration file to a specific controller. can be an controller index, name, or GUID.
.TP
\fB\-\-hidden\fR
launch program without the main window
.TP
\fB\-\-unload\fR \fI[]\fR
unload currently enabled profile(s). Value can be a controller index, name, or GUID.
.TP
\fB\-\-startSet\fR \fI\fR \fI[]\fR
start joysticks on a specific set. Value can be a controller index, name, or GUID.
.TP
\fB\-\-next\fR
Advance profile loading set options.
.TP
\fB\-d\fR, \fB\-\-daemon\fR
launch program as a daemon.
.TP
\fB\-\-log\-level\fR \fI{debug,info,warn}\fR
Enable logging. Default: warn
.TP
\fB\-l\fR, \fB\-\-list\fR
Print information about joysticks detected by SDL.
.TP
\fB\-\-map\fR \fI\fR
Open game controller mapping window of selected controller. Value can be a controller index or GUID.
.TP
\fB\-\-eventgen\fR \fI{xtest,uinput}\fR
Choose between using XTest support and uinput support for event generation. Default: xtest.
.SH BUGS
See https://github.com/AntiMicroX/antimicrox/issues
.SH AUTHOR
Jagoda Górska (juliagoda.pl@protonmail.com)
Jeff Backus (jeff@jsbackus.com)
Travis Nickles (nickles.travis@gmail.com)
.SH "REPORTING BUGS"
Report dir bugs to antimicrox issues page: https://github.com/AntiMicroX/antimicrox/issues
AntiMicroX-antimicrox-2888bf6/other/appdata/ 0000775 0000000 0000000 00000000000 13777035150 0021016 5 ustar 00root root 0000000 0000000 AntiMicroX-antimicrox-2888bf6/other/appdata/CMakeLists.txt 0000664 0000000 0000000 00000001577 13777035150 0023570 0 ustar 00root root 0000000 0000000 # Make appdata optional when installing an application.
if(APPDATA)
add_custom_target(appdata)
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/PO_files/")
add_custom_command(TARGET appdata PRE_BUILD
# Add an entry per language
COMMAND msgfmt "${PROJECT_SOURCE_DIR}/other/appdata/PO_files/en.po" -o "${CMAKE_CURRENT_BINARY_DIR}/PO_files/en.mo"
COMMAND itstool -i "${PROJECT_SOURCE_DIR}/other/appdata/appdata.its" -j "${PROJECT_SOURCE_DIR}/other/appdata/io.github.antimicrox.antimicrox.appdata.xml.in" -o "io.github.antimicrox.antimicrox.appdata.xml" "${CMAKE_CURRENT_BINARY_DIR}/PO_files/*.mo"
)
# Only install an appdata file ifthe user requested to have one built.
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/io.github.antimicrox.antimicrox.appdata.xml" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/metainfo")
endif(APPDATA)
AntiMicroX-antimicrox-2888bf6/other/appdata/PO_files/ 0000775 0000000 0000000 00000000000 13777035150 0022516 5 ustar 00root root 0000000 0000000 AntiMicroX-antimicrox-2888bf6/other/appdata/PO_files/en.po 0000664 0000000 0000000 00000006403 13777035150 0023463 0 ustar 00root root 0000000 0000000 msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2020-09-27 17:28+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. (itstool) path: component/name
#: io.github.antimicrox.antimicrox.appdata.xml.in:6
msgid "AntiMicroX"
msgstr ""
#. (itstool) path: component/summary
#: io.github.antimicrox.antimicrox.appdata.xml.in:7
msgid "Graphical program used to map gamepad buttons to keyboard, mouse, scripts and macros."
msgstr ""
#. (itstool) path: description/p
#: io.github.antimicrox.antimicrox.appdata.xml.in:9
msgid "AntiMicroX is a graphical program used to map gamepad buttons/joysticks to keyboard, mouse, scripts and macros. It can be also used for generating SLD2 configuration (useful for mapping atypical gamepads to generic ones like xbox360)."
msgstr ""
#. (itstool) path: ul/li
#: io.github.antimicrox.antimicrox.appdata.xml.in:18
msgid "keyboard buttons"
msgstr ""
#. (itstool) path: ul/li
#: io.github.antimicrox.antimicrox.appdata.xml.in:19
msgid "mouse buttons and moves"
msgstr ""
#. (itstool) path: ul/li
#: io.github.antimicrox.antimicrox.appdata.xml.in:20
msgid "scripts and launching apps"
msgstr ""
#. (itstool) path: ul/li
#: io.github.antimicrox.antimicrox.appdata.xml.in:21
msgid "macros consisting of elements mentioned above"
msgstr ""
#. (itstool) path: description/p
#: io.github.antimicrox.antimicrox.appdata.xml.in:15
msgid "It allows mapping of gamepads/joystick buttons to: <_:ul-1/>"
msgstr ""
#. (itstool) path: description/p
#: io.github.antimicrox.antimicrox.appdata.xml.in:24
msgid "AntiMicroX was inspired by QJoyPad."
msgstr ""
#. (itstool) path: screenshot/caption
#: io.github.antimicrox.antimicrox.appdata.xml.in:48
msgid "Main Window (Light Theme)"
msgstr ""
#. (itstool) path: screenshot/caption
#: io.github.antimicrox.antimicrox.appdata.xml.in:52
msgid "Main Window (Dark Theme)"
msgstr ""
#. (itstool) path: screenshot/caption
#: io.github.antimicrox.antimicrox.appdata.xml.in:56
msgid "Controller Calibration (Dark Theme)"
msgstr ""
#. (itstool) path: screenshot/caption
#: io.github.antimicrox.antimicrox.appdata.xml.in:60
msgid "Controller Mapping (Dark Theme)"
msgstr ""
#. (itstool) path: screenshot/caption
#: io.github.antimicrox.antimicrox.appdata.xml.in:64
msgid "Advanced Settings (Dark Theme)"
msgstr ""
#. (itstool) path: screenshot/caption
#: io.github.antimicrox.antimicrox.appdata.xml.in:68
msgid "About Window (Dark Theme)"
msgstr ""
#. (itstool) path: keywords/keyword
#: io.github.antimicrox.antimicrox.appdata.xml.in:73
msgid "game"
msgstr ""
#. (itstool) path: keywords/keyword
#: io.github.antimicrox.antimicrox.appdata.xml.in:74
msgid "controller"
msgstr ""
#. (itstool) path: keywords/keyword
#: io.github.antimicrox.antimicrox.appdata.xml.in:75
msgid "joystick"
msgstr ""
#. (itstool) path: keywords/keyword
#: io.github.antimicrox.antimicrox.appdata.xml.in:76
msgid "keyboard"
msgstr ""
#. (itstool) path: keywords/keyword
#: io.github.antimicrox.antimicrox.appdata.xml.in:77
msgid "mouse"
msgstr ""
#. (itstool) path: categories/category
#: io.github.antimicrox.antimicrox.appdata.xml.in:80
msgid "Utility"
msgstr ""
AntiMicroX-antimicrox-2888bf6/other/appdata/appdata.its 0000664 0000000 0000000 00000000765 13777035150 0023161 0 ustar 00root root 0000000 0000000
AntiMicroX-antimicrox-2888bf6/other/appdata/io.github.antimicrox.antimicrox.appdata.xml.in 0000664 0000000 0000000 00000010111 13777035150 0031770 0 ustar 00root root 0000000 0000000
io.github.antimicrox.antimicrox
CC0-1.0
GPL-3.0+
AntiMicroX
Graphical program used to map gamepad buttons to keyboard, mouse, scripts and macros.
AntiMicroX is a graphical program used to map gamepad buttons/joysticks
to keyboard, mouse, scripts and macros.
It can be also used for generating SLD2 configuration (useful for mapping
atypical gamepads to generic ones like xbox360).
It allows mapping of gamepads/joystick buttons to:
- keyboard buttons
- mouse buttons and moves
- scripts and launching apps
- macros consisting of elements mentioned above
AntiMicroX was inspired by QJoyPad.
https://github.com/AntiMicroX/antimicrox/
io.github.antimicrox.antimicrox.desktop
antimicrox
https://raw.githubusercontent.com/AntiMicroX/antimicrox/master/other/appdata/screenshots/app_light.png
Main Window (Light Theme)
https://raw.githubusercontent.com/AntiMicroX/antimicrox/master/other/appdata/screenshots/app_dark.png
Main Window (Dark Theme)
https://raw.githubusercontent.com/AntiMicroX/antimicrox/master/other/appdata/screenshots/calibration.png
Controller Calibration (Dark Theme)
https://raw.githubusercontent.com/AntiMicroX/antimicrox/master/other/appdata/screenshots/controllermapping.png
Controller Mapping (Dark Theme)
https://raw.githubusercontent.com/AntiMicroX/antimicrox/master/other/appdata/screenshots/advanced.png
Advanced Settings (Dark Theme)
https://raw.githubusercontent.com/AntiMicroX/antimicrox/master/other/appdata/screenshots/about.png
About Window (Dark Theme)
https://github.com/AntiMicroX/antimicrox/
game
controller
joystick
keyboard
mouse
Utility
application/x-amgp
none
none
none
none
none
none
none
none
none
none
AntiMicroX-antimicrox-2888bf6/other/appdata/screenshots/ 0000775 0000000 0000000 00000000000 13777035150 0023356 5 ustar 00root root 0000000 0000000 AntiMicroX-antimicrox-2888bf6/other/appdata/screenshots/about.png 0000664 0000000 0000000 00000105717 13777035150 0025211 0 ustar 00root root 0000000 0000000 PNG
IHDR - -Q sBIT|d tEXtSoftware gnome-screenshot> IDATxw`jW .dM14ı8}NwĹ\r_K98K۸n6tcD$y,B~`gosq2|/x<
HuDDDDDDDN'u#[ZZN
&''_KHHz]@.H$r1TWWDMM͏puHfgg=990++kb860xEDDDDDD00u+++444l-//Qm+ڕwZZZZZH$'xu]l&
ɃqiiiYQlWI=-""""""r&D"$%%
ÃmWMʼn7'''B3s4
s-Up9i FS>mPuNi"""""""g0|e
lT!0DqU\DDDDDD9a$ES9ݲ=6CpF![DDDDDDxצ<Xf5ﻞA3Rqx?fnJma2'tǕMfNAc51mBH3`M]] \͈,}l>?O_R⃝_pz~I՟k9銛ɺ4xw/O:=g"""}$|/nmsg5D?5ܬNcký6i]tn| dK p~Iߧ?W>t1KwEDDcq7V%sg)?]|eK_䟿"3{s.+?Oe/??)iXc?WdW #Z~jRHyoOb?wș.YIw՟u/.1|.[![DD#3,ZCY&a<.L LV<ӫɝec {~-%GyvKů\^Ńl\|/8+{<#]܌ 55
Y%F?:Ne$ν{h
4z^kWb.l>a2jF5gőA}f~oj-z(NS%ޮriZ
oW_aGE|lz'
0wf85js'ms""rVx!Iw]i5h7h".