Getting around the trackball issues without having to add peripherals (A06)

CONFIG FOR KEYBINDS

(saved as yayo.joystick.amgp)

<?xml version="1.0" encoding="UTF-8"?>
<joystick configversion="19" appversion="3.2.3">
    <!--The SDL name for a joystick is included for informational purposes only.-->
    <sdlname>ClockworkPI DevTerm</sdlname>
    <!--The Unique ID for a joystick is included for informational purposes only.-->
    <uniqueID>03000000af1e00002400000010010000</uniqueID>
    <sets>
        <set index="1">
            <axis index="5">
                <center_value>0</center_value>
                <min_value>-32767</min_value>
                <max_value>32767</max_value>
                <throttle>normal</throttle>
            </axis>
            <axis index="4">
                <center_value>0</center_value>
                <min_value>-32767</min_value>
                <max_value>32767</max_value>
                <throttle>normal</throttle>
            </axis>
            <axis index="3">
                <center_value>0</center_value>
                <min_value>-32767</min_value>
                <max_value>32767</max_value>
                <throttle>normal</throttle>
            </axis>
            <axis index="2">
                <maxZone>16000</maxZone>
                <center_value>0</center_value>
                <min_value>-32767</min_value>
                <max_value>32767</max_value>
                <throttle>normal</throttle>
                <axisbutton index="1">
                    <mousespeedx>30</mousespeedx>
                    <mousespeedy>30</mousespeedy>
                    <slots>
                        <slot>
                            <code>1</code>
                            <mode>mousemovement</mode>
                        </slot>
                    </slots>
                </axisbutton>
                <axisbutton index="2">
                    <mousespeedx>30</mousespeedx>
                    <mousespeedy>30</mousespeedy>
                    <slots>
                        <slot>
                            <code>2</code>
                            <mode>mousemovement</mode>
                        </slot>
                    </slots>
                </axisbutton>
            </axis>
            <axis index="1">
                <maxZone>16000</maxZone>
                <center_value>0</center_value>
                <min_value>-32767</min_value>
                <max_value>32767</max_value>
                <throttle>normal</throttle>
                <axisbutton index="1">
                    <mousespeedx>30</mousespeedx>
                    <mousespeedy>30</mousespeedy>
                    <slots>
                        <slot>
                            <code>3</code>
                            <mode>mousemovement</mode>
                        </slot>
                    </slots>
                </axisbutton>
                <axisbutton index="2">
                    <mousespeedx>30</mousespeedx>
                    <mousespeedy>30</mousespeedy>
                    <slots>
                        <slot>
                            <code>4</code>
                            <mode>mousemovement</mode>
                        </slot>
                    </slots>
                </axisbutton>
            </axis>
            <button index="4">
                <slots>
                    <slot>
                        <slots>
                            <slot>
                                <code>0x1000022</code>
                                <mode>keyboard</mode>
                            </slot>
                            <slot>
                                <code>0x44</code>
                                <mode>keyboard</mode>
                            </slot>
                        </slots>
                        <mode>mix</mode>
                    </slot>
                </slots>
            </button>
            <button index="3">
                <slots>
                    <slot>
                        <code>0x1000017</code>
                        <mode>keyboard</mode>
                    </slot>
                </slots>
            </button>
            <button index="2">
                <slots>
                    <slot>
                        <code>1</code>
                        <mode>mousebutton</mode>
                    </slot>
                </slots>
            </button>
            <button index="1">
                <slots>
                    <slot>
                        <code>0x1000016</code>
                        <mode>keyboard</mode>
                    </slot>
                </slots>
            </button>
        </set>
    </sets>
</joystick>

1. in i3 I added: exec --no-startup-id antimicrox --profile yayo.joystick.amgp --hidden ######## note your path to the config may differ but WHATEVER.joystick.amgp is the typical extension/naming convention ############
2.##### you can name the config above the same as I have here and as long as it points to the right path it should be fine ################

heh.

4 Likes

Sick! Can’t wait to try it out!

2 Likes

I love this idea, but I’m having trouble getting everything to work. Anything obvious that I’m likely missing?

It looks like I have i3 working. I had to install i3status and dmenu to get everything up and running–but seems to be fine now. But the D-pad isn’t working yet.

I see the little game-controller icon in the status bar–and when I click it, it brings up the AntiMicroX window. I see the yahoo.joystick profile is loaded. But when I click the dpad or ABXY buttons, it highlights the Axis 1, Axis 2, and Button 1-4 buttons.

For example, trying to run antimicrox from the command line always results in the following–no matter what I pass as arguments.

% antimicrox -l
[1]    4455 abort      antimicrox -l

@rikiwarren did you get antimicrox from the AUR?

Sorry, I’m not sure what the AUR is. I’ve been out of the Linux circles for a while.

I just installed antimicrox using apt. But I have upgraded the system, so it’s now running Impish.

I was able to get it working through a combination of trying to configure my own file through the UI–then saving that version and replacing the inner part of the XML with the inner part you posted.

Looks like my version of antimicrox is older than yours.

Yours: <joystick configversion="19" appversion="3.2.3">
Mine: <joystick configversion="19" appversion="3.1.4">

I’m not sure if that is what caused it to fail–but after copying everything inside <sets></sets> over to a file that I saved from the GUI editor, it worked fine. Or at least mostly fine. I think we picked different modifier keys when we set up I3, so I had to figure out how to set key combos using the graphical UI–which was somewhat hidden and more difficult than necessary.

But everything seems to be working great now. I may want to play around with the acceleration curves for the D-pad to make it easier to land on small click targets–but my initial tests of other settings in the GUI didn’t seem to change much. So that’s a future me problem.