Accepting request 946559 from home:MargueriteSu:branches:M17N

- can start via systemd user service on wayland
- fix typo and requirements

OBS-URL: https://build.opensuse.org/request/show/946559
OBS-URL: https://build.opensuse.org/package/show/M17N/fcitx5?expand=0&rev=19
This commit is contained in:
Marguerite Su 2022-01-15 05:07:35 +00:00 committed by Git OBS Bridge
parent fc767841f6
commit 4b3105e741
5 changed files with 79 additions and 11 deletions

4
99-fcitx5.conf Normal file
View File

@ -0,0 +1,4 @@
XMODIFIERS=@im=${INPUT_METHOD}
GTK_IM_MODULE=${INPUT_METHOD}
QT_IM_SWITCHER=imsw-multi
QT_IM_MODULE=${INPUT_METHOD}

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Sat Jan 15 05:05:58 UTC 2022 - Marguerite Su <i@marguerite.su>
- can start via systemd user service on wayland
- fix typo and requirements
-------------------------------------------------------------------
Wed Dec 8 01:49:47 UTC 2021 - Tranter Madi <trmdi@yandex.com>

10
fcitx5.service Normal file
View File

@ -0,0 +1,10 @@
[Unit]
Description=Next generation of Flexible Input Method Framework
Conflicts=ibus.service fcitx.service
[Service]
ExecStart=/usr/bin/fcitx5 -D
[Install]
Alias=input-method.service
WantedBy=default.target

View File

@ -32,6 +32,9 @@ Source2: https://raw.githubusercontent.com/fcitx/fcitx-artwork/master/log
Source3: xim.d-fcitx5
Source4: macros.fcitx5
Source99: baselibs.conf
Source100: input-method.py3
Source101: 99-fcitx5.conf
Source102: fcitx5.service
Patch0: fcitx5-no-download.patch
Patch1: fcitx5-gcc7.patch
BuildRequires: Mesa-libEGL-devel
@ -71,13 +74,6 @@ BuildRequires: xkeyboard-config
%if 0%{?suse_version} <= 1520
BuildRequires: appstream-glib-devel
%endif
Requires: libFcitx5Config6 = %{version}
Requires: libFcitx5Core7 = %{version}
Requires: libFcitx5Utils2 = %{version}
Recommends: fcitx5-gtk2
Recommends: fcitx5-gtk3
Recommends: fcitx5-qt4
Recommends: fcitx5-qt5
Provides: fcitx = %{version}
Obsoletes: fcitx <= 4.2.9.8
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150200 && 0%{?is_opensuse}
@ -85,6 +81,7 @@ BuildRequires: rsvg-convert
%else
BuildRequires: rsvg-view
%endif
%systemd_requires
%description
Fcitx 5 is a generic input method framework.
@ -102,8 +99,8 @@ This package provides development files for fcitx5.
%package -n libFcitx5Config6
Summary: Configuration library for fcitx5
Group: System/Libraries
Provides: libFcitx5Core5 = %{version}
Obsoletes: libFcitx5Core5 < %{version}
Provides: libFcitx5Config5 = %{version}
Obsoletes: libFcitx5Config5 < %{version}
%description -n libFcitx5Config6
This package provides configuration libraries for fcitx5.
@ -150,7 +147,7 @@ ln -sf %{_datadir}/applications/org.fcitx.Fcitx5.desktop %{buildroot}%{_sysconfd
# create autostart
mkdir -p %{buildroot}%{_distconfdir}/X11/xim.d/
install -m 644 %{SOURCE3} %{buildroot}%{_distconfdir}/X11/xim.d/fcitx
install -m 644 %{SOURCE3} %{buildroot}%{_distconfdir}/X11/xim.d/fcitx5
priority=30
pushd %{buildroot}%{_distconfdir}/X11/xim.d/
@ -159,11 +156,16 @@ pushd %{buildroot}%{_distconfdir}/X11/xim.d/
de fr it es nl cs pl da nn nb fi en sv ; do
mkdir $lang
pushd $lang
ln -s ../fcitx $priority-fcitx
ln -s ../fcitx5 $priority-fcitx5
popd
done
popd
# install environment generator for wayland
install -D -m 0755 %{SOURCE100} %{buildroot}%{_systemd_user_env_generator_dir}/99-fcitx5.py3
install -D -m 0644 %{SOURCE101} %{buildroot}%{_environmentdir}/99-fcitx5.conf
install -D -m 0644 %{SOURCE102} %{buildroot}%{_userunitdir}/fcitx5.service
# install icons
for i in 16 22 24 32 48 512; do
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/${i}x${i}/apps/
@ -185,6 +187,10 @@ install -Dm 0644 %{SOURCE4} %{buildroot}%{_sysconfdir}/rpm/macros.fcitx5
%find_lang fcitx5
%fdupes %{buildroot}
%systemd_user_pre fcitx5.service
%systemd_user_post fcitx5.service
%systemd_user_preun fcitx5.service
%systemd_user_postun fcitx5.service
%post -p /sbin/ldconfig
%post -n libFcitx5Config6 -p /sbin/ldconfig
%post -n libFcitx5Core7 -p /sbin/ldconfig
@ -197,6 +203,8 @@ install -Dm 0644 %{SOURCE4} %{buildroot}%{_sysconfdir}/rpm/macros.fcitx5
%files -f fcitx5.lang
%doc README.md
%license LICENSES
%dir %{_systemd_user_env_generator_dir}
%dir %{_environmentdir}
%{_distconfdir}/X11/xim.d/
%{_sysconfdir}/xdg/autostart/org.fcitx.Fcitx5.desktop
%{_bindir}/fcitx5
@ -204,6 +212,9 @@ install -Dm 0644 %{SOURCE4} %{buildroot}%{_sysconfdir}/rpm/macros.fcitx5
%{_bindir}/fcitx5-remote
%{_bindir}/fcitx5-diagnose
%{_libdir}/fcitx5
%{_systemd_user_env_generator_dir}/99-fcitx5.py3
%{_environmentdir}/99-fcitx5.conf
%{_userunitdir}/fcitx5.service
%{_datadir}/applications/org.fcitx.Fcitx5.desktop
%{_datadir}/applications/fcitx5-configtool.desktop
%{_datadir}/fcitx5

37
input-method.py3 Normal file
View File

@ -0,0 +1,37 @@
#!/usr/bin/env python3
from os import listdir
from os.path import isdir, isfile, join
def get_input_methods():
mypath = "/etc/X11/xim.d/en"
files = []
if isdir(mypath):
files = [f for f in listdir(mypath) if isfile(join(mypath, f))]
if not files:
mypath = "/usr/etc/X11/xim.d/en"
if isdir(mypath):
files = [f for f in listdir(mypath) if isfile(join(mypath, f))]
return files
def get_current_input_method():
i = 0
j = 0
s = ""
m = get_input_methods()
if not m:
return s
for im in m:
arr = im.split('-')
if j == 0:
i = arr[0]
s = arr[1]
j+=1
continue
if int(arr[0]) < i:
i = arr[0]
s = arr[1]
j+=1
return s
print("INPUT_METHOD={}".format(get_current_input_method()))