System default keybord is us. I add my own layout, so that I have two and after reboot it’s reset back to just us.
My added layout is fine. I have it for years and it worked with the same kde version of 2 months before without issue. After fresh install I’m left with this resetting behavior.
I’m using wayland, after installation of system I was getting popups about keyboard issues, so I followed what was requested: I set fcitx 5 and then I ran im-config where I set ‘do not activate any IM from im-config and use desktop default’.
When looking for solutions I noticed this is older subject, someone recommended making .config/kxkbrc readonly, but this does not matter, the file gets overwritten anyways.
How to fix?
1 Like
Duha
February 14, 2025, 8:09pm
2
https://bugs.kde.org/show_bug.cgi?id=357194
If you don’t need fcitx, you can remove the package. Otherwise you can try the solutions offered in the fctix5 issue tracker:
opened 07:26PM - 06 Feb 25 UTC
closed 08:12PM - 06 Feb 25 UTC
### Summary
fcitx will autostart on Plasma login. This makes sense on X11, but … not on Plasma Wayland where fcitx needs to be enabled as Virtual Keyboard in System Settings first. There is a pop-up on startup to warn the user about this, although there is no straightforward way for the user to disable autostart (the "Active By Default" option does not affect autostart behavior).
When fcitx starts, it resets any keyboard layout settings that the user may have set up previously. This is a problem, because:
1. fcitx does not support all keyboard layouts that Plasma supports. For example, I use the "EurKEY (US)" layout and it does not exist in fcitx.
2. The user experience is poor for users that don't need input methods. As a result, most distributions will not install fcitx5 by default. I would like fcitx5 to be installed by default on many distros.
### Steps to Reproduce
On Arch Linux, install `fcitx5`, `fcitx5-configtool`, `fcitx5-hangul` and `fcitx5-qt`. Then restart the Plasma/Wayland session without touching any configuration.
### Expected Behavior
Imho a good way forward would be for fcitx to remain disabled until the user manually enables it. In a Plasma/Wayland session, there is an explicit trigger for this: when fcitx gets started by the compositor (`X-KDE-Wayland-VirtualKeyboard=true`) then fcitx should apply its settings.
Ideally, when it quits, fcitx should restore the previous keyboard settings that it has overwritten while it was active.
In the long run, it would be great if there is only one language input config module in System Settings, whose settings (incl. keyboard layout) are shared by Plasma and fcitx. I'm curious if you have thoughts on how to make this happen.
### Output of fcitx5-diagnose command
<details><summary>Output of fcitx5-diagnose command</summary>
<p>
# System Info:
1. `uname -a`:
Linux quint 6.12.10-arch1-1 #1 SMP PREEMPT_DYNAMIC Sat, 18 Jan 2025 02:26:57 +0000 x86_64 GNU/Linux
2. `lsb_release -a`:
LSB Version: n/a
Distributor ID: Arch
Description: Arch Linux
Release: rolling
Codename: n/a
3. `lsb_release -d`:
Description: Arch Linux
4. `/etc/lsb-release`:
DISTRIB_ID="Arch"
DISTRIB_RELEASE="rolling"
DISTRIB_DESCRIPTION="Arch Linux"
5. `/etc/os-release`:
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo
6. Desktop Environment:
Desktop environment is `kde`.
7. XDG SESSION TYPE:
XDG_SESSION_TYPE='wayland'
8. Bash Version:
BASH_VERSION='5.2.37(1)-release'
# Environment:
1. DISPLAY:
DISPLAY=':1'
WAYLAND_DISPLAY='wayland-0'
2. Keyboard Layout:
1. `setxkbmap`:
WARNING: Running setxkbmap against an Xwayland server
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+inet(evdev)" };
xkb_geometry { include "pc(pc105)" };
};
2. `xprop`:
_XKB_RULES_NAMES(STRING) = "evdev", "pc105", "us", "", ""
3. Locale:
1. All locales:
C
C.utf8
de_AT.utf8
en_CA.utf8
en_US.utf8
POSIX
2. Current locale:
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME=en_CA.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT=en_CA.UTF-8
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
4. Directories:
1. Home:
/home/kpetso
2. `${XDG_CONFIG_HOME}`:
Environment variable `XDG_CONFIG_HOME` is not set.
Current value of `XDG_CONFIG_HOME` is `~/.config` (`/home/kpetso/.config`).
3. Fcitx5 Settings Directory:
Current fcitx5 settings directory is `~/.config/fcitx5` (`/home/kpetso/.config/fcitx5`).
5. Current user:
The script is run as kpetso (2001).
# Fcitx State:
1. executable:
Found fcitx5 at `/usr/bin/fcitx5`.
2. version:
Fcitx version: `5.1.11`
3. process:
Found 2 fcitx5 processes:
285313 fcitx5
295685 fcitx5
4. `fcitx5-remote`:
`fcitx5-remote` works properly.
5. DBus interface:
Using `dbus-send` to check dbus.
Owner of DBus name `org.fcitx.Fcitx5` is `:1.51`.
PID of DBus name `org.fcitx.Fcitx5` owner is `285313`.
Debug information from dbus:
Group [wayland:] has 1 InputContext(s)
IC [483ad52f794a4f3dbcf9f52cdd956be2] program: frontend:ibus cap:12 focus:0
Group [x11::1] has 0 InputContext(s)
Input Context without group
# Fcitx Configure UI:
1. Config Tool Wrapper:
Found fcitx5-configtool at `/usr/bin/fcitx5-configtool`.
2. Config GUI for qt:
Found `fcitx5-config-qt` at `/usr/bin/fcitx5-config-qt`.
3. Config GUI for kde:
**`kcmshell5` not found.**
# Frontends setup:
The environment variable checked by this script only shows the environment under current shell. It is still possible that you did not set the environment to the whole graphic desktop session. You may inspect the actual environment variable of a certain process by using `xargs -0 -L1 /proc/$PID/environ` for a certain process that you find not working.
## Xim:
1. `${XMODIFIERS}`:
**XMODIFIERS is not set**
**Please set environment variable XMODIFIERS to "@im=fcitx" using the tool your distribution provides or add `export XMODIFIERS=@im=fcitx` to your `~/.xprofile`. See [Input Method Related Environment Variables: XMODIFIERS](http://fcitx-im.org/wiki/Input_method_related_environment_variables#XMODIFIERS).**
Xim Server Name from Environment variable is fcitx.
2. XIM_SERVERS on root window:
Xim server name is the same with that set in the environment variable.
## Qt:
1. qt4 - `${QT4_IM_MODULE}`:
**Please set environment variable QT_IM_MODULE to "fcitx" using the tool your distribution provides or add `export QT_IM_MODULE=fcitx` to your `~/.xprofile`. See [Input Method Related Environment Variables: QT_IM_MODULE](http://fcitx-im.org/wiki/Input_method_related_environment_variables#QT_IM_MODULE).**
**`fcitx5-qt4-immodule-probing` not found.**
2. qt5 - `${QT_IM_MODULE}`:
**Please set environment variable QT_IM_MODULE to "fcitx" using the tool your distribution provides or add `export QT_IM_MODULE=fcitx` to your `~/.xprofile`. See [Input Method Related Environment Variables: QT_IM_MODULE](http://fcitx-im.org/wiki/Input_method_related_environment_variables#QT_IM_MODULE).**
**It is OK to use qt5 built-in Wayland im module if your compositor fully supports text-input protocol used by qt5.**
Using fcitx5-qt5-immodule-probing to check the actual im module to be used under current environment:
QT_QPA_PLATFORM=wayland
QT_IM_MODULE=
IM_MODULE_CLASSNAME=QtWaylandClient::QWaylandInputContext
3. qt6 - `${QT_IM_MODULE}`:
**Please set environment variable QT_IM_MODULE to "fcitx" using the tool your distribution provides or add `export QT_IM_MODULE=fcitx` to your `~/.xprofile`. See [Input Method Related Environment Variables: QT_IM_MODULE](http://fcitx-im.org/wiki/Input_method_related_environment_variables#QT_IM_MODULE).**
**It is OK to use qt6 built-in Wayland im module if your compositor fully supports text-input protocol used by qt6.**
Using fcitx5-qt6-immodule-probing to check the actual im module to be used under current environment:
QT_QPA_PLATFORM=wayland
QT_IM_MODULE=
IM_MODULE_CLASSNAME=QtWaylandClient::QWaylandInputContext
4. Qt IM module files:
Found fcitx5 qt5 module: `/usr/lib/fcitx5/qt5/libfcitx-quickphrase-editor5.so`.
Found fcitx5 qt6 module: `/usr/lib/fcitx5/qt6/libfcitx-quickphrase-editor5.so`.
Found fcitx5 im module for qt: `/usr/lib/qt/plugins/platforminputcontexts/libfcitx5platforminputcontextplugin.so`.
Found unknown fcitx qt module: `/usr/lib/qt6/plugins/plasma/kcms/systemsettings/kcm_fcitx5.so`.
Found fcitx5 im module for qt6: `/usr/lib/qt6/plugins/platforminputcontexts/libfcitx5platforminputcontextplugin.so`.
Following error may not be accurate because guessing Qt version from path depends on how your distribution packages Qt. It is not a critical error if you do not use any Qt application with certain version of Qt or you are using text-input support by Qt under Wayland.
**Cannot find fcitx5 input method module for Qt4.**
## Gtk:
1. gtk - `${GTK_IM_MODULE}`:
**Please set environment variable GTK_IM_MODULE to "fcitx" using the tool your distribution provides or add `export GTK_IM_MODULE=fcitx` to your `~/.xprofile`. See [Input Method Related Environment Variables: GTK_IM_MODULE](http://fcitx-im.org/wiki/Input_method_related_environment_variables#GTK_IM_MODULE).**
**It is OK to use gtk built-in Wayland im module if your compositor fully supports text-input protocol used by gtk.**
**`fcitx5-gtk2-immodule-probing` not found.**
**`fcitx5-gtk3-immodule-probing` not found.**
**`fcitx5-gtk4-immodule-probing` not found.**
2. `gtk-query-immodules`:
1. gtk 2:
Found `gtk-query-immodules` for gtk `2.24.33` at `/usr/bin/gtk-query-immodules-2.0`.
Version Line:
# Created by /usr/bin/gtk-query-immodules-2.0 from gtk+-2.24.33
**Failed to find fcitx5 in the output of `/usr/bin/gtk-query-immodules-2.0`**
**Cannot find fcitx5 im module for gtk 2.**
2. gtk 3:
Found `gtk-query-immodules` for gtk `3.24.48` at `/usr/bin/gtk-query-immodules-3.0`.
Version Line:
# Created by /usr/bin/gtk-query-immodules-3.0 from gtk+-3.24.48
**Failed to find fcitx5 in the output of `/usr/bin/gtk-query-immodules-3.0`**
**Cannot find fcitx5 im module for gtk 3.**
3. Gtk IM module cache:
1. gtk 2:
Found immodules cache for gtk `2.24.33` at `/usr/lib/gtk-2.0/2.10.0/immodules.cache`.
Version Line:
# Created by /usr/bin/gtk-query-immodules-2.0 from gtk+-2.24.33
**Failed to find fcitx5 in immodule cache at `/usr/lib/gtk-2.0/2.10.0/immodules.cache`**
**Cannot find fcitx5 im module for gtk 2 in cache.**
2. gtk 3:
Found immodules cache for gtk `3.24.48` at `/usr/lib/gtk-3.0/3.0.0/immodules.cache`.
Version Line:
# Created by /usr/bin/gtk-query-immodules-3.0 from gtk+-3.24.48
**Failed to find fcitx5 in immodule cache at `/usr/lib/gtk-3.0/3.0.0/immodules.cache`**
**Cannot find fcitx5 im module for gtk 3 in cache.**
4. Gtk IM module files:
1. gtk 2:
All found Gtk 2 immodule files exist.
2. gtk 3:
All found Gtk 3 immodule files exist.
3. gtk 4:
All found Gtk 4 immodule files exist.
# Configuration:
## Fcitx Addons:
1. Addon Config Dir:
Found fcitx5 addon config directory: `/usr/share/fcitx5/addon`.
2. Addon List:
1. Found 21 enabled addons:
Classic User Interface 5.1.11
Clipboard 5.1.11
DBus 5.1.11
DBus Frontend 5.1.11
Emoji 5.1.11
Fcitx4 Frontend 5.1.11
Hangul 5.1.5
IBus Frontend 5.1.11
Input method selector 5.1.11
Keyboard 5.1.11
KDE Input Method Panel 5.1.11
Status Notifier 5.1.11
Notification 5.1.11
Quick Phrase 5.1.11
Spell 5.1.11
Unicode 5.1.11
DBus Virtual Keyboard 5.1.11
Wayland 5.1.11
Wayland Input method frontend 5.1.11
XCB 5.1.11
X Input Method Frontend 5.1.11
2. Found 0 disabled addons:
3. Addon Libraries:
All libraries for all addons are found.
4. User Interface:
Found 3 enabled user interface addons:
Classic User Interface
KDE Input Method Panel
DBus Virtual Keyboard
## Input Methods:
1. `/home/kpetso/.config/fcitx5/profile`:
[Groups/0]
# Group Name
Name=Default
# Layout
Default Layout=us
# Default Input Method
DefaultIM=keyboard-us
[Groups/0/Items/0]
# Name
Name=keyboard-us
# Layout
Layout=
[GroupOrder]
0=Default
# Log:
1. `date`:
Thu 06 Feb 2025 02:20:57 PM EST
2. `/home/kpetso/.config/fcitx5/crash.log`:
`/home/kpetso/.config/fcitx5/crash.log` not found.
**Warning: the output of fcitx5-diagnose contains sensitive information, including the distribution name, kernel version, name of currently running programs, etc.**
**Though such information can be helpful to developers for diagnostic purpose, please double check and remove as necessary before posting it online publicly.**
</p>
</details>
2 Likes
Thank you for quick reply.
Fcitx5 removed, solved the issue.
TBH. I don’t think this should be installed by default. If it works and not causing problems, ok, why not. But this just confuses the users, as it really seems that this should be running. Rant off
Thank you very much again.
1 Like
Wismill
February 15, 2025, 7:24am
4
What is your distribution? I have seen multiple times issues with fcitx5 being the root cause.
As @Wismill was indicating, that feedback might be helpful for the Kubuntu folks , who control what system components are installed by default in that distribution
Same on Manjaro. Thanks for the solution!