Compare commits
1 Commits
| Author | SHA256 | Date | |
|---|---|---|---|
|
|
2c97fbc942 |
60
20-ibus-plasma-setup.sh
Normal file
60
20-ibus-plasma-setup.sh
Normal file
@@ -0,0 +1,60 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# If the virtual keyboard of Plasma Wayland has not been configured,
|
||||
# configure it for this IM.
|
||||
#
|
||||
|
||||
im_name="ibus"
|
||||
desktop_file="/usr/share/applications/org.freedesktop.IBus.Panel.Wayland.Gtk3.desktop"
|
||||
|
||||
# Do nothing for X11 session
|
||||
if [ "$XDG_SESSION_TYPE" != "wayland" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Do nothing if kreadconfig6 is not available
|
||||
if ! command -v kreadconfig6 >/dev/null 2>&1; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# check current virtual keyboard
|
||||
current_im=$(kreadconfig6 --file kwinrc --group Wayland --key InputMethod)
|
||||
|
||||
#
|
||||
# initialize virtual keyboard if not configured yet
|
||||
#
|
||||
|
||||
# check if $XDG_CONFIG_HOME/plasma_wayland_input_method_configured does not exist
|
||||
config_dir="${XDG_CONFIG_HOME:-$HOME/.config}"
|
||||
stamp_file="$config_dir/plasma_wayland_input_method_configured"
|
||||
if [ ! -e "$stamp_file" ]; then
|
||||
mkdir -p "$config_dir"
|
||||
echo "$im_name" > "$stamp_file"
|
||||
|
||||
# check current virtual keyboard is None
|
||||
if [ -z "$current_im" ]; then
|
||||
# The virtual keyboard is not configured
|
||||
echo "$0 is configuring the virtual keyboard for IBus."
|
||||
current_im=$desktop_file
|
||||
kwriteconfig6 --file kwinrc --group Wayland --key InputMethod $current_im
|
||||
else
|
||||
echo "$0 detected a virtual keyboard configured."
|
||||
fi
|
||||
fi
|
||||
|
||||
#
|
||||
# export environment variables for applications running on Xwayland
|
||||
#
|
||||
if [ "$current_im" = "$desktop_file" ]; then
|
||||
# do not override Qt IM module settings
|
||||
if [ -z "$QT_IM_MODULE" ] && [ -z "$QT_IM_MODULES" ]; then
|
||||
echo "$0 is setting QT_IM_MODULES for $im_name."
|
||||
export QT_IM_MODULES="wayland;$im_name"
|
||||
fi
|
||||
# do not override xim settings
|
||||
if [ -z "$XMODIFIERS" ]; then
|
||||
echo "$0 is setting XMODIFIERS for $im_name."
|
||||
export XMODIFIERS="@im=$im_name"
|
||||
fi
|
||||
fi
|
||||
@@ -1,5 +1,12 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# Normal start process for X11 session
|
||||
# Note that INPUT_METHOD is not usually set under a Wayland session.
|
||||
#
|
||||
# For Plasma Wayland, see also /usr/etc/xdg/plasma-workspace/env/20-ibus-plasma-setup.sh.
|
||||
# To configure input method (virtual keyboard), please use KDE System Settings rather than
|
||||
# INPUT_METHOD variable.
|
||||
test x"$INPUT_METHOD" = x"ibus" || exit 0
|
||||
|
||||
# GNOME starts ibus by itself
|
||||
@@ -11,6 +18,7 @@ esac
|
||||
if [ "$XDG_SESSION_TYPE" = "wayland" ]; then
|
||||
case "$XDG_CURRENT_DESKTOP" in
|
||||
*KDE*)
|
||||
# This will update kwinrc and set IBus for the active virtual keyboard
|
||||
ibus start --type=kde-wayland
|
||||
exit 0;;
|
||||
*)
|
||||
|
||||
@@ -1,3 +1,11 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 15 13:45:03 UTC 2025 - Fuminobu Takeyama <ftake@geeko.jp>
|
||||
|
||||
- Add an initial setup feature for Plasma Wayland
|
||||
* enables IBus as the active virtual keyboard on the first login,
|
||||
allowing users to input text using IBus without manual configuration
|
||||
* Fix boo#1084804, boo#1246423
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Jun 14 08:35:05 UTC 2025 - Takashi Iwai <tiwai@suse.com>
|
||||
|
||||
|
||||
@@ -48,6 +48,7 @@ Source7: macros.ibus
|
||||
Source10: ibus-autostart
|
||||
Source11: ibus-autostart.desktop
|
||||
Source12: 20-defaults-openSUSE.conf
|
||||
Source13: 20-ibus-plasma-setup.sh
|
||||
Source99: baselibs.conf
|
||||
# PATFH-FIX-OPENSUSE ibus-xim-fix-re-focus-after-lock.patch bnc#874869 tiwai@suse.de
|
||||
# Fix lost XIM input after screenlock
|
||||
@@ -286,6 +287,9 @@ install -c -m 0644 ibus-autostart.desktop %{buildroot}%{_sysconfdir}/xdg/autosta
|
||||
mkdir -p %{buildroot}%{_userunitdir}/org.freedesktop.IBus.session.generic.service.d
|
||||
install -c -m 0644 %{SOURCE12} %{buildroot}%{_userunitdir}/org.freedesktop.IBus.session.generic.service.d
|
||||
|
||||
# setup script for Plasma
|
||||
install -D -m 0755 %{SOURCE13} %{buildroot}%{_distconfdir}/xdg/plasma-workspace/env/20-ibus-plasma-setup.sh
|
||||
|
||||
PRIORITY=40
|
||||
pushd %{buildroot}%{_distconfdir}/X11/xim.d/
|
||||
for lang in am ar as bn el fa gu he hi hr ja ka kk kn ko lo ml my \
|
||||
@@ -360,6 +364,7 @@ rm -rf %{buildroot}%{_libdir}/libibus*
|
||||
rm -rf %{buildroot}%{_libdir}/pkgconfig
|
||||
rm -rf %{buildroot}%{_prefix}/lib/systemd
|
||||
rm -rf %{buildroot}%{_sysconfdir}/xdg
|
||||
rm -rf %{buildroot}%{_distconfdir}/xdg
|
||||
|
||||
%post -n %{_name}-gtk4
|
||||
%{gtk4_immodule_post}
|
||||
@@ -418,6 +423,9 @@ fi
|
||||
%config %{_sysconfdir}/dconf/db/ibus.d/00-upstream-settings
|
||||
%config %{_sysconfdir}/dconf/profile/ibus
|
||||
%config %{_sysconfdir}/xdg/autostart/ibus-autostart.desktop
|
||||
%dir %{_distconfdir}/xdg/plasma-workspace
|
||||
%dir %{_distconfdir}/xdg/plasma-workspace/env
|
||||
%{_distconfdir}/xdg/plasma-workspace/env/20-ibus-plasma-setup.sh
|
||||
%{_mandir}/man1/ibus.1%{ext_man}
|
||||
%{_mandir}/man1/ibus-daemon.1%{ext_man}
|
||||
%{_mandir}/man1/ibus-setup.1%{ext_man}
|
||||
|
||||
Reference in New Issue
Block a user