Application for mouse button mapping

Issue Trying to find an application to map mouse buttons

Mouse: Inland GM98 Wired/ Wireless Optical Gaming Mouse – International Products Sourcing Group

Troubleshooting: Suggested to use piper. Mouse not support by piper. The buttons due work. Tested by opening gedit and pressing each of the buttons. Produced numbers as output. Not finding any useful information via websearch.

  Kernel: 6.1.5-273-tkg-pds arch: x86_64 bits: 64 compiler: gcc v: 12.2.0
    parameters: intel_pstate=passive split_lock_detect=off
    root=UUID=f8b64331-9f73-4b5e-8666-683f1b7a55e6 rw [email protected]
    root=/dev/mapper/luks-2e774d55-b39d-4dc3-ab93-dd9d934dd845 quiet splash
    nosgx rd.udev.log_priority=3 vt.global_cursor_default=0
    resume=/dev/mapper/luks-452ae4ef-dbd7-40fd-8185-ce7166dceb2c loglevel=3
  Desktop: KDE Plasma v: 5.26.5 tk: Qt v: 5.15.8 wm: kwin_wayland vt: 2 dm:
    1: LightDM v: 1.32.0 note: stopped 2: SDDM Distro: Garuda Linux
    base: Arch Linux
  Type: Laptop System: Micro-Star product: GP63 Leopard 8RD v: REV:1.0
    serial: <superuser required> Chassis: type: 10 serial: <superuser required>
  Mobo: Micro-Star model: MS-16P6 v: REV:1.0 serial: <superuser required>
    UEFI: American Megatrends v: E16P6IMS.109 date: 05/22/2019
  ID-1: BAT1 charge: 38.7 Wh (93.0%) condition: 41.6/53.4 Wh (77.8%)
    volts: 11.8 min: 10.9 model: MSI Corp. MS-16P6 type: Li-ion serial: N/A
    status: not charging
  Device-1: hidpp_battery_0 model: Logitech Wireless Touch Keyboard K400
    serial: <filter> charge: 55% (should be ignored) rechargeable: yes
    status: discharging
  Info: model: Intel Core i7-8750H bits: 64 type: MT MCP arch: Coffee Lake
    gen: core 8 level: v3 note: check built: 2018 process: Intel 14nm family: 6
    model-id: 0x9E (158) stepping: 0xA (10) microcode: 0xF0
  Topology: cpus: 1x cores: 6 tpc: 2 threads: 12 smt: enabled cache:
    L1: 384 KiB desc: d-6x32 KiB; i-6x32 KiB L2: 1.5 MiB desc: 6x256 KiB
    L3: 9 MiB desc: 1x9 MiB
  Speed (MHz): avg: 3765 high: 4100 min/max: 800/4100 scaling:
    driver: intel_cpufreq governor: performance cores: 1: 4100 2: 4001 3: 4000
    4: 3580 5: 4100 6: 800 7: 4100 8: 4100 9: 4100 10: 4100 11: 4100 12: 4100
    bogomips: 52858
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
  Vulnerabilities: <filter>
  Device-1: Intel CoffeeLake-H GT2 [UHD Graphics 630] vendor: Micro-Star MSI
    driver: i915 v: kernel arch: Gen-9.5 process: Intel 14nm built: 2016-20
    ports: active: HDMI-A-2 off: eDP-1 empty: DP-1,HDMI-A-1 bus-ID: 00:02.0
    chip-ID: 8086:3e9b class-ID: 0300
  Device-2: NVIDIA GP107M [GeForce GTX 1050 Ti Mobile]
    vendor: Micro-Star MSI driver: nvidia v: 525.78.01
    alternate: nouveau,nvidia_drm non-free: 525.xx+
    status: current (as of 2022-12) arch: Pascal code: GP10x
    process: TSMC 16nm built: 2016-21 pcie: gen: 1 speed: 2.5 GT/s lanes: 16
    link-max: gen: 3 speed: 8 GT/s bus-ID: 01:00.0 chip-ID: 10de:1c8c
    class-ID: 0302
  Device-3: Acer HD Webcam type: USB driver: uvcvideo bus-ID: 1-13:7
    chip-ID: 5986:211b class-ID: 0e02
  Display: wayland server: v: with: Xwayland v: 22.1.7
    compositor: kwin_wayland driver: X: loaded: intel,nvidia dri: i965
    gpu: i915,nvidia display-ID: 0
  Monitor-1: HDMI-A-2 res: 1360x768 size: N/A modes: N/A
  API: OpenGL v: 4.6 Mesa 22.3.3 renderer: Mesa Intel UHD Graphics 630 (CFL
    GT2) direct render: Yes
  Device-1: Intel Cannon Lake PCH cAVS vendor: Micro-Star MSI
    driver: snd_hda_intel v: kernel bus-ID: 1-1.4:9 chip-ID: 0d8c:0012
    alternate: snd_soc_skl,snd_sof_pci_intel_cnl bus-ID: 00:1f.3
    class-ID: 0300 chip-ID: 8086:a348 class-ID: 0403
  Device-2: C-Media USB Audio Device type: USB
    driver: hid-generic,snd-usb-audio,usbhid
  Sound API: ALSA v: k6.1.5-273-tkg-pds running: yes
  Sound Interface: sndio v: N/A running: no
  Sound Server-1: PulseAudio v: 16.1 running: no
  Sound Server-2: PipeWire v: 0.3.64 running: yes
  Device-1: Intel Cannon Lake PCH CNVi WiFi driver: iwlwifi v: kernel
    bus-ID: 00:14.3 chip-ID: 8086:a370 class-ID: 0280
  IF: wlan0 state: down mac: <filter>
  Device-2: Qualcomm Atheros Killer E2400 Gigabit Ethernet
    vendor: Micro-Star MSI driver: alx v: kernel pcie: gen: 1 speed: 2.5 GT/s
    lanes: 1 port: 3000 bus-ID: 03:00.0 chip-ID: 1969:e0a1 class-ID: 0200
  IF: enp3s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
  IF-ID-1: tun0 state: unknown speed: 10 Mbps duplex: full mac: N/A
  Device-1: Intel Bluetooth 9460/9560 Jefferson Peak (JfP) type: USB
    driver: btusb v: 0.8 bus-ID: 1-14:8 chip-ID: 8087:0aaa class-ID: e001
  Report: bt-adapter note: tool can't run ID: hci0 rfk-id: 0 state: down
    bt-service: disabled rfk-block: hardware: no software: yes address: N/A
  Local Storage: total: 1.84 TiB used: 828.47 GiB (43.9%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung model: SSD 970 EVO 1TB
    size: 931.51 GiB block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s
    lanes: 4 type: SSD serial: <filter> rev: 2B2QEXE7 temp: 37.9 C scheme: GPT
  ID-2: /dev/sda maj-min: 8:0 model: SATA SSD size: 953.87 GiB block-size:
    physical: 512 B logical: 512 B speed: 6.0 Gb/s type: SSD serial: <filter>
    rev: 61.3 temp: 33 C scheme: MBR
  ID-1: / raw-size: 914.2 GiB size: 914.2 GiB (100.00%) used: 399 GiB (43.6%)
    fs: btrfs dev: /dev/dm-0 maj-min: 254:0
    mapped: luks-2e774d55-b39d-4dc3-ab93-dd9d934dd845
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 752 KiB (0.2%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
  ID-3: /home raw-size: 914.2 GiB size: 914.2 GiB (100.00%)
    used: 399 GiB (43.6%) fs: btrfs dev: /dev/dm-0 maj-min: 254:0
    mapped: luks-2e774d55-b39d-4dc3-ab93-dd9d934dd845
  ID-4: /var/log raw-size: 914.2 GiB size: 914.2 GiB (100.00%)
    used: 399 GiB (43.6%) fs: btrfs dev: /dev/dm-0 maj-min: 254:0
    mapped: luks-2e774d55-b39d-4dc3-ab93-dd9d934dd845
  ID-5: /var/tmp raw-size: 914.2 GiB size: 914.2 GiB (100.00%)
    used: 399 GiB (43.6%) fs: btrfs dev: /dev/dm-0 maj-min: 254:0
    mapped: luks-2e774d55-b39d-4dc3-ab93-dd9d934dd845
  Kernel: swappiness: 133 (default 60) cache-pressure: 50 (default 100)
  ID-1: swap-1 type: zram size: 15.47 GiB used: 0 KiB (0.0%) priority: 100
    dev: /dev/zram0
  ID-2: swap-2 type: partition size: 17.01 GiB used: 0 KiB (0.0%)
    priority: -2 dev: /dev/dm-1 maj-min: 254:1
    mapped: luks-452ae4ef-dbd7-40fd-8185-ce7166dceb2c
  System Temperatures: cpu: 56.0 C pch: 62.0 C mobo: N/A
  Fan Speeds (RPM): N/A
  Processes: 363 Uptime: 1h 41m wakeups: 11 Memory: 15.47 GiB
  used: 5.11 GiB (33.0%) Init: systemd v: 252 default: graphical
  tool: systemctl Compilers: gcc: 12.2.0 alt: 11 clang: 14.0.6 Packages:
  pm: pacman pkgs: 2464 libs: 572
  tools: cylon,gnome-software,pamac,paru,trizen,yay pm: flatpak pkgs: 0
  Shell: Bash v: 5.1.16 running-in: gnome-terminal inxi: 3.3.24
Garuda (2.6.14-1):
  System install date:     2022-12-17
  Last full system update: 2023-01-14 ↻
  Is partially upgraded:   No
  Relevant software:       snapper NetworkManager mkinitcpio
  Windows dual boot:       No/Undetected
  Failed units: 

A few solutions are described here: Mouse buttons - ArchWiki


Will take a look. Thanks.

I posted this in tech news a few weeks ago...

Input Remapper

[[email protected] ~]$ input-remapper-gtk 
input-remapper-gtk 1.5.0 bc68fa7f6ec8faf10fb01e4b70426cade6ca50e1
python-evdev 1.6.0
Traceback (most recent call last):
  File "/usr/bin/input-remapper-gtk", line 62, in <module>
  File "/home/jedi/.local/lib/python3.10/site-packages/inputremapper/configs/", line 260, in migrate
    v = config_version()
  File "/home/jedi/.local/lib/python3.10/site-packages/inputremapper/configs/", line 75, in config_version
    config = json.load(file)
  File "/usr/lib/python3.10/json/", line 293, in load
    return loads(,
  File "/usr/lib/python3.10/json/", line 346, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3.10/json/", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python3.10/json/", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
[[email protected] ~]$