Mate Desktop how to set the input modules

Running Rocky Linux 9 and Mate Desktop 1.26.2 with X11. I have just compiled fcitx5 to be able to enter Chinese characters in various applications.

How can I add it as an input module when using the Mate Desktop? I have found a console application ibus-setup but fcitx5 uses fcitx as the input method and it does not show up when I launch ibus-setup, in fact no input method shows up.

Clearly there is something I have not understood and could use some help.

Thanks.

When opening Control Center -> Language Support -> Keyboard input method system
you have a default choice of 'none' and 'XIM'

If you install fcitx5 by issuing:

sudo apt install fcitx5

Or install this by using a GUI installer like Synaptic, you should find that the option fcitx5 is added to the list after you logout and login again.

I have no idea what fcitx modules you want in addition to this base module because the additions are language dependent. There are an awful lot of fcitx related packages you can install (more than 180). To see them all issue the command:

apt search fcitx | less

But anyway, installing the base package 'fcitx5' installs the base input framework you need and should add the option in abovementioned menu.

I know that some years ago I used it to try out some hiragana and katakana writing and it worked perfectly although the most troubles I had were due to me being absolutely not familiar with the use of these kind of input systems :slight_smile:

3 Likes

Hello @tkn,

This is a stab in the dark, hoping you can help.

Would you be aware of any option/selection that would be available at the "Keyboard input method system:" drop-down, which would be applicable for improving the interraction of the OS with my 3DConnexion SpaceNavigator mouse ?

Only choices I currently have are

  • none, or
  • XIM.

Hi Eric,

The "Keyboard input method system" does not cover the mouse.

To customize mouse functions, you'll have to use the command "xinput"

see man xinput

first use the command xinput list to identify the mouse. As an example, here is what it does on my system:

thom@monolith:~$ xinput list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Logitech MX Ergo                        	id=8	[slave  pointer  (2)]
⎜   ↳ Corsair Corsair Gaming K55 RGB Keyboard 	id=9	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Power Button                            	id=7	[slave  keyboard (3)]
    ↳ Logitech MX Ergo                        	id=10	[slave  keyboard (3)]
    ↳ Corsair Corsair Gaming K55 RGB Keyboard 	id=11	[slave  keyboard (3)]

My mouse is identified as "Logitech MX Ergo"
Now we can use this to list the possible options that this mouse offers:

thom@monolith:~$ xinput list-props "pointer:Logitech MX Ergo"
Device 'Logitech MX Ergo':
	Device Enabled (157):	1
	Coordinate Transformation Matrix (159):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Natural Scrolling Enabled (295):	0
	libinput Natural Scrolling Enabled Default (296):	0
	libinput Scroll Methods Available (297):	0, 0, 1
	libinput Scroll Method Enabled (298):	0, 0, 0
	libinput Scroll Method Enabled Default (299):	0, 0, 0
	libinput Button Scrolling Button (300):	2
	libinput Button Scrolling Button Default (301):	2
	libinput Button Scrolling Button Lock Enabled (302):	0
	libinput Button Scrolling Button Lock Enabled Default (303):	0
	libinput Middle Emulation Enabled (304):	0
	libinput Middle Emulation Enabled Default (305):	0
	libinput Rotation Angle (306):	0.000000
	libinput Rotation Angle Default (307):	0.000000
	libinput Accel Speed (308):	0.000000
	libinput Accel Speed Default (309):	0.000000
	libinput Accel Profiles Available (310):	1, 1
	libinput Accel Profile Enabled (311):	0, 1
	libinput Accel Profile Enabled Default (312):	1, 0
	libinput Left Handed Enabled (313):	0
	libinput Left Handed Enabled Default (314):	0
	libinput Send Events Modes Available (280):	1, 0
	libinput Send Events Mode Enabled (281):	0, 0
	libinput Send Events Mode Enabled Default (282):	0, 0
	Device Node (283):	"/dev/input/event3"
	Device Product ID (284):	1133, 16495
	libinput Drag Lock Buttons (315):	<no items>
	libinput Horizontal Scroll Enabled (316):	1
	libinput Scrolling Pixel Distance (317):	15
	libinput Scrolling Pixel Distance Default (318):	15
	libinput High Resolution Wheel Scroll Enabled (319):	1

Since I wanted to change the acceleration-profile, I entered this:

xinput set-prop "pointer:Logitech MX Ergo" "libinput Accel Profile Enabled" 0 1

Every property can be changed this way.
Next is to add the xinput set-prop line to your "$HOME/.profile" so that is is set when you login.

Extra options:

If you want to bind customized functions to your extra mousebuttons, you can use: xbindkeys

see man xbindkeys

I don't remember if it is installed by default so if it is not there, just install it.
The configfile should be placed here: $HOME/.xbindkeysrc
For instance, I wanted 'zoom-in' and 'zoom-out' bound to button 8 and 9
It sould look like something like this:

# we are using the extra buttons on the MX-Ergo as zoom-in and zoom-out
"xbindkeys_show"
   control+shift + q

"xte 'keydown Control_L' 'keydown Shift_L' 'key plus' 'keyup Shift_L' 'keyup Control_L'"
   b:9

"xte 'keydown Control_L' 'key minus' 'keyup Control_L'"
   b:8
#
# End of xbindkeys configuration
2 Likes