Code Monkey home page Code Monkey logo

antimicrox's Introduction

Icon AntiMicroX

  1. Description
  2. License
  3. Installation
  4. Wiki
  5. Command Line
  6. Testing Under Linux
  7. AntiMicroX Profiles
  8. Support
  9. Contributing

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🐧 and Windows πŸͺŸ.
It can be also used for generating SDL2 configuration (useful for mapping atypical gamepads to generic ones like xbox360).

We support X.org and Wayland.

Features:

  • Mapping of gamepads/joystick buttons to:
    • keyboard buttons
    • mouse buttons and moves
    • scripts and executables
    • macros consisting of elements mentioned above
  • Assigning multiple switchable sets of mappings to gamepad.
  • Auto profiles - assign profile to active application window (not in Wayland note).

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:

Screenshots:
Disclaimer: Theme may depend on your system configuration.

Main Window Mapping
Calibration Advanced settings

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

Windows

Just download antimicrox-X.X.X-AMD64.exe from Release site and install it.

Flatpak

The flatpak version is distributed on Flathub, and runs on most major Linux distributions. See instructions here: Flathub application page

If you have Flathub set up already:

flatpak install flathub io.github.antimicrox.antimicrox

❕ Flatpak package may not work correctly with wayland (Fix available here)

AppImage

Download from the release site.

It is recommended to use AppImageLauncher with this package.

Debian/Ubuntu-based distributions

Download from the release site and install .deb package.

Fedora

dnf install antimicrox

openSUSE

A package is available.

zypper 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.

Append (one of listed mirrors) to /etc/pacman.conf:

# 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:

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

pacman -S antimicrox

Building Yourself

List of required dependencies and build instructions can be found here.

Packages status

Status of package antimicrox:
Packaging status

Command Line

Run antimicrox --help or read man antimicrox for command-line parameters.

Commandline for flatpak In case of flatpak package AntiMicroX can be launched with command:
flatpak run io.github.antimicrox.antimicrox instead of just antimicrox
In some cases it may be good to add alias
alias antimicrox='flatpak run io.github.antimicrox.antimicrox'
fo file ~/.bashrc

Wiki

Look here

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.

AntiMicroX Profiles

If you would like to send the profile you are using for your application or find something for yourself, here 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 page.

Contributing

Any contributions into codebase are welcome. You can find contribution guide here.

Translation

Translation process is handled via Weblate. If you want to help just click this link.

Translation status

Translation status

More information about translating can be found here.

antimicrox's People

Contributors

adamkane41 avatar ahohnmyc avatar ariamoradi avatar avinal avatar aybe avatar brigada avatar comradekingu avatar ddinghoya avatar earnestly avatar emperorarthur avatar heidiwenger avatar jsbackus avatar juliagoda avatar ld892012 avatar ljrk0 avatar mirabilos avatar mmmaisel avatar nitz avatar phob avatar pktiuk avatar ryochan7 avatar sir-maniac avatar sopor avatar stefan-tu avatar tokyogeometry avatar twork22 avatar vitorhcl avatar weblate avatar woltytherespectful avatar zzpxyx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

antimicrox's Issues

[Question] Is "antimicro" profiles is compatible with antimicrox ?

Dear I'm currently using "antimicro" on my Fedora since many years ago (about 3 or 4 years ago). Soon your program will be available to me.

Can I import (by copy/past) antimicro's profiles files from it's cache folder to that of antimicrox ? Are such profiles compatible ?

Segmentation Fault when change profile from command line

Describe the bug
When change profile from command line, always return a seg fault.

To Reproduce
[karl@CyberPortatil ~]$ antimicrox --profile ~/Software/configs/antimicro/DOS.gamecontroller.amgp
Segmentation fault (core dumped)
[karl@CyberPortatil ~]$ antimicrox --profile ~/Software/configs/antimicro/WIN.gamecontroller.amgp
Segmentation fault (core dumped)

In dmesg I see a lot of lines like (appear always when change antimicrox profile from my .sh files)
[11887.666820] antimicrox[203273]: segfault at c ip 00007f1867ea08d2 sp 00007fffc38dafc0 error 4 cpu 7 in libQt5Widgets.so.5.15.1[7f1867e64000+3b0000]
[11910.791616] antimicrox[203350]: segfault at c ip 00007f9d0724b8d2 sp 00007ffddbaa71e0 error 4 cpu 6 in libQt5Widgets.so.5.15.1[7f9d0720f000+3b0000]

Expected behavior
No errors in console or dmesg.

Configuration
I'm using antimicrox 3.1.2 compiled from AUR in Archlinux.

Additional context
This is not a critical issue, is only a low problem because antimicrox do well the change from a profile to another one from command line, but always returns the error commented.

AppImage Submission

We have now providing an AppImage release of AmtiMicroX, but it woud be good to make it more available.

It is a good idea to add it to AppImageHub.

AntiMicroX wont open

Describe the bug
AntiMicroX icon doesnt appear in my system tray after closing. This caused it to be inaccessible. So I killed the process in system monitor. After that, I want to launch the application, but it just loads for a while and never opens. The process in system monitor kills itself a few seconds afterwards

To Reproduce
Steps to reproduce the behavior:

  1. Check "close to tray" in settings
  2. Close the app

Expected behavior
The app should close to tray with the icon appearing in the system tray

Screenshots
2020-10-02_03-14

Version
3.1.1

Additional context

Icons overhaul

During investigating of issues #56 and #58 I have found out, there is a pretty big mess in terms of small icons used by AntiMicroX.

Currently, custom icons are both compiled into binary files (but they are broken because of wrong paths in code) and they are added as a part of system theme called hicolor.
To ensure usage of these icons theme used by app is overridden to be hicolor, this solution is very not elegant, duplicates loading of the same icons and can be problematic to use with some themes.

    updateJoy->setIcon(QIcon::fromTheme(QString::fromUtf8("view_refresh"), QIcon(":/icons/hicolor/16x16/actions/view_refresh.png")));

I think it would be better to use icons supplied by system-wide theme, because some of our icon look a bit out of place in some cases, and we should use our old icons as a fallback option in case of problems with themed icons.

I think we could also think about updating some of these icons, because some of them look a bit out of date:
document_saveedit_clear_listdocument_revert_small...

TL;TR
Things to do:

  • use default system-wide icons (#62 #71)
  • fix fallback links to embedded icons (compiled into binary files of antimicrox) (#75)
  • remove already embedded icons from list of installed elements (#72)
  • add light/dark variants of system tray icon #66
  • (optional) update default icons

Icons in tray menu only showing up as "X"

Describe the bug
Tray menu is supposed to (?) display icons on each option but they don't appear. This is probably more of an aesthetic problem, but I just wanted to report it. I think it'd be better to just remove the icons.

Screenshots
IMG_4543

Version
3.1.1 deb

Check $PATH for executables

Currently, assigning executable to a button requires providing full path to used executable, it would be convenient to check also places like /bin/ to check if used executable exists instead of asking user about providing full path.

Automate generating changelogs

Automated generation of changelogs would save a lot of time it would be good to integrate it with repository.
All would be based on semantic commit messages.

Things to do:

  • Write scripts generating changelogs (markdown would be the best format), old changelogs should be preserved.
  • integrate script generation with github actions (on merge to master + on publishing new release)
  • (if possible) create scripts generating changelogs in Fedora link and Debian-based link format
  • Write some simple guidelines for recommended naming of merge commits

Right click - Turbo and Clear not working properly

When I right click on some control (e.g. Sticks, Buttons), a popup menu appears.

Expected: Can click on Toggle, Turbo, Clear and works accordingly.6

Actual:

  • Toggle works
  • When clicking on Turbo, it toggles Toggle
  • Clear doesn't work

Impact: low, since these settings are working properly from the full key settings screen.

Version: 3.0.1/master

Screen:
image

Restore Windows support

This project requires installer for Windows.

Original antimicro was compiled on Windows, but this fork doesn't have this feature yet.
Most of required components are already included in antimicro's repository (I think it would be a good point to start).

It would be nice to also add portable version of AntiMicroX, it was done there

Things to do:

  • compile AntimicroX on Windows #220
  • Restore most of functionalities for Windows #225
    • for now, support for vmulti input method will be disabled
  • Build Windows installer #237
  • Add CI for Windows to avoid breaking compatibility. #223
    • (optional) Add building and uploading exe to github actions on release
  • Ensure that config migration works properly in Windows #266
  • Add instruction for building to docs #265

This issue is migrated of original issue juliagoda/antimicroX#131 from legacy AntiMicroX repo.

⚠️ We are looking for developers familiarized with Windows for this one, because our team consists mostly of Linux users/developers.

Feature Request: Functions

This feature request came from the old repo juliagoda/antimicroX#60

A neat feature would be the ability to be able to create functions. It can be something that is created in each profile and a function is just like when a keystroke is pressed except you are able to to start a function and end a command.

So if you press the A button it could be configured to run "MyFunction", "MyFunction" will hold the ~ key forever. Then you can press the B button to end "MyFunction". Or you can set the X button to run "MyOtherFunction" and "MyOtherFunction" can press Q and W once and then stop running the function. The possibilities are endless and with the advanced assignments we could run multiple commands with double tappings, press and holding, etc. This one simple feature will put Antimicro competing with Pinnacle Gamer Profiler or Padstarr.

The function can be managed in a menu somewhere in the profile and in there you can create, edit or delete functions. To add this to the profile file itself can be debate-able but maybe create a new tag called and then inside would be tags called and then have the data for that function embeded inside of that.

Promoting AntiMicroX

Summary

This issue is focused on discussion about making AntiMicroX a bit more popular and accessible for new users.
Big part of this issue is just regaining users, staying with old legacy AntiMicro.

I think AntiMicroX is a very good project which doesn't get deserved attention.
A lot of work has been done to original AntiMirco, and it could currently without any problems replace original AntiMicro which is still quite popular.
This would help us by providing more feedback and it could also attract potential contributors.
This entire issue is a bit inspired by similar one from xournal++ GitHub (this project has similar history as a fork of abandoned app)

Some stats

Label AntiMicro AntiMicroX
downloads from GitHub link approx 370k link
Downloads from SourceForge link approx 420k link
GitHub Stars star history star history

Flathub stats can be found at this site

Things to do

In terms of accessibility there are still some things to do:

  1. Restore Windows support - most of the users of AntiMicro are Windows users. #4
  2. Make it easier to find for potential users - it would be good if AntiMicroX would be easier to find by someone who is looking for this type of software. We have currently added AntiMicroX to: AlternativeTo and Sourceforge.
  3. Make it easily accessible for users - in case of Linux builds it would be great to make this app accessible via official repositories and other channels of distribution.
  4. It would be good to have some simple site of project, it could be easily done via Github pages Our site - work in progress

What do you think about these tasks? Do you have any comments in terms of accessibility and visibility for new and old users?
This is also a very good place to share your first impresion.

To sum up:
If you want to help you can:

  • Like AntiMicroX's on AlternativeTo and SourceForge
  • Consider helping us with one of tasks mentioned here (currently Windows port is our top priority)
  • Contributions in any form are welcome
  • Any off-topic comments will be deleted. There is another issue for general, project-related discussions

antimicro config migration

Goal:

  • build/install both antimicro and antimicrox
  • check if antimicro configs are compatible with antimicrox
  • add automatic config migration to antimicrox code or provide instructions in README

Outdated information in the "Credits" tab in the "About" window

Describe the bug

  1. Click on "Help"
  2. Choose "About"
  3. Click on "Credits" tab

Expected behavior
You should find up-to-date information about the program being developed

Configuration
Version of antimicrox: 3.1.2 (from last commit)
System version: Arch Linux

I can not install from Fedora repositories !

Hi. I'm Fedora user & 1st know about your application when I saw it as a PR for FlatHub.

I read this repository & it give instruction to install it on Fedora as following:
# dnf install antimicrox

I run the above command but I got the following output:

sudo dnf install antimicrox
Last metadata expiration check: 1:21:19 ago on Tue 15 Sep 2020 11:07:18 AM GMT.
No match for argument: antimicrox
  * Maybe you meant: antimicroX
Error: Unable to find a match: antimicrox

But when I searched about "antimicroX" I found a package for a dead application - see bellow:

$ dnf info antimicroX
Last metadata expiration check: 0:19:43 ago on Tue 15 Sep 2020 12:10:33 PM GMT.
Available Packages
Name         : antimicroX
Version      : 3.0
Release      : 2.20200617gitc6d79.fc32
Architecture : x86_64
Size         : 175 k
Source       : antimicroX-3.0-2.20200617gitc6d79.fc32.src.rpm
Repository   : updates
Summary      : Graphical program used to map keyboard buttons and mouse controls
             : to a gamepad
URL          : https://github.com/juliagoda/antimicroX
License      : GPLv3+
Description  : antimicroX is a graphical program used to map keyboard keys and
             : mouse controls to a gamepad. This program is useful for playing
             : PC games using a gamepad that do not have any form of built-in
             : gamepad support. antimicroX is a fork of AntiMicro which was
             : inspired by QJoyPad but has additional features.

I searched used the following site https://koji.fedoraproject.org/koji/packages
I saw antimicroX & antimicrox & last one packaged by you !! - see the following:
https://koji.fedoraproject.org/koji/packageinfo?packageID=31474
https://koji.fedoraproject.org/koji/packageinfo?packageID=32302

What is wrong ??

I'm on Fedora 32 X64 bit Cinnamon Edition.

Option to disable battery level notification

AntimicroX shows a warning when the battery level of my DS4 goes bellow 20%. While this is a neat feature, I’d like it to be optional because I already use a script for Polybar that informs me of the current level while it's connected.

autostart antimicro from steam using SteamAppId?

Hi,
(I personally rarely play with joypad, so sorry if this is a stupid idea)

If a contributed antimicroX-profile could be found by the game's SteamAppId, it would be pretty easy to implement antimicroX support into my steamtinkerlaunch (stl) wrapper.
So if a game is started from steam stl would search for a antimicroX-profile (first offline, then optionally online in the repo) and automatically loaded it if found.
If no usable profile was found antimicroX could open in gui mode so one can be created (here it would be nice if antimicroX would already default to the profilename which was passed via the --profile command line).

When the game exits, antimicroX would be stopped automatically as well.

Assign buttons (or actions) to other gamepad keys

As the title say, it would really be great to have the ability to bind the controller buttons for actions instead of keyboard and mouse.

Eg: You double tap "RB" button and the program send the "L3" button input instead.
Something similar to what you can do with Steam Controller Configuration, but antimicro could work with any game out there (for example Windows 10 Store games, I've played Darksiders 3 with regular antimicro for windows with no issues).

I've read that it was one of the explored ideas for a future update but is anyone still working on that?

Thank you very much!!!

Please release a Win Installer/.exe

Could you please release a Installer or .exe of this beautiful Project?
For now i used Antimicro and just found this new Project, but sadly i cant compile generally.
Antimicro has an .msi Installer & it would be nice, if you could add this Option, too.
Thanks for your Time and Work!
Greetings

Saving logs into file doesn't work properly.

Describe the bug
Saving logs into file doesn't work properly.

To Reproduce
Set logging to file
drawing

Expected behavior
Logs saved in file should be at least similar to logs generated in terminal using flag --log-level.

Comparison of outputs
Logging level: Debug
In file:

[14:38:05.900] - Logging started
[14:38:06.216] - Using XTest as the event generator.
[14:40:56.694] - Quitting Program

in terminal

$ antimicrox --log-level debug 
Debug: Socket's state:  QLocalSocket::UnconnectedState 
 ((null):0, (null))
Debug: Server name:  "" 
 ((null):0, (null))
Debug: Socket descriptor:  -1 
 ((null):0, (null))
Debug: The connection hasn't been established: 
error text ->  QLocalSocket::ServerNotFoundError 
error text 2 -> "QLocalSocket::connectToServer: Invalid name" 
 ((null):0, (null))
Debug: Socket is not valid 
 ((null):0, (null))
Debug: Socket's state:  QLocalSocket::UnconnectedState 
 ((null):0, (null))
Debug: Server name:  "" 
 ((null):0, (null))
Debug: Socket descriptor:  -1 
 ((null):0, (null))
Debug: "/home/pawel/.local/share/antimicrox/icons" ((null):0, (null))
.....

Wayland support for keyboard emulation

Is your feature request related to a problem? Please describe.
Should support KB emulation in wayland.

Describe the solution you'd like
Dunno yet.

Additional context
GUI works fine, tested in a Wayland Fedora VM.

Got this in a PM on reddit:

It probably runs because of Qt but I don't think mouse and keyboard control would work. I would ask sway developers https://github.com/swaywm/wlroots about what protocols you need to use.
They are very helpful they have even opened MRs for some projects, to port them to wayland. You could just implement it for wlroots and let the community do the rest for you after. For example some wlroots focused tools will work in KDE Plasma soon because of the same protocols being implemented there.
"We hang out in #sway-devel, an IRC channel on irc.freenode.net. Come in and ask questions."

EDIT:
It can be done via switching from xtest to uinput, but uinput requires either root or aditional udev rule
TODO list:

  • switch from xtest to uinput when wayland session is detected #186
  • integrate adding new udev rules into installation process
  • update readme

[Feature request]Simplifying support for Bluetooth

Much of the good quality pads now work wirelessly. Do you plan to add such functionality in the program? The era of wired pads is slowly coming to an end and relatively soon only the cheapest crap will be available in a wired version. If possible, I would like to ask for an answer and not just give a flag.

Doesn't save my configurations/Wont auto load

Like the title says, It is not saving my configurations.

I am clicking the save as, naming the config, then saving. When I open my files, its not there.

Configuration
I am using elementary os, and I have downloaded the App Center version 3.1.2

Assigning Text Entry to button doesn't assign proper string.

I open the advanced settings for a button, select Text Entry, enter "Test" and press Insert.
The button says [Text] Test.
After closing and reopening the advanced window, it says only [Text], the entered text is gone. It also never executes when pressing the controller button.

Strange bugs on Fedora

Hi. I installed this program from official Fedora repositories after remove antimicro from my system.

I noticed strange bugs that I do not know how to explained but I feel that they related to one other:

  1. when I installed antimicrox it's launcher icon do not appear in application menu as BOLD. It should appear in bold before 1st launching .....
  2. during my launch / exit it crashed at an occasion.
  3. here is strange thing: I switched ON my laptop & during DE loading I listened to sound of system notification ! When DE launched & appeared I saw system error message !!! How this ? Does antimicrox working as a service ??

I'm on Fedora 32 X64 bit Cinnamon edition with AntiMicroX 3.1.0 and just now AntiMicroX crashed after I launched it to see it's version then exit it ! It crashed after I exit it .....

General discussion about AntiMicroX and further development

About

Issue for general discussion about AntiMicroX ant its further development.
Discussion about current state of app and its further development in general.

Current plans

This fork is a rather new, that's why we are currently focused on cleaning up the repository and preparing it for further development.
We are also working on making AntiMicroX easily available and updateable for users.
Then we are going to move on to fixing existing bugs
Later we will think about possible improvements and porting to QT6 (not released yet)

**Offtopic comments will be deleted/hidden to avoid spam.

AntiMicroX system tray icon not appearing in flatpak package

Describe the bug
Upon opening, the app doesn't display the system tray icon.

Screenshots
03 ⁄ 10 ⁄ 2020 20-58

Version
Running version 3.1.2
Distro is 20.04 LTS Pop! OS 64-bit with Gnome 3.36.3 as my DE

Additional context
On debugging I noticed something, and I'll also attach the full log:
Line 42 Warning: failed to register service "org.kde.StatusNotifierItem-2-1" ((null):0, (null))
debug antimicrox.zip

The uninstallation leaves several folders and files behind (cmake)

Describe the bug
As the title says, the uninstallation leaves several paths in the system. Below is a list:

/usr/include/antimicrox
/usr/share/antimicrox
/usr/share/antimicrox/images
/usr/share/antimicrox/translations
/usr/share/doc/antimicrox
/var/lib/systemd/coredump/core.antimicrox.1000.b432ffc9974547f19a3daace3c1deb63.11690.1603227781000000.zst

To Reproduce
simply uninstall the program after installing it

Expected behavior
All files and directories belonging to the program only, should be removed from the system

Configuration
Version of antimicrox: 3.1.2 (from last commit)
System version: Arch Linux

Additional context
I don't know if I'm thinking right, but the error may have something to do with the error reported here (this is the last line)

Consistent naming across app

Currently, this project uses 3 variations of its name: antimicrox, antimicroX and AntiMicroX
It may cause some problems, that's why we will use from now only 2 variants:

  • antimicrox - used across filenames, names of directories and packages (#23 (review))
  • AntiMicroX - more visually appealing version, it will be name visible for our users (in docs, application description etc)

ARM build failure

Describe the bug
Trying to build for raspberry pi 3B+ on raspbian os it fails.

To Reproduce
1- be on raspberry pi on raspbian os
2- install build dependencies according to BULDING.md
3- proceed to build
4- fail on shared library linking
(I ran make with -j 4 flag, don't think it affects anything but mentioning it anyway)

Expected behavior
build should work

Screenshots

Configuration
Version of antimicrox: 3.1.2
Used package: N/A
System version:

Additional context
build log:

[ 98%] Building CXX object CMakeFiles/antilib.dir/src/eventhandlers/uinputeventhandler.cpp.o
[ 98%] Building CXX object CMakeFiles/antilib.dir/qrc_resources.cpp.o
[100%] Linking CXX shared library libantilib.so
/usr/bin/ld: CMakeFiles/antilib.dir/src/gamecontroller/gamecontrollerdpad.cpp.o:(.data.rel.ro+0x0): multiple definition of `typeinfo for JoyDPadXml<VDPad>'; CMakeFiles/antilib.dir/src/gamecontroller/xml/moc_gamecontrollerdpadxml.cpp.o:(.data.rel.ro+0x5c): first defined here
/usr/bin/ld: CMakeFiles/antilib.dir/src/gamecontroller/gamecontrollerdpad.cpp.o:(.data.rel.ro+0xc): multiple definition of `typeinfo for JoyDPadXml<JoyDPad>'; CMakeFiles/antilib.dir/src/gamecontroller/xml/moc_gamecontrollerdpadxml.cpp.o:(.data.rel.ro+0x68): first defined here
/usr/bin/ld: CMakeFiles/antilib.dir/src/gamecontroller/gamecontrollerdpad.cpp.o:(.rodata+0x78): multiple definition of `typeinfo name for JoyDPadXml<VDPad>'; CMakeFiles/antilib.dir/src/gamecontroller/xml/moc_gamecontrollerdpadxml.cpp.o:(.rodata+0xe8): first defined here
/usr/bin/ld: CMakeFiles/antilib.dir/src/gamecontroller/gamecontrollerdpad.cpp.o:(.rodata+0x90): multiple definition of `typeinfo name for JoyDPadXml<JoyDPad>'; CMakeFiles/antilib.dir/src/gamecontroller/xml/moc_gamecontrollerdpadxml.cpp.o:(.rodata+0x100): first defined here
/usr/bin/ld: CMakeFiles/antilib.dir/src/gamecontroller/gamecontrollerset.cpp.o:(.data.rel.ro+0x0): multiple definition of `typeinfo for JoyDPadXml<VDPad>'; CMakeFiles/antilib.dir/src/gamecontroller/xml/moc_gamecontrollerdpadxml.cpp.o:(.data.rel.ro+0x5c): first defined here
/usr/bin/ld: CMakeFiles/antilib.dir/src/gamecontroller/gamecontrollerset.cpp.o:(.data.rel.ro+0xc): multiple definition of `typeinfo for JoyDPadXml<JoyDPad>'; CMakeFiles/antilib.dir/src/gamecontroller/xml/moc_gamecontrollerdpadxml.cpp.o:(.data.rel.ro+0x68): first defined here
/usr/bin/ld: CMakeFiles/antilib.dir/src/gamecontroller/gamecontrollerset.cpp.o:(.rodata+0x130): multiple definition of `typeinfo name for JoyDPadXml<VDPad>'; CMakeFiles/antilib.dir/src/gamecontroller/xml/moc_gamecontrollerdpadxml.cpp.o:(.rodata+0xe8): first defined here
/usr/bin/ld: CMakeFiles/antilib.dir/src/gamecontroller/gamecontrollerset.cpp.o:(.rodata+0x148): multiple definition of `typeinfo name for JoyDPadXml<JoyDPad>'; CMakeFiles/antilib.dir/src/gamecontroller/xml/moc_gamecontrollerdpadxml.cpp.o:(.rodata+0x100): first defined here
/usr/bin/ld: CMakeFiles/antilib.dir/src/gamecontroller/xml/gamecontrollerdpadxml.cpp.o:(.data.rel.ro+0x0): multiple definition of `typeinfo for JoyDPadXml<VDPad>'; CMakeFiles/antilib.dir/src/gamecontroller/xml/moc_gamecontrollerdpadxml.cpp.o:(.data.rel.ro+0x5c): first defined here
/usr/bin/ld: CMakeFiles/antilib.dir/src/gamecontroller/xml/gamecontrollerdpadxml.cpp.o:(.data.rel.ro+0xc): multiple definition of `typeinfo for JoyDPadXml<JoyDPad>'; CMakeFiles/antilib.dir/src/gamecontroller/xml/moc_gamecontrollerdpadxml.cpp.o:(.data.rel.ro+0x68): first defined here
/usr/bin/ld: CMakeFiles/antilib.dir/src/gamecontroller/xml/gamecontrollerdpadxml.cpp.o:(.rodata+0x6c): multiple definition of `typeinfo name for JoyDPadXml<VDPad>'; CMakeFiles/antilib.dir/src/gamecontroller/xml/moc_gamecontrollerdpadxml.cpp.o:(.rodata+0xe8): first defined here
/usr/bin/ld: CMakeFiles/antilib.dir/src/gamecontroller/xml/gamecontrollerdpadxml.cpp.o:(.rodata+0x84): multiple definition of `typeinfo name for JoyDPadXml<JoyDPad>'; CMakeFiles/antilib.dir/src/gamecontroller/xml/moc_gamecontrollerdpadxml.cpp.o:(.rodata+0x100): first defined here
/usr/bin/ld: CMakeFiles/antilib.dir/src/xml/setjoystickxml.cpp.o:(.data.rel.ro+0x0): multiple definition of `typeinfo for JoyDPadXml<VDPad>'; CMakeFiles/antilib.dir/src/gamecontroller/xml/moc_gamecontrollerdpadxml.cpp.o:(.data.rel.ro+0x5c): first defined here
/usr/bin/ld: CMakeFiles/antilib.dir/src/xml/setjoystickxml.cpp.o:(.data.rel.ro+0xc): multiple definition of `typeinfo for JoyDPadXml<JoyDPad>'; CMakeFiles/antilib.dir/src/gamecontroller/xml/moc_gamecontrollerdpadxml.cpp.o:(.data.rel.ro+0x68): first defined here
/usr/bin/ld: CMakeFiles/antilib.dir/src/xml/setjoystickxml.cpp.o:(.rodata+0xa0): multiple definition of `typeinfo name for JoyDPadXml<VDPad>'; CMakeFiles/antilib.dir/src/gamecontroller/xml/moc_gamecontrollerdpadxml.cpp.o:(.rodata+0xe8): first defined here
/usr/bin/ld: CMakeFiles/antilib.dir/src/xml/setjoystickxml.cpp.o:(.rodata+0xb8): multiple definition of `typeinfo name for JoyDPadXml<JoyDPad>'; CMakeFiles/antilib.dir/src/gamecontroller/xml/moc_gamecontrollerdpadxml.cpp.o:(.rodata+0x100): first defined here
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/antilib.dir/build.make:4329: libantilib.so.1] Error 1
make[1]: *** [CMakeFiles/Makefile2:110: CMakeFiles/antilib.dir/all] Error 2
make: *** [Makefile:152: all] Error 2 

Consistent style of code

Currently, there is some mess in style of code (as a good examples can be usage of if (... and if(... )

TODO:
Create configs for code formatter which will help with ensuring quality and consistency of code style.
Format code (entire or at least some pieces)

Updating Translations

Some of currently supported languages need update (mainly status updates in about sections and updates of .desktop file )

Translations are stored in:

  • .ts files -entire interface, windows etc. This can be translated with Our Weblate project (you can also use QT Linguist, but you should be familiar with it and with GitHub). This is, where 99% of translations are done.
  • .desktop file - application name and context menu
  • filetype descriptions - it is used for informing users what is the purpose of files with amgp extension

Translation status:

Translation status

Wrong order for setting sets

When I click on Sets - settings, the Set Name Settings dialog pops up.

Expected: Sets show up in the proper order, starting at Set 1.

Actual: Sets show up shifted, in some reverse order.

Impact: can't properly rename sets.

Version: 3.0.1/master

Screen:
image

Add button icons for different controllers

It would be easier to map the buttons when using different controllers than the xbox controller.

Add different icons for the most popular controllers, and if possible detection of the controller to automatically show the respective icons. I.e., square, circle, x, triangle for DS3/4, etc

Run on (DE/WM) startup

Is your feature request related to a problem? Please describe.
I want to use antimicrox on my raspberry pi which is connected to the tv. it has a keyboard attached, but no mouse available around. I could use my PS3 controllers for this. It would be convenient that antimicrox would run on DE/WM startup pre-configured with a profile for my sixaxis in the tray.

Describe the solution you'd like
Add an applet executable. so I could run in my xinitrc.

Describe alternatives you've considered

  • A systemd service maybe? so i could enable and disable when I want.
  • there are some DE specific solutions too.

Additional context
blueman (blueman-manager) has an applet program(blueman-applet) that it runs when I open bluman-manager. I also could run blueman-applet directly to have access to bluetooth at all times.
networkmanager-applet is also an interface to interact with NetworkManager.

Docker Hub upload - or removing Docker

Currently the docker references are for the old repo. Let's fix this.

  • Create Docker hub org (free for public repos)
  • Upload Docker images
  • Update BUILDING.md
  • Make a release reminder checklist for ourselves to know what to do on releasing
    • update changelog
    • update flatpak
    • update Docker etc.

Add dark tray icon

Is your feature request related to a problem? Please describe.
image
Light tray icon is hard to see in default kde theme.

Describe the solution you'd like
Add dark tray icon.

Describe alternatives you've considered

Additional context

General discussion about AntiMicroX and further development.

Hey,

I think AntiMicroX is a very good project which doesn't get deserved attention.
A lot of work has been done to original AntiMirco, and it could currently without any problems replace original Antimicro which is still quite popular.

But there are some problems with this app which are contributing to low popularity and bad accessibility.

In my opinion, they are:

  1. It is difficult to find it - it would be good if AntiMicroX would be easier to find by someone who is looking for this type of software. It should be searchable at least on sites like AlternativeTo or SourceForge. Maybe we should also promote it a bit there (add something like "If you liked an app then like it there" and put it in README, or maybe in "About" window)
  2. It is a very inaccessible - there is no ready to install package for Windows or macOS (it would be good to have also rpm package), most of the users have to compile it manually (it can be very difficult for people who are not so tech-savvy)
  3. Its site is not very visually compelling - I think we should change README a bit (top part could contain some screens and installation guide) and we should change the icon, because it has low resolution and isn't very clean (as most of minimalistic and modern icons today). We could use something from flaticon, icons from there have a license that allows us to use them in our project (even if this project would be commercial).

Things (I think) should be done for now:

  • select new icon for an app
  • finish AntiMicroX's site on AlternativeTo and (maybe) edit AntiMicro's page
  • add AntiMicroX to SourceForge
  • add installer for Windows: #4
  • (optional) add portable version for Windows (it was implemented in old AntiMicro link)
  • add installer for macOS
  • change README (add simple installation instructions, and maybe some screenshots of an app)

I think some of these tasks should get their own issues.

What do you think about these tasks? Do you have any comments? Ideas? Something else should be done?

To sum up:
If you want to help you can:

  • Like AntiMicroX's on AlternativeTo and SourceForge
  • Consider helping us with one of tasks mentioned here (currently Windows port is our top priority)

(This issue is a copy of original issue juliagoda/antimicroX#130 from legacy AntiMicroX repo.)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.