Hello community, here is the log from the commit of package ibus.3686 for openSUSE:13.2:Update checked in at 2015-04-15 12:59:33 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:13.2:Update/ibus.3686 (Old) and /work/SRC/openSUSE:13.2:Update/.ibus.3686.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ibus.3686" Changes: -------- New Changes file: --- /dev/null 2015-03-12 01:14:30.992027505 +0100 +++ /work/SRC/openSUSE:13.2:Update/.ibus.3686.new/ibus.changes 2015-04-15 12:59:35.000000000 +0200 @@ -0,0 +1,594 @@ +------------------------------------------------------------------- +Sat Mar 28 09:30:59 UTC 2015 - [email protected] + +- Fix boo#924696: settings of ibus engines are not saved + * Remove inappropriate %ghost from the dconf files + +------------------------------------------------------------------- +Sat Jan 24 14:44:45 UTC 2015 - [email protected] + +- modify xim.d-ibus-121: remove obsolete 'PATH=$OLD_PATH' which + causes loss of the PATH variable when sourced + +------------------------------------------------------------------- +Mon Oct 13 09:18:34 UTC 2014 - [email protected] + +- use desktop file categories Settings;DesktopSettings instead of + System + +------------------------------------------------------------------- +Wed Oct 8 14:01:39 UTC 2014 - [email protected] + +- Add im-engines-precede-xkb.patch + * allow users to use an IM engine without any operation +- Update the launch script + * remove the obsolete part for SKIM (bnc#860486) + * do not set OOO_FORCE_DESKTOP=gnome + if libreoffice-gnome is not installed (bnc#899045) + +------------------------------------------------------------------- +Mon Sep 8 16:39:26 UTC 2014 - [email protected] + +- Do not suggest to install ibus when installing + libreoffice/libreoffice-gnome on SLE12. + +------------------------------------------------------------------- +Fri Sep 5 18:32:14 UTC 2014 - [email protected] + +- properly disable python3 builds: + * ibus itself isn't python3 ready, its python module is totally + not usable under python3. +- move some Obsoletes to the correct sub-package. + +------------------------------------------------------------------- +Sun Aug 31 13:13:17 UTC 2014 - [email protected] + +- Fix bnc#893271. Keep python-ibus. + +------------------------------------------------------------------- +Sat Aug 30 17:45:15 UTC 2014 - [email protected] + +- Add patch: ibus-python3-migration.patch + * I didn't do the hard "port", just simple 2to3 tasks. + * it'll remove "blockage" or python3-ibus is totally unusable. + +------------------------------------------------------------------- +Tue Aug 26 08:15:16 UTC 2014 - [email protected] + +- Do not only requires typelib-1_0-Gtk-3_0 when building with + python3. + +------------------------------------------------------------------- +Fri Aug 22 12:49:54 UTC 2014 - [email protected] + +- Update ibus xim script to properly detect GNOME 3.12+ and to use + ibus default configuration on first startup of GNOME (bnc#862589 + internal), with help from Takashi Iwai. + +------------------------------------------------------------------- +Mon Aug 11 15:03:41 CEST 2014 - [email protected] + +- Fix default category for ibus-setup.desktop. + +------------------------------------------------------------------- +Tue Aug 5 08:48:21 UTC 2014 - [email protected] + +- Do not build with python3 or wayland on SLE12. +- Fix file list when building with python2. + +------------------------------------------------------------------- +Thu Jul 31 12:07:24 UTC 2014 - [email protected] + +- remove patches merged by upstream + * add-libgnomekbd-and-load-preload-engines.patch + * reload-preload-engines-until-users-customize-the-list.patch +- obsoletes python-ibus when packaged for Python 3 + +------------------------------------------------------------------- +Sun Jul 27 15:15:28 UTC 2014 - [email protected] + +- fix hillwood's timestamp in changelog +- add two more macros to macros.ibus + +------------------------------------------------------------------- +Sat Jul 26 18:01:19 UTC 2014 - [email protected] + +- update version 1.5.8 + * Set max-width-chars property in ibus-setup wrapped GtkLabel + * Add German (nodeadkeys) keymap in simple.xml + * Delete Korean keymap + * Let ibus-ui-gtk3 not to show zero-lenght preedit text + * Fix many memory leaks provided by Christophe Fergeau + * Add Polish (qwertz) keymap in simple.xml + * Fix escape key with Ctrl+Shift+U ISO + * Update ibuscomposetable.h for pt-br + * Set up ibus engines when users log into the session for the first time + * Do not sort ibus engines when they are saved by ibus-setup + * Update IBusKeymap jp + * Run xmodmap after run setxkbmap -l layout + * Add ibus reset-config and read-config sub-commands + * Fix ibus-setup SEGV in enginetreeview.py + * Fix deprecated warnings with python3-gobject 3.13.3 + * Export the 'IBUS_SETUP_XID' environment variable for each engine setup + * Fix deprecated gtk3 GtkMisc, GtkAlignment and vala Gdk.X11Display + * Enhance UI to add engines on ibus-setup +- mask add-libgnomekbd-and-load-preload-engines.patch and + reload-preload-engines-until-users-customize-the-list.patch + * upstream may have fixed these issues as these patches are issued + on May 7th. +- use python3 to build ibus, as hillwood switched ibus-table to python3 + * add ibus-force-python3.patch, because ibus will use python3 to build + ibus-setup and bindings only when PYTHON2 variable is empty. And fix + 'print sysconfig.PREFIX' syntax errors in python-config.py. +- add ibus-vala-0.18.patch to fix build for openSUSE 12.3 + +------------------------------------------------------------------- +Sat Jul 26 17:32:07 UTC 2014 - [email protected] + +- clean specfile with service and spec-cleaner + * don't use vague wildcards aggresively in %%files section +- add macros.ibus to ease packaging + +------------------------------------------------------------------- +Thu Jul 26 12:24:17 UTC 2014 - [email protected] + +- Enable wayland support + +------------------------------------------------------------------- +Thu Jun 5 12:06:53 UTC 2014 - [email protected] + +- Update to 1.5.7 + * Add Czech (qwerty) keymap + * Enables to get current input context from panels + * Fix leakage in ibus_get_local_machine_id() + * Do not show Property Panel by default + * Focus-in events do not move Property Panel + if the panel is configured to be always shown + +------------------------------------------------------------------- +Tue May 20 15:28:40 CEST 2014 - [email protected] + +- Fix the lost XIM input after GNOME screen lock (bnc#874969): + ibus-xim-fix-re-focus-after-lock.patch + +------------------------------------------------------------------- +Wed May 14 08:04:18 UTC 2014 - [email protected] + +- Let GNOME 3 handles ibus startup&setup. (bnc#873016) + * Changed xim.d-ibus-121. + * Reformatting the latter part of the xim.d-ibus-121. + +------------------------------------------------------------------- +Mon Mar 17 15:37:25 UTC 2014 - [email protected] + +- Update to 1.5.6 + * Support python3 (not enabled for this package) + * Fix Property Panel is sometimes not shown when the focus is changed + * Let Property Panel not to follow cursor if it is always shown + * Fix a build error of Gdk.EventKey with vala 0.23.2 + * Use XKB layout strings instead of the ibus-keyboard icon on the panel +- Update reload-preload-engines-until-users-customize-the-list.patch +- Update ibus-python-install-dir.patch + * modify Python 2 path in configure.ac instead of Makefile.am +- Refresh add-libgnomekbd-and-load-preload-engines.patch + +------------------------------------------------------------------- +Mon Mar 17 12:29:40 UTC 2014 - [email protected] + +- Clean-up dependencies: add librsvg2 (needed by ibus), dropped + notification-daemon, python-gtk, python-notify (not needed with + switch to pygobject), typelib-1_0-Gtk-2_0, typelib-1_0-Gtk-3_0 + (no need to hardcode, bnc#868657) + +------------------------------------------------------------------- +Fri Feb 14 12:10:13 CET 2014 - [email protected] + +- Fix *-32bit post and postun calls for gtk-query-immodules-2 on + openSUSE 13.1 and later (bnc#845860) + +------------------------------------------------------------------- +Mon Feb 10 09:48:56 UTC 2014 - [email protected] + +- Do not requires gobject-introspection, it is not needed to run + ibus, python-gobject is enough. + +------------------------------------------------------------------- +Mon Jan 27 16:49:27 UTC 2014 - [email protected] + ++++ 397 more lines (skipped) ++++ between /dev/null ++++ and /work/SRC/openSUSE:13.2:Update/.ibus.3686.new/ibus.changes New: ---- README.SUSE baselibs.conf ibus-1.5.8.tar.gz ibus-force-python3.patch ibus-python-install-dir.patch ibus-python3-migration.patch ibus-vala-0.18.patch ibus-xim-fix-re-focus-after-lock.patch ibus.changes ibus.spec im-engines-precede-xkb.patch kde-12.2.tar.gz kde.tar.gz macros.ibus show-input-mode-icon.patch xim.d-ibus-121 xim.ibus.suse.template ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ibus.spec ++++++ # # spec file for package ibus # # Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # %define gtk_binary_version %(pkg-config --variable=gtk_binary_version gtk+-2.0) %if 0%{?suse_version} == 1315 %define with_python3 0 %else # temporary disable, 'coz ibus is not python3 ready %define with_python3 0 %endif %if 0%{?suse_version} > 1315 %define with_wayland 1 %else %define with_wayland 0 %endif Name: ibus Version: 1.5.8 Release: 0 Summary: Intelligent Input Bus for Linux OS License: LGPL-2.1+ Group: System/I18n/Chinese Url: https://github.com/ibus/ #Source: https://github.com/ibus/ibus/releases/download/%{version}/%{name}-%{version}.tar.gz Source: %{name}-%{version}.tar.gz Source2: README.SUSE Source3: xim.ibus.suse.template Source4: xim.d-ibus-121 Source5: kde.tar.gz Source6: kde-12.2.tar.gz Source7: macros.ibus Source99: baselibs.conf # PATCH-FIX-OPENSUSE ibus-python-install-dir.patch [email protected] Patch0: ibus-python-install-dir.patch # PATCH-FIX-OPENSUSE reload-preload-engines-until-users-customize-the-list.patch [email protected] Patch3: show-input-mode-icon.patch # PATFH-FIX-SUSE ibus-xim-fix-re-focus-after-lock.patch bnc#874869 [email protected] -- Fix lost XIM input after screenlock Patch4: ibus-xim-fix-re-focus-after-lock.patch # PATCH-FIX-UPSTREAM [email protected] # Ibus will use python3 only when variable PYTHON2 is empty. # Thus ibus-setup and bindings are still bytecompiled with python2. # Then python3 support is useless, so we force python3 when python3 # is enabled, and fix syntax errors in python-config.py Patch5: ibus-force-python3.patch # PATCH-FIX-UPSTREAM [email protected] # lower vala version Patch6: ibus-vala-0.18.patch # PATCH-FIX-UPSTREAM [email protected] Patch7: ibus-python3-migration.patch # PATCH-FIX-UPSTREAM [email protected] # Select an IM engine at the first login Patch8: im-engines-precede-xkb.patch BuildRequires: dbus-1-glib-devel BuildRequires: dbus-1-python-devel >= 0.83.0 BuildRequires: dconf-devel >= 0.7.5 BuildRequires: fdupes BuildRequires: gconf2-devel BuildRequires: gettext-devel BuildRequires: glib2-devel >= 2.26.0 BuildRequires: gobject-introspection-devel >= 0.9.6 BuildRequires: gtk-doc >= 1.9 BuildRequires: gtk2-devel BuildRequires: intltool BuildRequires: iso-codes-devel BuildRequires: libnotify-devel >= 0.7 BuildRequires: libtool # directory ownership { BuildRequires: oxygen-icon-theme BuildRequires: oxygen-icon-theme-scalable BuildRequires: x11-tools # } BuildRequires: pkg-config %if %{with_python3} BuildRequires: python3 BuildRequires: python3-gobject2-devel Requires: python3-gobject2 %else BuildRequires: python BuildRequires: python-gobject-devel Requires: python-gobject %endif BuildRequires: update-desktop-files BuildRequires: pkgconfig(vapigen) %if %{with_wayland} BuildRequires: pkgconfig(wayland-client) >= 1.2.0 %endif BuildRequires: pkgconfig(xkbcommon) Requires: dbus-1-python Requires: dconf Requires: iso-codes Requires: libibus-1_0-5 = %{version} # ibus-setup will require typelib(Gdk) typelib(GdkX11), typelib(Gtk) # which are provided by two packages in openSUSE, so we limit their # versions to 3.0 only. Requires: typelib-1_0-Gtk-3_0 Recommends: %{name}-lang #Fix cursor following problem in KDE4 for libreoffice. %if 0%{?suse_version} != 1315 Supplements: packageand(libreoffice:libreoffice-gnome) %endif Provides: locale(ja;ko;zh) Obsoletes: ibus-gnome-shell BuildRoot: %{_tmppath}/%{name}-%{version}-build %description IBus means Intelligent Input Bus. It is a new input framework for Linux OS. It provides full featured and user friendly input method user interface. It also may help developers to develop input method easily. %package -n libibus-1_0-5 Summary: IBus libraries Group: System/I18n/Chinese Obsoletes: libibus-1_0-0 %description -n libibus-1_0-5 This package contains the libraries for IBus %package -n typelib-1_0-IBus-1_0 Summary: IBus libraries -- Introspection bindings Group: System/I18n/Chinese %description -n typelib-1_0-IBus-1_0 This package contains the introspection bindings for the IBus library. %package gtk Summary: IBus im module for gtk2 Group: System/I18n/Chinese Requires: %{name} = %{version} Supplements: packageand(ibus:gtk2) %{gtk2_immodule_requires} %description gtk This package contains ibus im module for gtk2 %package gtk3 Summary: IBus im module for gtk3 Group: System/I18n/Chinese BuildRequires: gtk3-devel Requires: %{name} = %{version} Supplements: packageand(ibus:gtk3) %{gtk3_immodule_requires} %description gtk3 This package contains ibus im module for gtk3 %if %{with_python3} %package -n python3-ibus Summary: Python3 module for ibus Group: System/I18n/Chinese Requires: %{name} = %{version} Requires: python3 Obsoletes: python-ibus %description -n python3-ibus This package contains python3 module for ibus %else %package -n python-ibus Summary: Python module for ibus Group: System/I18n/Chinese Requires: %{name} = %{version} %py_requires %description -n python-ibus This package contains python module for ibus %endif %package branding-openSUSE-KDE Summary: openSUSE branding for KDE Group: System/GUI/KDE Requires: ibus = %{version} Supplements: packageand(ibus:branding-openSUSE-KDE) Supplements: packageand(ibus:kdelibs4) Provides: ibus-branding = %{version} Conflicts: otherproviders(ibus-branding) %if 0%{?suse_version} >= 1140 BuildArch: noarch %endif %description branding-openSUSE-KDE openSUSE branding for KDE monochrome icons in systray. %package devel Summary: Development tools for ibus Group: Development/Libraries/Other Requires: dbus-1-devel Requires: glib2-devel Requires: gtk-doc Requires: ibus = %{version} Requires: libibus-1_0-5 = %{version} Requires: typelib-1_0-IBus-1_0 = %{version} %description devel The ibus-devel package contains the header files and developer docs for ibus. %lang_package %prep %setup -q %patch0 -p1 # hack to fix incompatibility of gtk-query-immodules-2.0 (bnc#845860) %if 0%{?suse_version} < 1310 %patch6 -p1 sed -i \ -e's@\(gtk-query-immodules-2.0-64\) --update-cache@\1 > <prefix>%{_sysconfdir}/gtk-2.0/gtk64.immodules@g' \ -e's@\(gtk-query-immodules-2.0\) --update-cache@\1 > <prefix>%{_sysconfdir}/gtk-2.0/gtk.immodules@g' \ %{SOURCE99} %endif %patch3 -p1 %patch4 -p1 %if %{with_python3} %patch5 -p1 %patch7 -p1 %endif %patch8 -p1 cp -r %{SOURCE2} . cp -r %{SOURCE3} . %build autoreconf -fi intltoolize -f %configure --disable-static \ --enable-gtk3 \ --enable-vala \ %if %{with_python3} --with-python=python3 \ %endif --enable-python-library \ --enable-introspection \ --disable-gconf \ --enable-dconf \ --enable-gtk-doc \ %if %{with_wayland} --enable-wayland \ %endif --enable-surrounding-text \ --libexecdir=%{_libdir}/ibus make %{?_smp_mflags} %install make DESTDIR=%{buildroot} install %{?_smp_mflags} # autostart mkdir -p %{buildroot}%{_sysconfdir}/X11/xim.d/ install -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/X11/xim.d/ibus sed -i 1i"SYS_LIB=%{_lib}" %{buildroot}%{_sysconfdir}/X11/xim.d/ibus PRIORITY=40 pushd %{buildroot}%{_sysconfdir}/X11/xim.d/ for lang in am ar as bn el fa gu he hi hr ja ka kk kn ko lo ml my \ pa ru sk vi zh_TW zh_CN zh_HK zh_SG \ de fr it es nl cs pl da nn nb fi en sv do mkdir $lang pushd $lang ln -s ../ibus $PRIORITY-ibus popd done popd # remove static libs find %{buildroot}/%{_libdir} -name "*.la" -type f -delete -print mkdir -p %{buildroot}%{_datadir}/pixmaps ln -sf %{_datadir}/icons/hicolor/48x48/apps/ibus-keyboard.png \ %{buildroot}%{_datadir}/pixmaps/ibus-keyboard.png # touch for %%ghost touch %{buildroot}/%{_sysconfdir}/dconf/db/ibus # fix kde monochrome icons %if 0%{?suse_version} >= 1230 cp -r %{SOURCE5} ./ %else cp -r %{SOURCE6} ./ mv kde-12.2.tar.gz kde.tar.gz %endif tar -xzf kde.tar.gz pushd kde for i in 16 22 24 32 48 ; do mkdir -p %{buildroot}%{_datadir}/icons/oxygen/${i}x${i}/apps/ cp -r ibus-keyboard.${i}x${i}.png %{buildroot}%{_datadir}/icons/oxygen/${i}x${i}/apps/ibus-keyboard.png done mkdir -p %{buildroot}%{_datadir}/icons/oxygen/scalable/apps/ cp -r ibus-keyboard.svgz %{buildroot}%{_datadir}/icons/oxygen/scalable/apps/ popd # install macros mkdir -p %{buildroot}%{_sysconfdir}/rpm install -m 644 %{SOURCE7} %{buildroot}%{_sysconfdir}/rpm %suse_update_desktop_file -r %{name}-setup Settings DesktopSettings X-SuSE-Core-System %fdupes %{buildroot} %find_lang ibus10 %{?no_lang_C} %post %{glib2_gsettings_schema_post} %posttrans dconf update %postun %{glib2_gsettings_schema_postun} dconf update %post gtk %{gtk2_immodule_post} %postun gtk %{gtk2_immodule_postun} %post -n libibus-1_0-5 -p /sbin/ldconfig %postun -n libibus-1_0-5 -p /sbin/ldconfig %post gtk3 %{gtk3_immodule_post} %postun gtk3 %{gtk3_immodule_postun} %files %defattr(-,root,root) %doc AUTHORS COPYING README README.SUSE xim.ibus.suse.template %config %{_sysconfdir}/rpm/macros.ibus %config %{_sysconfdir}/X11/xim.d/* %{_bindir}/ibus %{_bindir}/ibus-daemon %{_bindir}/ibus-setup %{_datadir}/ibus/ %{_datadir}/applications/ibus-setup.desktop %{_datadir}/GConf/gsettings/ibus.convert %{_datadir}/glib-2.0/schemas/org.freedesktop.ibus.gschema.xml %{_datadir}/icons/hicolor/*/apps/ibus*.* %{_datadir}/pixmaps/ibus-keyboard.png %{_libdir}/ibus %{_datadir}/bash-completion/completions/ibus.bash # This file is generated by dconf update %ghost %{_sysconfdir}/dconf/db/ibus %dir %{_sysconfdir}/dconf/db/ibus.d # This file is not a config file. Users may not modify it. %{_sysconfdir}/dconf/db/ibus.d/00-upstream-settings %{_sysconfdir}/dconf/profile/ibus %{_mandir}/man1/ibus.1.gz %{_mandir}/man1/ibus-daemon.1.gz %{_mandir}/man1/ibus-setup.1.gz %files lang -f ibus10.lang %defattr(-,root,root) %files -n libibus-1_0-5 %defattr(-,root,root) %{_libdir}/libibus-1.0.so.* %files -n typelib-1_0-IBus-1_0 %defattr(-,root,root) %{_libdir}/girepository-1.0/IBus-1.0.typelib %files gtk %defattr(-,root,root) %{_libdir}/gtk-2.0/%{gtk_binary_version}/immodules/im-ibus.so %files gtk3 %defattr(-,root,root) %{_libdir}/gtk-3.0/3.0.0/immodules/im-ibus.so %if %{with_python3} %files -n python3-ibus %defattr(-,root,root) %{python3_sitearch}/ibus %else %files -n python-ibus %defattr(-,root,root) %{python_sitearch}/ibus %{python_sitearch}/gi/overrides/* %endif %files devel %defattr(-,root,root) %{_libdir}/libibus-1.0.so %{_includedir}/ibus-1.0 %{_datadir}/gtk-doc/html/ibus %{_libdir}/pkgconfig/ibus-1.0.pc %{_datadir}/gir-1.0/IBus-1.0.gir %{_datadir}/vala/vapi/ibus-1.0.deps %{_datadir}/vala/vapi/ibus-1.0.vapi %files branding-openSUSE-KDE %defattr(-,root,root) %dir %{_datadir}/icons/oxygen/24x24 %dir %{_datadir}/icons/oxygen/24x24/apps %{_datadir}/icons/oxygen/*/apps/ibus-keyboard.* %changelog ++++++ README.SUSE ++++++ ibus README for SuSE How to start using ibus English: 0:Note: ibus don't support QT3 immodule, If you use qt3-base applications, modify your /etc/X11/xim.d/ibus to export QT_IM_MODULE=xim 1.openSUSE can start ibus automatically when your locale is set to en, zh_TW, zh_CN, zh_HK, zh_SG, ko_KR and ja_JP. The setup script is a link in /etc/X11/xim.d/YOUR-LOCALE/40-ibus which link to /etc/X11/xim.d/ibus. The number "40" makes ibus have priority over other input-method (e.g 50-scim or 90-xcin ). If you prefer not using ibus, mv 40-ibus to 80-ibus (for example). Or see 2. 2.If for some reason can't start ibus when login Xwindow There is another input-method who has higher priority then ibus (e.g 10-oxim) You can edit ~/.xim, see ~/.xim.template for more informations. Or edit ~/.profile, add export INPUT_METHOD="ibus" After installing ibus, there's a template for ibus: /usr/share/doc/packages/ibus/xim.ibus.suse.template copy this file to ~/.xim, then you can use ibus next login X. 3.You want to use your own input-method other than system setting (1)System setting: Edit /etc/sysconfig/language , set INPUT_METHOD="scim-bridge", or whatever you want,Make sure your start-up script is put in /etc/X11/xim.d/ with same name ypu mention. (2)For specific language setting: Link a start-up script in /etc/X11/xim.d/ to your locale with a higher priority (smaller number), eg ln -s /etc/X11/xim.d/scim-bridge /etc/X11/xim.d/zh_TW/20-scim-bridge (3)Personal setting: Edit ~/.profile add export INPUT_METHOD="scim-bridge" or whatever script in /etc/X11/xim.d/ or white your own ~/.xim, see ~/.xim.template for more informations. 4.Bug report or any suggestion to http://code.google.com/p/ibus/ Chinese: 0:注意:ibus 不支援 QT3 immodule, 若您使用 qt3-based 應用程式,請修改 /etc/X11/xim.d/ibus 設定 export QT_IM_MODULE=xim 1.當您使用的語系是en 或zh_*時,SuSE 會自動啟動ibus 啟動的script是/etc/X11/xim.d/YOUR-LOCALE/40-ibus,這是一個到上層目錄ibus的連結 "40"這個數字使他的優先順序高於90-xcin及50-scim 如果您不喜歡這個順序,修改連結的名稱為(例如:80-ibus),或參考2. 2.重新登入X後,如果不能用ibus...可能是: 有別的輸入法的優先順序高於ibus(例如:10-oxim) 您可以編輯~/.xim,請參考~/.xim.template 安裝ibus後,會有一個範本:/usr/share/doc/packages/ibus/xim.ibus.suse.template 將這個檔案複製到您的~/.xim,當您下次登入X時就可以使用ibus了 或編輯~/.profile,加入 export INPUT_METHOD="ibus" 3.如果您想要自己選擇輸入法而非使用系統設定 (1)全系統設定: 編輯 /etc/sysconfig/language, 設定 INPUT_METHOD="ibus" 或其他你想用的輸入法, 請注意你的啟動程序必須位於 /etc/X11/xim.d/,並和您指定的名稱相同 (2)針對特定語言: 將您的啟動程序連結到你的語系中,並前置較高的優先順序(較小數字),例如 ln -s /etc/X11/xim.d/ibus /etc/X11/xim.d/zh_TW/20-ibus (3)個人設定: 編輯 ~/.profile 加入 export INPUT_METHOD="ibus" 或其他在 /etc/X11/xim.d/ 的啟動程序 或自行編寫啟動程序 ~/.xim,請參考 ~/.xim.template 5.臭蟲回報或建議請至 http://code.google.com/p/ibus/ ++++++ baselibs.conf ++++++ ibus-gtk post "%if "%_lib" == "lib64"" post "<prefix>%{_bindir}/gtk-query-immodules-2.0-64 --update-cache" post "%else" post "<prefix>%{_bindir}/gtk-query-immodules-2.0 --update-cache" post "%endif" postun "%if "%_lib" == "lib64"" postun "<prefix>%{_bindir}/gtk-query-immodules-2.0-64 --update-cache" postun "%else" postun "<prefix>%{_bindir}/gtk-query-immodules-2.0 --update-cache" postun "%endif" supplements "packageand(ibus:gtk2-<targettype>)" ibus-gtk3 post "%if "%_lib" == "lib64"" post "<prefix>%{_bindir}/gtk-query-immodules-3.0-64 --update-cache" post "%else" post "<prefix>%{_bindir}/gtk-query-immodules-3.0 --update-cache" post "%endif" postun "%if "%_lib" == "lib64"" postun "<prefix>%{_bindir}/gtk-query-immodules-3.0-64 --update-cache" postun "%else" postun "<prefix>%{_bindir}/gtk-query-immodules-3.0 --update-cache" postun "%endif" supplements "packageand(ibus:gtk3-<targettype>)" libibus-1_0-5 obsoletes "libibus2-<targettype> < <version>" ++++++ ibus-force-python3.patch ++++++ Index: ibus-1.5.8/configure.ac =================================================================== --- ibus-1.5.8.orig/configure.ac +++ ibus-1.5.8/configure.ac @@ -379,9 +379,9 @@ AC_ARG_WITH(python, AM_PATH_PYTHON([2.5]) AC_PATH_PROG(PYTHON2, python2) -if test x"$PYTHON2" = x""; then +#if test x"$PYTHON2" = x""; then PYTHON2=$PYTHON -fi +#fi PYGOBJECT_REQUIRED=3.0.0 Index: ibus-1.5.8/python-config.py =================================================================== --- ibus-1.5.8.orig/python-config.py +++ ibus-1.5.8/python-config.py @@ -1,5 +1,3 @@ -#!/usr/bin/python2.5 - import sys import os import getopt @@ -30,10 +28,10 @@ if opt == '--help': exit_with_usage(0) elif opt == '--prefix': - print sysconfig.PREFIX + print(sysconfig.PREFIX) elif opt == '--exec-prefix': - print sysconfig.EXEC_PREFIX + print(sysconfig.EXEC_PREFIX) elif opt in ('--includes', '--cflags'): flags = ['-I' + sysconfig.get_python_inc(), ++++++ ibus-python-install-dir.patch ++++++ diff --git a/configure.ac b/configure.ac index 9a502ec..42aaadf 100644 --- a/configure.ac +++ b/configure.ac @@ -420,7 +420,7 @@ if test x"$enable_python_library" = x"yes"; then PYTHON2_PREFIX=`$PYTHON2 -c "import sys; sys.stdout.write(sys.prefix)"` PYTHON2_VERSION=`$PYTHON2 -c "import sys; sys.stdout.write(sys.version[[:3]])"` - PYTHON2_LIBDIR="$PYTHON2_PREFIX/lib/python$PYTHON2_VERSION" + PYTHON2_LIBDIR="$libdir/python$PYTHON2_VERSION" python2dir="$PYTHON2_LIBDIR/site-packages" pkgpython2dir="$python2dir/ibus" AC_SUBST(pkgpython2dir) ++++++ ibus-python3-migration.patch ++++++ diff -urN ibus-1.5.8/ibus/attribute.py ibus-1.5.8.py3/ibus/attribute.py --- ibus-1.5.8/ibus/attribute.py 2014-07-24 12:24:25.000000000 +0800 +++ ibus-1.5.8.py3/ibus/attribute.py 2014-08-31 01:37:40.226988785 +0800 @@ -38,8 +38,8 @@ ) import dbus -from exception import IBusException -from serializable import * +from ibus.exception import IBusException +from ibus.serializable import * ATTR_TYPE_UNDERLINE = 1 ATTR_TYPE_FOREGROUND = 2 diff -urN ibus-1.5.8/ibus/bus.py ibus-1.5.8.py3/ibus/bus.py --- ibus-1.5.8/ibus/bus.py 2014-07-24 12:24:25.000000000 +0800 +++ ibus-1.5.8.py3/ibus/bus.py 2014-08-31 01:37:40.231988723 +0800 @@ -29,10 +29,10 @@ import dbus.connection import dbus.mainloop.glib import gobject -import common -import object -import serializable -import config +from ibus import common +from ibus import object +from ibus import serializable +from ibus import config dbus.mainloop.glib.DBusGMainLoop(set_as_default = True) @@ -74,9 +74,9 @@ def __filter_cb(self, conn, message): if message.get_type() == 4: - print "Signal %s" % message.get_member() - print " sender = %s" % message.get_sender() - print " path = %s" % message.get_path() + print("Signal %s" % message.get_member()) + print(" sender = %s" % message.get_sender()) + print(" path = %s" % message.get_path()) return dbus.lowlevel.HANDLER_RESULT_NOT_YET_HANDLED def __dbusconn_disconnected_cb(self, dbusconn): @@ -188,19 +188,19 @@ mainloop = glib.MainLoop() def __disconnected_cb(*args): - print "Disconnected", args + print("Disconnected", args) mainloop.quit() b = Bus() b.connect("disconnected", __disconnected_cb) - print "unique_name =", b.get_name() + print("unique_name =", b.get_name()) for i in b.list_factories(): - print i.name + print(i.name) mainloop.run() - print "Exit" + print("Exit") if __name__ == "__main__": diff -urN ibus-1.5.8/ibus/common.py ibus-1.5.8.py3/ibus/common.py --- ibus-1.5.8/ibus/common.py 2014-07-24 12:24:25.000000000 +0800 +++ ibus-1.5.8.py3/ibus/common.py 2014-08-31 01:37:40.231988723 +0800 @@ -59,7 +59,7 @@ import sys #from xdg import BaseDirectory import ctypes -import _config +from ibus import _config # __display = os.environ["DISPLAY"] # __hostname, __display_screen = __display.split(":", 1) diff -urN ibus-1.5.8/ibus/component.py ibus-1.5.8.py3/ibus/component.py --- ibus-1.5.8/ibus/component.py 2014-07-24 12:24:25.000000000 +0800 +++ ibus-1.5.8.py3/ibus/component.py 2014-08-31 01:37:40.228988760 +0800 @@ -25,10 +25,10 @@ ) import dbus -from exception import IBusException -from serializable import * -from enginedesc import * -from observedpath import * +from ibus.exception import IBusException +from ibus.serializable import * +from ibus.enginedesc import * +from ibus.observedpath import * class Component(Serializable): __gtype_name__ = "PYIBusComponent" diff -urN ibus-1.5.8/ibus/config.py ibus-1.5.8.py3/ibus/config.py --- ibus-1.5.8/ibus/config.py 2014-07-24 12:24:25.000000000 +0800 +++ ibus-1.5.8.py3/ibus/config.py 2014-08-31 01:37:40.228988760 +0800 @@ -30,8 +30,8 @@ IBUS_PATH_CONFIG = "/org/freedesktop/IBus/Config" import gobject -import object -import interface +from ibus import object +from ibus import interface import dbus from dbus.proxies import ProxyObject diff -urN ibus-1.5.8/ibus/_config.py.in ibus-1.5.8.py3/ibus/_config.py.in --- ibus-1.5.8/ibus/_config.py.in 2014-07-24 12:24:25.000000000 +0800 +++ ibus-1.5.8.py3/ibus/_config.py.in 2014-08-31 01:37:40.231988723 +0800 @@ -32,10 +32,10 @@ import gettext -_ = lambda a: gettext.dgettext("@GETTEXT_PACKAGE@", a) +_ = lambda a: gettext.dgettext("ibus10", a) def get_version(): - return '@PACKAGE_VERSION@' + return '1.5.8' def get_copyright(): return _('''Copyright (c) 2007-2010 Peng Huang @@ -46,7 +46,7 @@ def get_ICON_KEYBOARD(): import gtk - icon = '@IBUS_ICON_KEYBOARD@' + icon = 'ibus-keyboard' fallback_icon = 'ibus-keyboard' settings = gtk.settings_get_default() if settings.get_property('gtk-icon-theme-name') != 'gnome': @@ -56,5 +56,5 @@ return fallback_icon return icon -LIBIBUS_SONAME='libibus-@[email protected].@LT_CURRENT_MINUS_AGE@' -ISOCODES_PREFIX='@ISOCODES_PREFIX@' +LIBIBUS_SONAME='libibus-1.0.so.5' +ISOCODES_PREFIX='/usr' diff -urN ibus-1.5.8/ibus/enginedesc.py ibus-1.5.8.py3/ibus/enginedesc.py --- ibus-1.5.8/ibus/enginedesc.py 2014-07-24 12:24:25.000000000 +0800 +++ ibus-1.5.8.py3/ibus/enginedesc.py 2014-08-31 01:37:40.231988723 +0800 @@ -25,8 +25,8 @@ ) import dbus -from exception import IBusException -from serializable import * +from ibus.exception import IBusException +from ibus.serializable import * class EngineDesc(Serializable): __gtype_name__ = "PYIBusEngineDesc" diff -urN ibus-1.5.8/ibus/engine.py ibus-1.5.8.py3/ibus/engine.py --- ibus-1.5.8/ibus/engine.py 2014-07-24 12:24:25.000000000 +0800 +++ ibus-1.5.8.py3/ibus/engine.py 2014-08-31 01:37:40.231988723 +0800 @@ -24,11 +24,11 @@ "EngineBase", ) -import common -import object -import serializable -import interface -from text import Text +from ibus import common +from ibus import object +from ibus import serializable +from ibus import interface +from ibus.text import Text class EngineBase(object.Object): def __init__(self, bus, object_path): diff -urN ibus-1.5.8/ibus/factory.py ibus-1.5.8.py3/ibus/factory.py --- ibus-1.5.8/ibus/factory.py 2014-07-24 12:24:25.000000000 +0800 +++ ibus-1.5.8.py3/ibus/factory.py 2014-08-31 01:37:40.228988760 +0800 @@ -25,10 +25,10 @@ "FactoryInfo" ) import dbus -import object -import interface -from serializable import * -from exception import * +from ibus import object +from ibus import interface +from ibus.serializable import * +from ibus.exception import * class EngineFactoryBase(object.Object): def __init__(self, bus): diff -urN ibus-1.5.8/ibus/__init__.py ibus-1.5.8.py3/ibus/__init__.py --- ibus-1.5.8/ibus/__init__.py 2014-07-24 12:24:25.000000000 +0800 +++ ibus-1.5.8.py3/ibus/__init__.py 2014-08-31 01:37:40.228988760 +0800 @@ -24,25 +24,25 @@ warnings.warn("The ibus module is deprecated; " "Please use gobject-introspection instead", DeprecationWarning) -from object import * -from attribute import * -from property import * -from common import * -from interface import * -from exception import * -from lookuptable import * -from bus import * -from inputcontext import * -from lang import * -from utility import * -from engine import * -from factory import * -from panel import * -from notifications import * -from config import * -from serializable import * -from text import * -from observedpath import * -from enginedesc import * -from component import * -from _config import * +from ibus.object import * +from ibus.attribute import * +from ibus.property import * +from ibus.common import * +from ibus.interface import * +from ibus.exception import * +from ibus.lookuptable import * +from ibus.bus import * +from ibus.inputcontext import * +from ibus.lang import * +from ibus.utility import * +from ibus.engine import * +from ibus.factory import * +from ibus.panel import * +from ibus.notifications import * +from ibus.config import * +from ibus.serializable import * +from ibus.text import * +from ibus.observedpath import * +from ibus.enginedesc import * +from ibus.component import * +from ibus._config import * diff -urN ibus-1.5.8/ibus/inputcontext.py ibus-1.5.8.py3/ibus/inputcontext.py --- ibus-1.5.8/ibus/inputcontext.py 2014-07-24 12:24:25.000000000 +0800 +++ ibus-1.5.8.py3/ibus/inputcontext.py 2014-08-31 01:37:40.228988760 +0800 @@ -28,10 +28,10 @@ import gobject import dbus import dbus.lowlevel -import object -import common -import serializable -from text import Text +from ibus import object +from ibus import common +from ibus import serializable +from ibus.text import Text class InputContext(object.Object): __gtype_name__ = "PYIBusInputContext" @@ -286,10 +286,10 @@ super(TestWindow,self).__init__() self.__bus = Bus() - print self.__bus.get_name() + print(self.__bus.get_name()) self.__bus.connect("disconnected", gtk.main_quit) context_path = self.__bus.create_input_context("Test") - print context_path + print(context_path) self.__context = InputContext(self.__bus, context_path) self.__context.set_capabilities (9) @@ -310,22 +310,22 @@ self.show_all() def __commit_text_cb(self, context, text): - print "commit-text:", text.text + print("commit-text:", text.text) def __update_preedit_text_cb(self, context, text, cursor_pos, visible): - print "preedit-text:", text.text, cursor_pos, visible + print("preedit-text:", text.text, cursor_pos, visible) def __show_preedit_text_cb(self, context): - print "show-preedit-text" + print("show-preedit-text") def __hide_preedit_text_cb(self, context): - print "hide-preedit-text" + print("hide-preedit-text") def __update_auxiliary_text_cb(self, context, text, visible): - print "auxiliary-text:", text.text, visible + print("auxiliary-text:", text.text, visible) def __update_lookup_table_cb(self, context, table, visible): - print "update-lookup-table:", visible + print("update-lookup-table:", visible) def __key_press_event_cb(self, widget, event): self.__context.process_key_event(event.keyval, event.state) diff -urN ibus-1.5.8/ibus/interface/__init__.py ibus-1.5.8.py3/ibus/interface/__init__.py --- ibus-1.5.8/ibus/interface/__init__.py 2014-07-24 12:24:25.000000000 +0800 +++ ibus-1.5.8.py3/ibus/interface/__init__.py 2014-08-31 01:37:40.226988785 +0800 @@ -20,10 +20,10 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 # USA -from iibus import * -from iinputcontext import * -from iengine import * -from ienginefactory import * -from ipanel import * -from iconfig import * -from inotifications import * +from ibus.interface.iibus import * +from ibus.interface.iinputcontext import * +from ibus.interface.iengine import * +from ibus.interface.ienginefactory import * +from ibus.interface.ipanel import * +from ibus.interface.iconfig import * +from ibus.interface.inotifications import * diff -urN ibus-1.5.8/ibus/lang.py ibus-1.5.8.py3/ibus/lang.py --- ibus-1.5.8/ibus/lang.py 2014-07-24 12:24:25.000000000 +0800 +++ ibus-1.5.8.py3/ibus/lang.py 2014-08-31 01:37:40.228988760 +0800 @@ -61,18 +61,18 @@ def __load_lang(): import os - import _config + from ibus import _config iso_639_xml = os.path.join(_config.ISOCODES_PREFIX, "share/xml/iso-codes/iso_639.xml") p = xml.parsers.expat.ParserCreate() p.StartElementHandler = __start_element p.EndElementHandler = __end_element p.CharacterDataHandler = __char_data - p.ParseFile(file(iso_639_xml)) + p.ParseFile(open(iso_639_xml,"rb")) __load_lang() if __name__ == "__main__": - print get_language_name("mai") - print get_language_name("zh") - print get_language_name("ja") - print get_language_name("ko") + print(get_language_name("mai")) + print(get_language_name("zh")) + print(get_language_name("ja")) + print(get_language_name("ko")) diff -urN ibus-1.5.8/ibus/lookuptable.py ibus-1.5.8.py3/ibus/lookuptable.py --- ibus-1.5.8/ibus/lookuptable.py 2014-07-24 12:24:25.000000000 +0800 +++ ibus-1.5.8.py3/ibus/lookuptable.py 2014-08-31 01:37:40.231988723 +0800 @@ -25,9 +25,9 @@ ) import dbus -from common import * -from serializable import * -from exception import * +from ibus.common import * +from ibus.serializable import * +from ibus.exception import * class LookupTable(Serializable): __gtype_name__ = "PYIBusLookupTable" diff -urN ibus-1.5.8/ibus/observedpath.py ibus-1.5.8.py3/ibus/observedpath.py --- ibus-1.5.8/ibus/observedpath.py 2014-07-24 12:24:25.000000000 +0800 +++ ibus-1.5.8.py3/ibus/observedpath.py 2014-08-31 01:37:40.228988760 +0800 @@ -25,8 +25,8 @@ ) import dbus -from exception import IBusException -from serializable import * +from ibus.exception import IBusException +from ibus.serializable import * class ObservedPath(Serializable): __gtype_name__ = "PYIBusObservedPath" diff -urN ibus-1.5.8/ibus/panel.py ibus-1.5.8.py3/ibus/panel.py --- ibus-1.5.8/ibus/panel.py 2014-07-24 12:24:25.000000000 +0800 +++ ibus-1.5.8.py3/ibus/panel.py 2014-08-31 01:37:40.232988710 +0800 @@ -33,9 +33,9 @@ IBUS_SERVICE_PANEL = "org.freedesktop.IBus.Panel" IBUS_PATH_PANEL = "/org/freedesktop/IBus/Panel" -from serializable import * -from object import Object -import interface +from ibus.serializable import * +from ibus.object import Object +from ibus import interface import dbus class PanelItem: @@ -268,19 +268,19 @@ self.__bus.request_name(IBUS_SERVICE_PANEL, 0) def focus_in(self, ic): - print "focus-in:", ic + print("focus-in:", ic) context = InputContext(self.__bus, ic) info = context.get_factory_info() - print "factory:", info.name + print("factory:", info.name) def focus_out(self, ic): - print "focus-out:", ic + print("focus-out:", ic) def update_auxiliary_text(self, text, visible): - print "update-auxiliary-text:", text.text + print("update-auxiliary-text:", text.text) def update_lookup_table(self, table, visible): - print "update-lookup-table", table + print("update-lookup-table", table) panel = TestPanel() gtk.main() diff -urN ibus-1.5.8/ibus/property.py ibus-1.5.8.py3/ibus/property.py --- ibus-1.5.8/ibus/property.py 2014-07-24 12:24:25.000000000 +0800 +++ ibus-1.5.8.py3/ibus/property.py 2014-08-31 01:37:40.231988723 +0800 @@ -34,8 +34,8 @@ ) import dbus -from text import Text -from serializable import * +from ibus.text import Text +from ibus.serializable import * PROP_TYPE_NORMAL = 0 PROP_TYPE_TOGGLE = 1 @@ -239,7 +239,7 @@ props.append(Property(u"d")) value = serialize_object(props) props = deserialize_object(value) - print props + print(props) if __name__ == "__main__": test() diff -urN ibus-1.5.8/ibus/serializable.py ibus-1.5.8.py3/ibus/serializable.py --- ibus-1.5.8/ibus/serializable.py 2014-07-24 12:24:25.000000000 +0800 +++ ibus-1.5.8.py3/ibus/serializable.py 2014-08-31 01:37:40.232988710 +0800 @@ -26,7 +26,7 @@ "deserialize_object", ) -from object import Object +from ibus.object import Object import dbus import gobject diff -urN ibus-1.5.8/ibus/text.py ibus-1.5.8.py3/ibus/text.py --- ibus-1.5.8/ibus/text.py 2014-07-24 12:24:25.000000000 +0800 +++ ibus-1.5.8.py3/ibus/text.py 2014-08-31 01:37:40.226988785 +0800 @@ -25,9 +25,9 @@ ) import dbus -from exception import IBusException -from serializable import * -from attribute import AttrList +from ibus.exception import IBusException +from ibus.serializable import * +from ibus.attribute import AttrList class Text(Serializable): __gtype_name__ = "PYIBusText" ++++++ ibus-vala-0.18.patch ++++++ Index: ibus-1.5.8/configure.ac =================================================================== --- ibus-1.5.8.orig/configure.ac +++ ibus-1.5.8/configure.ac @@ -125,7 +125,7 @@ AC_SUBST(DATE_DISPLAY) AC_PROG_CC AM_PROG_CC_C_O AC_PROG_CC_STDC -AM_PROG_VALAC([0.20]) +AM_PROG_VALAC([0.18]) AC_PROG_INSTALL AC_PROG_MAKE_SET ++++++ ibus-xim-fix-re-focus-after-lock.patch ++++++ --- client/x11/main.c | 3 +++ 1 file changed, 3 insertions(+) --- a/client/x11/main.c +++ b/client/x11/main.c @@ -421,6 +421,9 @@ xim_set_ic_focus (XIMS xims, IMChangeFoc GINT_TO_POINTER ((gint) call_data->icid)); g_return_val_if_fail (x11ic != NULL, 0); + /* make sure that focus has been already out */ + ibus_input_context_focus_out (x11ic->context); + ibus_input_context_focus_in (x11ic->context); _xim_set_cursor_location (x11ic); ++++++ im-engines-precede-xkb.patch ++++++ commit 389d179c0b15664e23af2f26c17b3b5f316bc4e5 Author: Fuminobu TAKEYAMA <[email protected]> Date: Tue Oct 7 20:23:42 2014 +0900 make IM engines precede xkb engines so that users can input CJK letters without switching IMs at the first login diff --git a/ui/gtk3/panel.vala b/ui/gtk3/panel.vala index 76cea23..1ff56fb 100644 --- a/ui/gtk3/panel.vala +++ b/ui/gtk3/panel.vala @@ -411,10 +411,10 @@ class Panel : IBus.PanelService { get_engines_from_locale(engines); string[] names = {}; - foreach (unowned IBus.EngineDesc engine in xkb_engines) - names += engine.get_name(); foreach (unowned IBus.EngineDesc engine in im_engines) names += engine.get_name(); + foreach (unowned IBus.EngineDesc engine in xkb_engines) + names += engine.get_name(); m_settings_general.set_strv("preload-engines", names); } ++++++ macros.ibus ++++++ # RPM macros for ibus # You should use %%{_ibus_icondir} and %%{_ibus_tabledir} # in %%files section # For ibus table packaging, you have to: # Use %%ibus_table_requires as requires # Use %%ibus_table_index_post %%DB_NAME in %%post to create # table indexes for your table package. %_ibus_includedir %{_includedir}/ibus-1.0 %_ibus_libdir %{_libdir}/ibus %_ibus_libexecdir %{_ibus_libdir} %_ibus_datadir %{_datadir}/ibus %_ibus_componentdir %{_ibus_datadir}/component %_ibus_enginedir %{_ibus_datadir}/engine %_ibus_keymapdir %{_ibus_datadir}/keymaps %_ibus_setupdir %{_ibus_datadir}/setup %_ibus_autostartdir %{_sysconfdir}/X11/xim.d %_ibus_tabledir %{_datadir}/ibus-table/tables %_ibus_icondir %{_datadir}/ibus-table/icons %ibus_requires \ Requires: ibus %ibus_table_requires \ Requires: ibus-table Requires(post): ibus-table %ibus_table_index_post() \ %if "x%1" != "x%%1" \ DB_NAME="%1" \ %else \ echo "Missing argument DB_NAME in call to %%ibus_table_create_index." \ false \ %endif \ /usr/bin/ibus-table-createdb -i -n %{_ibus_tabledir}/${DB_NAME}.db || true ++++++ show-input-mode-icon.patch ++++++ --- ibus-1.5.5/ui/gtk3/panel.vala.orig 2014-01-19 01:53:48.144138225 +0900 +++ ibus-1.5.5/ui/gtk3/panel.vala 2014-01-19 02:03:54.627409768 +0900 @@ -863,11 +863,52 @@ public override void register_properties(IBus.PropList props) { m_property_manager.set_properties(props); m_property_panel.set_properties(props); + int i = 0; + while (true) { + IBus.Property prop = props.get(i); + if (prop == null) + break; + if (prop.key == "InputMode") { + update_input_mode_icon(prop.icon); + break; + } + i++; + } } public override void update_property(IBus.Property prop) { m_property_manager.update_property(prop); m_property_panel.update_property(prop); + if (prop.key == "InputMode") { + update_input_mode_icon(prop.icon); + } + } + + // If InputMode has an icon, use it instead of engine's icon. + public void update_input_mode_icon(string icon) { + var icon_name = icon; + if (icon == "") { + var engine = m_bus.get_global_engine(); + icon_name = engine.get_icon(); + } + + if (icon_name[0] == '/') { + try { + // resize icon because icons were desinged for ibus tool bar of 1.4.x + // use 22 px because icons are wrongly cropped on KDE + var icon_img = new Gdk.Pixbuf.from_file_at_size(icon_name, 22, 22); + m_status_icon.set_from_pixbuf(icon_img); + } catch (Error e) { + warning("could not load icon: %s", icon_name); + } + } else { + var theme = Gtk.IconTheme.get_default(); + if (theme.lookup_icon(icon_name, 48, 0) != null) { + m_status_icon.set_from_icon_name(icon_name); + } else { + m_status_icon.set_from_icon_name("ibus-engine"); + } + } } public override void update_preedit_text(IBus.Text text, ++++++ xim.d-ibus-121 ++++++ if ! type -p ibus-daemon > /dev/null 2>&1 ; then echo "ibus is not available." return 1 fi case "$WINDOWMANAGER" in #when skim installed, Autostart must be "false". #here we move $HOME/.kde/share/config/skimrc to skimrc.orig.ibus *kde*) ;; # GNOME 3 Settings Daemon keyboard plugin manages all ibus settings itself, # so don't do manual setup&startup of ibus otherwise it would conflict with # G-S-D. see bnc#873016. *gnome*) SOURCES=$(gsettings get org.freedesktop.ibus.general preload-engines) if [ "$SOURCES" == '@as []' ]; then echo "initial GNOME startup, ibus default configuration applied" ibus-daemon -d timer=5 while [ "$SOURCES" == '@as []' ] && [ ${timer} -gt 0 ]; do sleep 1 timer=$[${timer}-1] SOURCES=$(gsettings get org.freedesktop.ibus.general preload-engines) done ibus exit fi # make sure G-S-D keyboard plugin is active echo "ibus will be managed by GNOME." gsettings set org.gnome.settings-daemon.plugins.keyboard active true return 0 ;; *) # do nothing ;; esac # Force OOo to use gtk-immodule # Only libreoffice-gnome supports IM module # To fix cursor following problem (on_the_spot), do not use libreoffice-kde4 if [ -e /usr/lib64/libreoffice/program/libvclplug_gtklo.so ] || [ -e /usr/lib/libreoffice/program/libvclplug_gtklo.so ] || [ -e /usr/lib64/libreoffice/program/libvclplug_gtk3lo.so ] || [ -e /usr/lib/libreoffice/program/libvclplug_gtk3lo.so ]; then export OOO_FORCE_DESKTOP=gnome else echo "libreoffice-gnome is not found. For better IBus support, please install libreoffice-gnome" fi export LC_CTYPE=$LANG export XMODIFIERS="@im=ibus" export GTK_IM_MODULE=ibus export QT_IM_SWITCHER=imsw-multi if [ -e /usr/$SYS_LIB/qt4/plugins/inputmethods/libqtim-ibus.so ]; then export QT_IM_MODULE=ibus else export QT_IM_MODULE=xim fi if [ -z $DBUS_SESSION_BUS_ADDRESS ]; then eval `dbus-launch --sh-syntax --exit-with-session --close-stderr < /dev/null` fi ibus-daemon --xim -d # success: return 0 ++++++ xim.ibus.suse.template ++++++ #~/.xim template for users to set ibus as default input method #copy this file to ~/.xim #logout and login again, that's all #for more infomations, see ~/.xim.template #if any program can't input Chinese, try export #LC_CTYPE=zh_TW.UTF-8, e.g export LC_CTYPE=$LANG export XMODIFIERS="@im=ibus" export GTK_IM_MODULE=ibus export QT_IM_SWITCHER=imsw-multi os_type=`uname -i` if [ $os_type = "x86_64" ]; then if [ -e /usr/lib64/qt4/plugins/inputmethods/libqtim-ibus.so ]; then export QT_IM_MODULE=ibus else export QT_IM_MODULE=xim fi else if [ -e /usr/lib/qt4/plugins/inputmethods/libqtim-ibus.so ]; then export QT_IM_MODULE=ibus else export QT_IM_MODULE=xim fi fi ibus-daemon --xim &
