init
Some checks failed
Docker. / Ubuntu (push) Has been cancelled
User-agent updater. / User-agent (push) Failing after 15s
Lock Threads / lock (push) Failing after 10s
Waiting for answer. / waiting-for-answer (push) Failing after 22s
Needs user action. / needs-user-action (push) Failing after 8s
Can't reproduce. / cant-reproduce (push) Failing after 8s
Close stale issues and PRs / stale (push) Has been cancelled

This commit is contained in:
allhaileris
2026-02-16 15:50:16 +03:00
commit afb81b8278
13816 changed files with 3689732 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
# Contributor: HIME team
_pkgname=hime
pkgname=hime-git
pkgver=1101.0bb91a0
pkgrel=1
pkgdesc="A GTK2+/GTK3+ based universal input method platform"
arch=('x86_64')
url="http://hime-ime.github.io/"
license=('LGPL2' 'FDL' 'GPL2')
depends=('gtk2' 'libxtst')
makedepends=('git' 'gettext')
# uncomment and edit next line to enable those plugins
# makedepends+=('gtk3' 'qt5-base' 'anthy' 'libchewing')
optdepends=('gtk3: enable gtk3 im module'
'qt5-base: enable qt5 im module'
'anthy: enable Anthy input method'
'libchewing: enable Chewing input method')
conflicts=('hime')
provides=('hime')
source=("${_pkgname}::git+https://github.com/hime-ime/hime.git")
sha512sums=('SKIP')
pkgver() {
cd "${srcdir}/${_pkgname}"
echo "$(git rev-list --count master).$(git rev-parse --short master)"
}
build() {
cd "${srcdir}/${_pkgname}"
./configure --prefix=/usr --qt5-im-module-path=/usr/lib/qt/plugins/platforminputcontexts/
make
}
package() {
cd "${srcdir}/${_pkgname}"
make DESTDIR="${pkgdir}" install
install -dm755 "${pkgdir}/usr/share/licenses/${_pkgname}/"
# install licence files
install -Dm644 fdl-1.2.txt gpl-2.0.txt lgpl-2.1.txt "${pkgdir}/usr/share/licenses/${_pkgname}/"
}

View File

@@ -0,0 +1,5 @@
FROM archlinux:latest
COPY entrypoint.sh /app/entrypoint.sh
ENTRYPOINT ["/app/entrypoint.sh"]

View File

@@ -0,0 +1,45 @@
#!/usr/bin/env bash
set -euo pipefail
set -x
separator() {
echo -e "\n\n\n\n\n"
}
format_check() {
make clang-format
git --no-pager diff --exit-code
}
# base
pacman -Syuu --noconfirm --needed \
base \
base-devel \
git
# dependencies
pacman -Syuu --noconfirm --needed \
clang \
libxtst \
gtk2 \
gtk3 \
anthy \
libchewing \
libappindicator-gtk2 \
libappindicator-gtk3 \
qt5-base
echo 'en_US.UTF-8 UTF-8' >/etc/locale.gen && locale-gen
set +x; separator; separator; separator; set -x
# enter GitHub workspace directory path
cd "$GITHUB_WORKSPACE"
# check code formatting
format_check
# configure and build
./configure --prefix=/usr --qt5-im-module-path=/usr/lib/qt/plugins/platforminputcontexts/
make -j "$(nproc)"

View File

@@ -0,0 +1,19 @@
#!/usr/bin/env bash
set -euo pipefail
topleveldir="$(git rev-parse --show-toplevel)"
archdir="$topleveldir/distro/archlinux"
pushd "$archdir" || exit 1
set -x
# clean up
rm -rf hime/ pkg/ src/
makepkg -sf
ls -ltr ./*.pkg.tar.*
set +x
popd || exit 1

View File

@@ -0,0 +1,5 @@
FROM centos:centos7
COPY entrypoint_centos7.sh /app/entrypoint.sh
ENTRYPOINT ["/app/entrypoint.sh"]

View File

@@ -0,0 +1,37 @@
#!/usr/bin/env bash
set -euo pipefail
set -x
separator() {
echo -e "\n\n\n\n\n"
}
# base
yum update -y
yum groupinstall -y 'Development Tools'
# dependencies
yum install -y \
desktop-file-utils \
gettext \
gtk2-devel\
gtk3-devel \
libXtst-devel \
libchewing-devel \
qt5-qtbase-devel
set +x; separator; separator; separator; set -x
# enter GitHub workspace directory path
cd "$GITHUB_WORKSPACE"
export CFLAGS="-std=gnu11"
export CXXFLAGS="-std=gnu++11"
./configure --disable-gtk2-im-module --disable-gtk3-im-module \
--prefix="$PWD/build" \
--qt5-im-module-path=/usr/lib/qt/plugins/platforminputcontexts/
make

View File

@@ -0,0 +1,5 @@
FROM centos:centos8
COPY entrypoint_centos8.sh /app/entrypoint.sh
ENTRYPOINT ["/app/entrypoint.sh"]

View File

@@ -0,0 +1,34 @@
#!/usr/bin/env bash
set -euo pipefail
set -x
separator() {
echo -e "\n\n\n\n\n"
}
# base
yum update -y
yum groupinstall -y 'Development Tools'
# dependencies
yum install -y \
desktop-file-utils \
gettext \
gtk2-devel\
gtk3-devel \
libXtst-devel \
qt5-qtbase-devel \
qt5-qtbase-private-devel \
set +x; separator; separator; separator; set -x
# enter GitHub workspace directory path
cd "$GITHUB_WORKSPACE"
./configure --disable-gtk2-im-module --disable-gtk3-im-module \
--prefix="$PWD/build" \
--qt5-im-module-path=/usr/lib/qt/plugins/platforminputcontexts/
make

View File

@@ -0,0 +1,5 @@
hime (9-9) experimental; urgency=low
* New snapshot.
-- The HIME Project <http://hime.luna.com.tw> Tue, 13 Dec 2011 14:15:16 +0800

View File

@@ -0,0 +1,5 @@
FROM debian:unstable
COPY entrypoint.sh /app/entrypoint.sh
ENTRYPOINT ["/app/entrypoint.sh"]

View File

@@ -0,0 +1,38 @@
#!/usr/bin/env bash
set -euo pipefail
set -x
separator() {
echo -e "\n\n\n\n\n"
}
# base
apt-get update --yes && apt-get upgrade --yes
apt-get install --yes \
build-essential \
locales \
fakeroot \
devscripts \
git
# dependencies
apt-get install --yes \
libxtst-dev \
libgtk2.0-dev \
libgtk-3-dev \
libanthy-dev \
libchewing3-dev \
libappindicator-dev \
libappindicator3-dev \
qtbase5-private-dev
echo 'en_US.UTF-8 UTF-8' >/etc/locale.gen && locale-gen
set +x; separator; separator; separator; set -x
# enter GitHub workspace directory path
cd "$GITHUB_WORKSPACE"
# build Debian package
./distro/debian/gen-deb

View File

@@ -0,0 +1,16 @@
#!/bin/sh
[ ! -e debian/hime/"$(pkg-config --variable=libdir gtk+-3.0)"/gtk-3.0/"$(pkg-config --variable=gtk_binary_version gtk+-3.0)"/immodules/im-hime.so ] && sed -i 's/, hime-gtk3-immodule//' debian/hime/DEBIAN/control
[ ! -e debian/hime/usr/lib/hime/chewing-module.so ] && sed -i 's/, libchewing3//' debian/hime/DEBIAN/control
if [ ! -e debian/hime/usr/lib/hime/anthy-module.so ]; then
grep -v 'Suggests: kasumi' debian/hime/DEBIAN/control | sed 's/, anthy//' >debian/hime/DEBIAN/control.in
mv debian/hime/DEBIAN/control.in debian/hime/DEBIAN/control
fi
if [ -x /usr/lib/libgtk2.0-0/gtk-query-immodules-2.0 ]; then
/usr/lib/libgtk2.0-0/gtk-query-immodules-2.0 debian/hime/usr/lib/gtk-2.0/2.10.0/immodules/im-hime.so | grep hime | tail -n 1 >>debian/hime/usr/lib/gtk-2.0/2.10.0/immodule-files.d/hime.immodules
else
rm -fr debian/hime/usr/lib/gtk-2.0/2.10.0/immodule-files.d
fi
true

View File

@@ -0,0 +1 @@
10

View File

@@ -0,0 +1,17 @@
Source: hime
Section: utils
Priority: optional
Maintainer: The HIME Project <http://hime.luna.com.tw>
Build-Depends: debhelper (>= 7.0.50~), libgtk2.0-dev (>= 2.10.0) | libgtk-3-dev, libxtst-dev, dpkg | qtbase5-private-dev | libanthy-dev | libchewing3-dev | libappindicator-dev | libappindicator3-dev
Standards-Version: 3.9.1
Package: hime
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Recommends: im-switch | im-config, anthy, libchewing3
Suggests: kasumi
Conflicts: hime-dev, hime-gtk3-immodule, hime-qt5-immodule, hime-anthy, hime-chewing, hime-icon-themes, hime-data, hime-tables
Replaces: hime-dev, hime-gtk3-immodule, hime-qt5-immodule, hime-anthy, hime-chewing, hime-icon-themes, hime-data, hime-tables
Provides: hime-dev, hime-gtk3-immodule, hime-qt5-immodule, hime-anthy, hime-chewing, hime-icon-themes, hime-data, hime-tables
Description: input method server
Hime is an input method server, supports GTK+ / Qt immodules and XIM.

View File

@@ -0,0 +1,18 @@
#!/bin/sh
[ ! -e distro/debian ] && exec echo Please execute '"distro/debian/gen-deb"' under hime directory, thanks.
rm -rf debian
cp -r distro/debian .
if [ -d .git ]; then
sed -i "s#9-9#$(head -n 1 ChangeLog | sed -e "s/$/+$(date +git%Y%m%d)-1/" -e 's/UNRELEASED/0UNRELEASED/')#" debian/changelog
else
sed -i "s#9-9#$(head -n 1 ChangeLog | sed -e 's/UNRELEASED/0UNRELEASED/')#" debian/changelog
fi
# Not sure if DEB_CFLAGS_SET does work
export DEB_CFLAGS_SET="-Wall -g -O0"
export CFLAGS="$CFLAGS -Wall -g -O0"
debuild --no-lintian --no-tgz-check -i -us -uc -b

View File

@@ -0,0 +1 @@
"/usr/lib/gtk-2.0/2.10.0/immodules/im-hime.so"

View File

@@ -0,0 +1,14 @@
# vim: set sts=4 expandtab:
IM_CONFIG_SHORT="$(gettext "啟用 HIME Input Method Editor (hime) (上游官方版本)")"
IM_CONFIG_LONG="$(gettext "HIME Input Method Editor (hime) (上游官方版本)
* 需要安裝hime 軟體包
* 其他模組的支援請查閱 hime 來源碼中 configure 程式的 --help 命令列選項")"
package_auto() {
package_status hime
}
package_menu() {
package_status hime
}

View File

@@ -0,0 +1,48 @@
# start hime (upstream version)
# vim: set sts=4 expandtab:
if [ "$IM_CONFIG_PHASE" = 2 ]; then
# start hime daemon
/usr/bin/hime &
fi
if [ "$IM_CONFIG_PHASE" = 1 ]; then
# set variables for the plain XIM
XMODIFIERS=@im=hime
GTK_IM_MODULE=xim
# use hime immodule only when available for both GTK 2.0 and 3.0
IM_CONFIG_MARKER2=0
for IM_CONFIG_MARKER in /usr/lib/*/gtk-2.0/*/immodules/im-hime.so \
/usr/lib/gtk-2.0/*/immodules/im-hime.so; do
if [ -e "$IM_CONFIG_MARKER" ]; then
IM_CONFIG_MARKER2=1
break
fi
done
IM_CONFIG_MARKER3=0
for IM_CONFIG_MARKER in /usr/lib/*/gtk-3.0/*/immodules/im-hime.so \
/usr/lib/gtk-3.0/*/immodules/im-hime.so; do
if [ -e "$IM_CONFIG_MARKER" ]; then
IM_CONFIG_MARKER3=1
break
fi
done
if [ "$IM_CONFIG_MARKER2" = 1 ] && [ "$IM_CONFIG_MARKER3" = 1 ]; then
GTK_IM_MODULE=hime
fi
# use immodule when available for Qt5
for IM_CONFIG_MARKER in /usr/lib/*/qt5/plugins/platforminputcontexts/im-hime.so \
/usr/lib/qt5/plugins/platforminputcontexts/im-hime.so; do
if [ -e "$IM_CONFIG_MARKER" ]; then
QT_IM_MODULE=hime
break
fi
done
# hime has no clutter support
CLUTTER_IM_MODULE=xim
fi

View File

@@ -0,0 +1,4 @@
debian/im-switch/hime etc/X11/xinit/xinput.d
debian/hime.immodules usr/lib/gtk-2.0/2.10.0/immodule-files.d
debian/im-config/25_hime_upstream.conf usr/share/im-config/data
debian/im-config/25_hime_upstream.rc usr/share/im-config/data

View File

@@ -0,0 +1,30 @@
#!/bin/sh
# postinst script for hime
set -e
ua_inst() {
update-alternatives \
--install /etc/X11/xinit/xinput.d/"$1" xinput-"$1" \
/etc/X11/xinit/xinput.d/"$2" "$3"
}
case "$1" in
configure)
# Set up default
ua_inst all_ALL hime 0
ua_inst zh_CN hime 30
ua_inst zh_TW hime 50
;;
abort-upgrade | abort-remove | abort-deconfigure) ;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
#DEBHELPER#
exit 0

View File

@@ -0,0 +1,28 @@
#!/bin/sh
# prerm script for hime
set -e
ua_remove() {
update-alternatives \
--remove xinput-"$1" \
/etc/X11/xinit/xinput.d/"$2"
}
case "$1" in
remove | upgrade | deconfigure)
ua_remove all_ALL hime
ua_remove zh_CN hime
ua_remove zh_TW hime
;;
failed-upgrade) ;;
*)
echo "prerm called with unknown argument \`$1'" >&2
exit 1
;;
esac
#DEBHELPER#
exit 0

17
Telegram/ThirdParty/hime/distro/debian/rules vendored Executable file
View File

@@ -0,0 +1,17 @@
#!/usr/bin/make -f
%:
dh $@
override_dh_auto_configure:
dh_auto_configure -- --disable-lib64
override_dh_shlibdeps:
dh_shlibdeps --exclude=im-hime.so --exclude=anthy-module.so --exclude=chewing-module.so
override_dh_strip:
# dh_strip
override_dh_gencontrol:
dh_gencontrol
sh debian/ckqt.sh

View File

@@ -0,0 +1,4 @@
Copyright (C) 2011 Lu, Chao-Ming (Tetralet). All rights reserved.
This work is licensed under the terms of the GNU LGPL v2.1, or any later version.

View File

@@ -0,0 +1,213 @@
#
# Copyright (C) 2011 Lu, Chao-Ming (Tetralet). All rights reserved.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
#
#!/bin/sh
export LC_ALL=zh_TW.UTF8
CONVERT=`whereis -b convert | tr -d '\n' | sed 's/^convert: *//g'`
if [ -z "$CONVERT" ]; then
echo "Command 'convert' is not find. Please install imagemagick package and try again!"
exit 0
fi
print_help()
{
case $1 in
-h|--help)
echo "Usage: $0 SourceImage.png HalfCharImage.png FullCharImage.png Font_Patch Font_Color Mini_Color"
echo "Example: $0 HIME.png HIME_Half.png HIME_Full.png ~/.fonts/DroidSansFallback.ttf \"#1650b8\" \"c81bca\""
exit 0
;;
esac
}
if [ "$1" == '' ]; then
print_help -h
fi
if [ ! -f "$1" ]; then
echo "ERROR: Source Image file $1 Not find!"
echo ""
print_help -h
fi
SOURCE_IMAGE="$1"
if [ "$2" == '' ]; then
print_help -h
fi
if [ ! -f "$2" ]; then
echo "ERROR: HalfChar Image file $1 Not find!"
echo ""
print_help -h
fi
HALF_IMAGE="$2"
if [ "$3" == '' ]; then
print_help -h
fi
if [ ! -f "$3" ]; then
echo "ERROR: FullChar Image file $1 Not find!"
echo ""
print_help -h
fi
FULL_IMAGE="$3"
if [ "$4" == '' ]; then
print_help -h
fi
if [ ! -f "$4" ]; then
echo "ERROR: Font file $4 Not find!"
echo ""
print_help -h
fi
FONT_FILE="$4"
if [ "$5" == '' ]; then
print_help -h
fi
COLOR="$5"
if [ "$6" == '' ]; then
print_help -h
fi
MINI_COLOR="$6"
convert_word()
{
while [ "$1" != '' ]; do
FILE=$1
shift
if [ "$1" != '' ]; then
WORD=$1
else
echo "ERROR: No target file inputed!"
exit 1
fi
shift
SIZE=`echo "$WORD" | wc -m`
if [ "$WORD" == "En" ]; then
SIZE=2
fi
WORK_IMAGE="$SOURCE_IMAGE"
echo "Trying to draw '$WORD' (Size $SIZE) on $SOURCE_IMAGE to $FILE.png ..."
case $SIZE in
1)
FONT_SIZE=18
DRAW_STR="text +0-1 '$WORD'"
TEMP_FILE=""
;;
2)
FONT_SIZE=18
DRAW_STR="text +0-1 '$WORD'"
TEMP_FILE=""
;;
3|4)
if [ "$FILE" == "half-simp" -o "$FILE" == "half-trad" ]; then
WORK_IMAGE="$HALF_IMAGE"
fi
if [ "$FILE" == "full-simp" -o "$FILE" == "full-trad" ]; then
WORK_IMAGE="$FULL_IMAGE"
fi
ORIGINAL_WORD="$WORD"
WORD=`echo $ORIGINAL_WORD | sed -e 's/\(.\)\(.\)/\1/g'`
FONT_SIZE=14
DRAW_STR="text -4-4 '$WORD'"
TEMP_FILE="hime_temp"
convert -pointsize $FONT_SIZE \
-font $FONT_FILE \
-fill $COLOR \
-gravity center \
-draw "$DRAW_STR" \
$WORK_IMAGE "$TEMP_FILE.png"
WORD=`echo $ORIGINAL_WORD | sed -e 's/\(.\)\(.\)/\2/g'`
FONT_SIZE=11
DRAW_STR="text +5+5 '$WORD'"
;;
*)
echo "The input word '$WORD' is too long!"
exit 1
;;
esac
if [ "$TEMP_FILE" == '' -o ! -f "$TEMP_FILE.png" ]; then
convert -pointsize $FONT_SIZE \
-font $FONT_FILE \
-fill $COLOR \
-gravity center \
-draw "$DRAW_STR" \
$WORK_IMAGE "$FILE.png"
else
convert -pointsize $FONT_SIZE \
-font $FONT_FILE \
-fill $MINI_COLOR \
-gravity center \
-draw "$DRAW_STR" \
"$TEMP_FILE.png" "$FILE.png"
rm "$TEMP_FILE.png"
fi
done
}
convert_word 'hime-tray' 'En' \
'4corner' '四' \
'NewCJ3' '亂' \
'amis' '阿' \
'ar30' '行' \
'chewing' '酷' \
'cj' '倉' \
'dayi3' '易' \
'erbi' '二' \
'ez' '輕' \
'fcitx-qxm' '冰' \
'fcitx-wanfeng' '晚' \
'greek' 'αβ' \
'esperanto' '★' \
'hakka' '客' \
'halfwidth-kana' 'ア' \
'intcode' '內' \
'jtcj_gb' '仓' \
'juyin' '注' \
'jyutping' '粵' \
'kana-nippon' 'あ' \
'latin-letters' 'ā' \
'newcj' '新' \
'noseeing' '嘸' \
'paiwan' '排' \
'pinyin' '拼' \
'sakura' '櫻' \
'scj' '快' \
'shuangpin' '双' \
'simplex' '簡' \
'symbols' '%' \
'taiwan' '台' \
'telecode' '電' \
'tsin' '詞' \
'tsou' '鄒' \
'wm2' '象' \
'wubi' '五' \
'russian' 'Э' \
'hangul' '한' \
'cj5' '倉五' \
'cj-punc' '倉;' \
'en-kana-nippon' 'あE' \
'en-tsin' '詞E' \
'half-simp' ' 简' \
'half-trad' '  ' \
'full-simp' ' 简' \
'full-trad' '  ' \
'gdayi3' '易三'

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 970 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1007 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -0,0 +1,442 @@
Copyright (C) 2007 Kan-Ru Chen <koster AT debian DOT org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
This patch will make rxvt-unicode to use hime protocol, make rxvt-unicode to
depend on libhime-im-client.so.1, and let hime works like GTK+ / Qt immodule.
Unpatched rxvt-unicode still can use hime via XIM protocol.
Usage: ./configure --disable-xim
Note that you need hime's headers: hime-im-client.h
hime-im-client-attr.h
Also make sure that your library path can found libhime-im-client.so.1.
--- rxvt-unicode-9.14.orig/README.hime
+++ rxvt-unicode-9.14/README.hime
@@ -0,0 +1 @@
+./configure --disable-xim
--- rxvt-unicode-9.14.orig/src/Makefile.in
+++ rxvt-unicode-9.14/src/Makefile.in
@@ -17,8 +17,8 @@
CXXFLAGS = @CXXFLAGS@
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
-DEFS = @DEFS@
-LIBS = @LIBS@
+DEFS = @DEFS@ -DUSE_HIME -DUNIX=1
+LIBS = @LIBS@ -lhime-im-client -L$(libdir)/hime
XINC = @X_CFLAGS@ @AFTERIMAGE_CFLAGS@ @PIXBUF_CFLAGS@ @STARTUP_NOTIFICATION_CFLAGS@
XLIB = @X_LIBS@ @AFTERIMAGE_LIBS@ -lX11 @X_EXTRA_LIBS@ @PIXBUF_LIBS@ @STARTUP_NOTIFICATION_LIBS@
COMPILE = $(CXX) -I.. -I$(srcdir) -I. -I$(srcdir)/../libev -I$(srcdir)/../libptytty/src -I$(srcdir)/../libecb $(DEFS) $(CPPFLAGS) $(CXXFLAGS) $(XINC)
--- rxvt-unicode-9.14.orig/src/command.C
+++ rxvt-unicode-9.14/src/command.C
@@ -475,6 +475,36 @@
valid_keysym = status_return == XLookupKeySym
|| status_return == XLookupBoth;
}
+#endif
+#ifdef USE_HIME
+ if (Hime_Handle)
+ {
+ char *rstr = NULL;
+ len = XLookupString (&ev, kbuf, KBUFSZ, &keysym, &compose);
+ // valid_keysym = 1;
+ valid_keysym = keysym != NoSymbol;
+ if (hime_im_client_forward_key_press (Hime_Handle, keysym, ev.state, &rstr))
+ {
+ if (rstr)
+ {
+ len = strlen (rstr);
+ strncpy (kbuf, rstr, len);
+ kbuf[len] = '\0';
+ keysym = ' ';
+ shft = ctrl = meta = 0;
+ }
+ else
+ {
+#if 0
+ len = 0;
+ valid_keysym = 0;
+#endif
+ return;
+ }
+ }
+ if (rstr)
+ free (rstr);
+ }
else
#endif
{
@@ -860,10 +890,13 @@
void
rxvt_term::key_release (XKeyEvent &ev)
{
-#if (MOUSE_WHEEL && MOUSE_SLIP_WHEELING) || ISO_14755 || ENABLE_PERL
+#ifdef USE_HIME
KeySym keysym;
keysym = XLookupKeysym (&ev, ev.state & ShiftMask ? 1 : 0); // sorry, only shift supported :/
+ char *rstr = NULL;
+ hime_im_client_forward_key_release (Hime_Handle, keysym, ev.state, &rstr);
+ free (rstr);
#endif
#if ENABLE_FRILLS || ISO_14755
@@ -989,7 +1022,7 @@
scr_refresh ();
scrollBar.show (1);
-#ifdef USE_XIM
+#ifdef USE_HIME
im_send_spot ();
#endif
}
@@ -1739,6 +1772,15 @@
XSetICFocus (Input_Context);
}
#endif
+#ifdef USE_HIME
+ if (Hime_Handle != NULL)
+ {
+#if 0
+ IMSetPosition ();
+#endif
+ hime_im_client_focus_in(Hime_Handle);
+ }
+#endif
#if CURSOR_BLINK
if (option (Opt_cursorBlink))
cursor_blink_ev.again ();
@@ -1784,6 +1826,10 @@
if (Input_Context != NULL)
XUnsetICFocus (Input_Context);
#endif
+#ifdef USE_HIME
+ if (Hime_Handle != NULL)
+ hime_im_client_focus_out(Hime_Handle);
+#endif
#if CURSOR_BLINK
if (option (Opt_cursorBlink))
cursor_blink_ev.stop ();
--- rxvt-unicode-9.14.orig/src/init.C
+++ rxvt-unicode-9.14/src/init.C
@@ -1022,7 +1022,7 @@
{
set_environ (envv);
-#ifdef USE_XIM
+#ifdef USE_HIME
if (!locale)
rxvt_warn ("setting locale failed, continuing without locale support.\n");
else
@@ -1536,7 +1536,7 @@
XSelectInput (dpy, top,
KeyPressMask
-#if (MOUSE_WHEEL && MOUSE_SLIP_WHEELING) || ENABLE_FRILLS || ISO_14755
+#ifdef USE_HIME
| KeyReleaseMask
#endif
| FocusChangeMask | VisibilityChangeMask
@@ -1669,6 +1669,9 @@
if ((*t)->pty->pty > 2) close ((*t)->pty->pty);
if ((*t)->pty->tty > 2) close ((*t)->pty->tty);
}
+#ifdef USE_HIME
+ close (Hime_Handle->fd);
+#endif
run_child (argv);
fprintf (stderr, "%s: unable to exec child.", RESNAME);
--- rxvt-unicode-9.14.orig/src/main.C
+++ rxvt-unicode-9.14/src/main.C
@@ -176,7 +176,7 @@
rootwin_ev.set <rxvt_term, &rxvt_term::rootwin_cb> (this),
#endif
scrollbar_ev.set <rxvt_term, &rxvt_term::x_cb> (this),
-#ifdef USE_XIM
+#ifdef USE_HIME
im_ev.set <rxvt_term, &rxvt_term::im_cb> (this),
#endif
#ifdef POINTER_BLANK
@@ -314,7 +314,7 @@
if (display)
{
-#if USE_XIM
+#ifdef USE_HIME
im_ev.stop (display);
#endif
scrollbar_ev.stop (display);
@@ -1123,7 +1123,7 @@
/* -------------------------------------------------------------------- *
* - X INPUT METHOD ROUTINES - *
* -------------------------------------------------------------------- */
-#ifdef USE_XIM
+#ifdef USE_HIME
void
rxvt_term::im_set_color (unsigned long &fg, unsigned long &bg)
@@ -1166,6 +1166,11 @@
Window win;
char server[IMBUFSIZ];
+#ifdef USE_HIME
+ if (Hime_Handle)
+ return True;
+#endif
+#ifdef USE_XIM
/* get current locale modifier */
if (char *p = XSetLocaleModifiers (0))
{
@@ -1181,6 +1186,7 @@
if (win != None)
return true;
}
+#endif
return false;
}
@@ -1191,9 +1197,7 @@
XPoint nspot;
XVaNestedList preedit_attr;
- if (!Input_Context
- || !focus
- || !(input_style & (XIMPreeditPosition | XIMPreeditCallbacks)))
+ if (!focus || !Hime_Handle)
return;
im_set_position (nspot);
@@ -1203,11 +1207,13 @@
spot = nspot;
- preedit_attr = XVaCreateNestedList (0, XNSpotLocation, &spot, NULL);
- XSetICValues (Input_Context, XNPreeditAttributes, preedit_attr, NULL);
- XFree (preedit_attr);
+#ifdef USE_HIME
+ if (Hime_Handle)
+ hime_im_client_set_cursor_location(Hime_Handle, nspot.x, nspot.y);
+#endif
}
+#ifdef USE_XIM
void
rxvt_term::im_destroy ()
{
@@ -1222,6 +1228,7 @@
Input_Context = 0;
}
+#endif
#ifdef ENABLE_XIM_ONTHESPOT
@@ -1304,6 +1311,10 @@
bool
rxvt_term::im_get_ic (const char *modifiers)
{
+#ifdef USE_HIME
+ Hime_Handle = hime_im_client_open(display->dpy);
+ hime_im_client_set_window(Hime_Handle, parent);
+#else
int i, j, found;
XIM xim;
XPoint spot;
@@ -1511,6 +1522,7 @@
#endif
im_set_position ();
+#endif
return true;
}
@@ -1518,6 +1530,7 @@
void
rxvt_term::im_cb ()
{
+#ifdef USE_XIM
int i;
const char *p;
char **s;
@@ -1561,6 +1574,7 @@
if (found)
goto done;
}
+#endif
/* try with XMODIFIERS env. var. */
if (im_get_ic (""))
@@ -1577,6 +1591,7 @@
#endif
}
+#ifdef USE_XIM
void
rxvt_term::im_set_position ()
{
@@ -1620,6 +1635,7 @@
XFree (preedit_attr);
}
+#endif
#endif /* USE_XIM */
void
--- rxvt-unicode-9.14.orig/src/rxvt.h
+++ rxvt-unicode-9.14/src/rxvt.h
@@ -90,6 +90,10 @@
# define HAVE_BG_PIXMAP 1
#endif
+#ifdef USE_HIME
+#include <hime-im-client.h>
+#endif
+
#include "encoding.h"
#include "rxvtutil.h"
#include "rxvtfont.h"
@@ -1329,6 +1333,8 @@
rxvt_xim *input_method;
XIC Input_Context;
XIMStyle input_style;
+#endif
+#ifdef USE_HIME
XPoint spot; // most recently sent spot position
void im_destroy ();
@@ -1343,6 +1349,9 @@
bool im_get_ic (const char *modifiers);
void im_set_position ();
#endif
+#ifdef USE_HIME
+ HIME_client_handle *Hime_Handle;
+#endif
// command.C
void key_press (XKeyEvent &ev);
--- rxvt-unicode-9.14.orig/src/rxvttoolkit.C
+++ rxvt-unicode-9.14/src/rxvttoolkit.C
@@ -64,8 +64,10 @@
"_NET_WM_PING",
"_NET_WM_ICON",
#endif
-#if USE_XIM
+#ifdef USE_HIME
"WM_LOCALE_NAME",
+#endif
+#ifdef USE_XIM
"XIM_SERVERS",
#endif
#ifdef ENABLE_TRANSPARENCY
@@ -520,13 +522,15 @@
XCloseDisplay (dpy);
}
-#ifdef USE_XIM
+#ifdef USE_HIME
void rxvt_display::im_change_cb ()
{
for (im_watcher **i = imw.begin (); i != imw.end (); ++i)
(*i)->call ();
}
+#endif
+#ifdef USE_XIM
void rxvt_display::im_change_check ()
{
// try to only call im_change_cb when a new input method
@@ -625,7 +629,7 @@
cur_owner = owner;
}
-#ifdef USE_XIM
+#ifdef USE_HIME
void rxvt_display::reg (im_watcher *w)
{
@@ -636,7 +640,9 @@
{
imw.erase (find (imw.begin (), imw.end (), w));
}
+#endif
+#ifdef USE_XIM
rxvt_xim *rxvt_display::get_xim (const char *locale, const char *modifiers)
{
char *id;
--- rxvt-unicode-9.14.orig/src/rxvttoolkit.h
+++ rxvt-unicode-9.14/src/rxvttoolkit.h
@@ -64,8 +64,10 @@
XA_NET_WM_PING,
XA_NET_WM_ICON,
#endif
-#if USE_XIM
+#ifdef USE_HIME
XA_WM_LOCALE_NAME,
+#endif
+#ifdef USE_XIM
XA_XIM_SERVERS,
#endif
#if ENABLE_TRANSPARENCY
@@ -227,9 +229,13 @@
#ifdef USE_XIM
refcache<rxvt_xim> xims;
+#endif
+#ifdef USE_HIME
vector<im_watcher *> imw;
void im_change_cb ();
+#endif
+#ifdef USE_XIM
void im_change_check ();
#endif
@@ -262,16 +268,18 @@
void reg (xevent_watcher *w);
void unreg (xevent_watcher *w);
-#ifdef USE_XIM
+#ifdef USE_HIME
void reg (im_watcher *w);
void unreg (im_watcher *w);
+#endif
+#ifdef USE_XIM
rxvt_xim *get_xim (const char *locale, const char *modifiers);
void put_xim (rxvt_xim *xim);
#endif
};
-#ifdef USE_XIM
+#ifdef USE_HIME
struct im_watcher : rxvt_watcher, callback<void (void)>
{
void start (rxvt_display *display)
--- rxvt-unicode-9.14.orig/src/screen.C
+++ rxvt-unicode-9.14/src/screen.C
@@ -3531,7 +3531,7 @@
}
/* ------------------------------------------------------------------------- */
-#ifdef USE_XIM
+#ifdef USE_HIME
void
rxvt_term::im_set_position (XPoint &pos) NOTHROW
{

View File

@@ -0,0 +1,18 @@
include ../../../config.mak
ECHO = $(shell whereis -b echo | awk '{print $$2}')
.PHONY: all
all: ed5.cpp ed5.h ed5.pro ed5a.cpp
@ $(ECHO) -e "\x1b[1;33m** Compiling ed5...\x1b[0m"
@ $(QT5_QMAKE_PATH) ed5.pro -o ed5.makefile && $(MAKE) -f ed5.makefile
.PHONY: clean
clean:
-@ for FileName in ed5.makefile ed5a.o ed5.o ed5; \
do \
if [ -f "$$FileName" ]; then \
$(ECHO) -e "\x1b[1;31m** "deleting $$FileName..."\x1b[0m"; \
rm "$$FileName" ; \
fi; \
done

View File

@@ -0,0 +1,10 @@
#include <QApplication>
#include "ed5.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Window l;
l.show();
return a.exec();
}

View File

@@ -0,0 +1,9 @@
#include <QWidget>
class QLineEdit;
class Window : public QWidget {
public:
Window();
QLineEdit *edit2;
};

View File

@@ -0,0 +1,3 @@
HEADERS += ed5.h
SOURCES += ed5.cpp ed5a.cpp
QT += widgets

View File

@@ -0,0 +1,10 @@
#include <QtWidgets>
#include "ed5.h"
Window::Window()
{
edit2 = new QLineEdit;
QGridLayout *echoLayout = new QGridLayout;
echoLayout->addWidget(edit2, 1, 0, 1, 2);
setLayout(echoLayout);
}

View File

@@ -0,0 +1,19 @@
#!/bin/sh
[ ! -e distro/dev-tools/scripts/make-tarball ] && exec echo Please execute '"distro/dev-tools/scripts/make-tarball"' under hime directory, thanks.
XZ_OPT=${XZ_OPT-"-5e"}
VER_1=`head -n 1 ChangeLog`
# Remove space, tab, BOM
VER_2=`sed -e 's/ //g' -e 's/ //g' -e 's/\t//g' -e 's/\xef\xbb\xbf//g' ChangeLog | grep -v ^$ | head -n 1`
[ "$VER_1" != "$VER_2" ] && exec echo Warning! Version number in ChangeLog has some problem, please fix it!
echo -n "ChangeLog: "
head -n 1 ChangeLog
GIT_DIR_NAME="${PWD##*/}"
TAR_NAME=hime-`head -n 1 ChangeLog`
cd ..
[ -e "$TAR_NAME" ] && exec echo "$TAR_NAME" exist. exit.
[ -e "$TAR_NAME".tar.xz ] && exec echo "$TAR_NAME".tar.xz exist. exit.
[ -e "$TAR_NAME".dfsg.orig.tar.xz ] && exec echo "$TAR_NAME".dfsg.orig.tar.xz exist. exit.
cp -r $GIT_DIR_NAME $TAR_NAME
tar --owner=0 --group=0 -Jcf "$TAR_NAME".tar.xz $TAR_NAME --exclude=.gitignore --exclude=.git
tar --owner=0 --group=0 -Jcf "$TAR_NAME".dfsg.orig.tar.xz $TAR_NAME --exclude=.gitignore --exclude=.git --exclude=dayi3.cin
ls -ald "$TAR_NAME".tar.xz "$TAR_NAME".dfsg.orig.tar.xz

View File

@@ -0,0 +1,100 @@
#!/bin/bash
# Copyright and license see bottom of this file
GTK_QUERY_IMMODULES_2==`whereis gtk-query-immodules-2.0 | cut -d ' ' -f 2`
if [ ! -x "$GTK_QUERY_IMMODULES_2" ]; then
GTK_QUERY_IMMODULES_2=/usr/lib/`ls /usr/lib | grep linux | grep $(uname -m)`/libgtk2.0-0/gtk-query-immodules-2.0
fi
GTK_QUERY_IMMODULES_3=/usr/lib/x86_64-linux-gnu/libgtk-3-0/gtk-query-immodules-3.0
if [ ! -x "$GTK_QUERY_IMMODULES_3" ]; then
GTK_QUERY_IMMODULES_3=/usr/lib/`ls /usr/lib | grep linux | grep $(uname -m)`/libgtk-2-0/gtk-query-immodules-3.0
fi
echo \#!/bin/sh > hime-test-shell-env
export HIME_OUTPUT_FILTER=$PWD/filter/nobopomofo
echo "export HIME_OUTPUT_FILTER=$PWD/filter/nobopomofo" >> hime-test-shell-env
UTF8_LOCALE=`locale -a | grep utf8 | tail -n 1`
XIM_NAME=`date +%N | tr -d 0`
GTK_2_TEMP_FILE=$PWD/gtk2
GTK_3_TEMP_FILE=$PWD/gtk3
[ ! -e distro/debian ] && exec echo Please execute '"distro/dev-tools/scripts/test-hime"' under hime directory, thanks.
export PATH=$PWD/src:$PATH
echo "export PATH=$PWD/src:$PATH" >> hime-test-shell-env
export HIME_TABLE_DIR=$PWD/data
echo "export HIME_TABLE_DIR=$PWD/data" >> hime-test-shell-env
export HIME_MODULE_DIR=$PWD/src/modules
echo "export HIME_MODULE_DIR=$PWD/src/modules" >> hime-test-shell-env
export XMODIFIERS=@im=$XIM_NAME
echo "export XMODIFIERS=@im=$XIM_NAME" >> hime-test-shell-env
unset LC_ALL
echo "unset LC_ALL" >> hime-test-shell-env
export LC_CTYPE=$UTF8_LOCALE
echo "export LC_CTYPE=$UTF8_LOCALE" >> hime-test-shell-env
$GTK_QUERY_IMMODULES_2 | grep -v hime > $GTK_2_TEMP_FILE
$GTK_QUERY_IMMODULES_3 | grep -v hime > $GTK_3_TEMP_FILE
LD_LIBRARY_PATH=$PWD/src/im-client/ $GTK_QUERY_IMMODULES_2 $PWD/src/gtk-im/im-hime.so >> $GTK_2_TEMP_FILE
LD_LIBRARY_PATH=$PWD/src/im-client/ $GTK_QUERY_IMMODULES_3 $PWD/src/gtk3-im/im-hime.so >> $GTK_3_TEMP_FILE
export LD_PRELOAD=$PWD/src/im-client/libhime-im-client.so
echo "export LD_PRELOAD=$PWD/src/im-client/libhime-im-client.so" >> hime-test-shell-env
export GTK_IM_MODULE=hime
echo "export GTK_IM_MODULE=hime" >> hime-test-shell-env
echo "PS1=\"\[\e]0;\u@\h: \w\a\]\u@\h:\w (hime-test-env)$ \"" >> hime-test-shell-env
if [ ! -x "$HIME_OUTPUT_FILTER" ]; then
echo Warning! Your filter is not executable. Filter has been turned off automatically.
unset HIME_OUTPUT_FILTER
fi
echo To activate the testing envronment, execute \". hime-test-shell-env\" under this directory
sh $PWD/scripts/hime-user-setup $PWD/data $PWD/src
echo
echo ">>>"
echo
echo "Depending on whether the application is using gtk2 or gtk3, set up the corresponding environmental variable before running target application in the testing environment"
echo
echo "gtk2: export GTK_IM_MODULE_FILE=$GTK_2_TEMP_FILE"
echo "gtk3: export GTK_IM_MODULE_FILE=$GTK_3_TEMP_FILE"
echo
echo ">>>"
echo
##start hime
HIME_MODULE_DIR=$PWD/src/modules HIME_TABLE_DIR=data LD_LIBRARY_PATH=$PWD/src/im-client/:$PWD/src XMODIFIERS=@im=$XIM_NAME gdb src/hime
# TODO: get tempdir from TMPDIR, TMP, and TEMP
rm $GTK_2_TEMP_FILE $GTK_3_TEMP_FILE /tmp/.hime-$USER/socket-*-$XIM_NAME
rm hime-test-shell-env
# Copyright (C) 2007-2012 Wen-Yen Chuang <caleb AT calno DOT com>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

View File

@@ -0,0 +1,14 @@
SPEC = hime-fedora.spec
VERSION_FILE = ../../ChangeLog
all: $(SPEC)
hime-fedora.spec: hime-fedora.spec.in $(VERSION_FILE)
@echo "building $@ ..."
@rm -f $@
@sed -e "s/__hime_version__/`head -n 1 $(VERSION_FILE)`/" < $< > $@
clean:
@rm -f $(SPEC)

View File

@@ -0,0 +1,52 @@
#!/bin/sh
#
# prerequisite:
# # yum install rpm-build rpmdevtools libchewing-devel
# $ rpmdev-setuptree
#
# build:
# $ cd <src>/
# $ ./distro/fedora/gen-rpm
#
# files located at ~/rpmbuild/{,S}RPMS
#
# install:
# # rpm -ivh hime-[0gq]*
# $ imsettings-switch hime
#
[ ! -e distro/fedora ] && exec echo Please execute '"distro/fedora/gen-rpm"' under hime directory, thanks.
VERSION_FILE=ChangeLog
SPEC_FILE=hime-fedora.spec
DISTRODIR=distro/fedora
DISTROROOT=`basename ${DISTRODIR}`
SRCDIR=`rpm --eval "%{_sourcedir}"`
SPECDIR=`rpm --eval "%{_specdir}"`
GIT_DIR_NAME="${PWD##*/}"
rm -fr ${DISTROROOT}
cp -r ${DISTRODIR} ${DISTROROOT}
echo "building ${SPEC_FILE} ..."
if [ -d '.git' ] ; then
VERSION=`head -n 1 ${VERSION_FILE}`+`date +git%Y%m%d`
TAR_NAME=hime-${VERSION}
git archive --format=tar --prefix=${TAR_NAME}/ HEAD | xz > ${SRCDIR}/${TAR_NAME}.tar.xz
else
VERSION=`head -n 1 ${VERSION_FILE}`
XZ_OPT=${XZ_OPT-"-5e"}
TAR_NAME=hime-${VERSION}
cd ..
cp -r $GIT_DIR_NAME $TAR_NAME
tar --owner=0 --group=0 -Jcf "$TAR_NAME".tar.xz $TAR_NAME --exclude=.git
cp ${TAR_NAME}.tar.xz ${SRCDIR}/${TAR_NAME}.tar.xz
cd ${GIT_DIR_NAME}
fi
cd ${DISTROROOT}
[ -f ${SPEC_FILE} ] && rm -f ${SPEC_FILE}
sed -e "s/__hime_version__/${VERSION}/" < "${SPEC_FILE}.in" > ${SPEC_FILE}
cp -f ${SPEC_FILE} ${SPECDIR}/${SPEC_FILE}
cp -f hime.conf ${SRCDIR}
rpmbuild -ba ${SPEC_FILE}

View File

@@ -0,0 +1,480 @@
Name: hime
Version: __hime_version__
Release: 1%{?dist}
Summary: Input method for Traditional Chinese
Group: System Environment/Libraries
License: LGPLv2
URL: http://hime.luna.com.tw
##Got a request to get new hime source from the following link
##original source url is not opening since last few months.
Source0: http://hime.luna.com.tw/%{name}-%{version}.tar.xz
#Source0: %{name}-%{version}.tar.xz
Source1: hime.conf
BuildRoot: %{_builddir}/%{name}-%{version}-%{release}-root
BuildRequires: qt-devel, gtk3-devel, gtk2-devel, desktop-file-utils
BuildRequires: libXtst-devel, anthy-devel, gettext
Requires: im-chooser, imsettings
Requires(post): %{_sbindir}/alternatives
Requires(preun): %{_sbindir}/alternatives
%description
Hime is an input method server
%package gtk2
Summary: Gtk2 support for hime
Group: Applications/System
Requires: gtk2
Requires: %{name} = %{version}-%{release}
%description gtk2
gtk2 support for hime.
%package gtk3
Summary: Gtk3 support for hime
Group: Applications/System
Requires: gtk3
Requires: %{name} = %{version}-%{release}
%description gtk3
gtk3 support for hime.
%package devel
Summary: Development files for HIME
Group: Development/Libraries
Requires: libX11-devel
%description devel
The %{name}-devel package contains header files necessary for
developing programs using HIME client libraries.
%prep
%setup -q
sed -i.strip -e 's|install[ \t][ \t]*-s|install|' Makefile
%build
%configure
#perl -pi -e "s/^(OPTFLAGS.*=)/\1 %{optflags} /" config.mak
# fixme: explain how %%{?_smp_mflags} breaks build?
make
%install
make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p"
%find_lang %{name}
mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/X11/xinit/xinput.d
install -m 644 -p %{SOURCE1} $RPM_BUILD_ROOT/%{_sysconfdir}/X11/xinit/xinput.d/hime.conf
rm -f $RPM_BUILD_ROOT/%{_docdir}/hime-%{version}/Changelog
rm -f $RPM_BUILD_ROOT/%{_docdir}/hime-%{version}/README
desktop-file-install \
--delete-original \
--vendor fedora \
--dir ${RPM_BUILD_ROOT}/%{_datadir}/applications \
--add-category X-Fedora \
${RPM_BUILD_ROOT}/%{_datadir}/applications/hime-setup.desktop
%post
/sbin/ldconfig
update-desktop-database %{_datadir}/applications >/dev/null 2>&1 || :
%{_sbindir}/alternatives --install %{_sysconfdir}/X11/xinit/xinputrc xinputrc %{_sysconfdir}/X11/xinit/xinput.d/hime.conf 40
%post gtk2
if [ $1 -eq 1 ] ; then
# For upgrades, the cache will be regenerated by the new package's %%postun
gtk-query-immodules-2.0-%{__isa_bits} > /etc/gtk-2.0/%{_arch}-redhat-linux-gnu/gtk.immodules || :
fi
%post gtk3
if [ $1 -eq 1 ] ; then
# For upgrades, the cache will be regenerated by the new package's %%postun
gtk-query-immodules-3.0-%{__isa_bits} --update-cache &> /dev/null || :
fi
%postun
/sbin/ldconfig
update-desktop-database %{_datadir}/applications >/dev/null 2>&1 || :
%postun gtk2
gtk-query-immodules-2.0-%{__isa_bits} > /etc/gtk-2.0/%{_arch}-redhat-linux-gnu/gtk.immodules || :
%postun gtk3
gtk-query-immodules-3.0-%{__isa_bits} --update-cache &> /dev/null || :
%preun
if [ $1 -eq 0 ]; then
%{_sbindir}/alternatives --remove xinputrc %{_sysconfdir}/X11/xinit/xinput.d/hime.conf >/dev/null 2>&1 || :
fi
%files -f %{name}.lang
%doc AUTHORS gpl-2.0.txt lgpl-2.1.txt fdl-1.2.txt ChangeLog
%config %{_sysconfdir}/X11/xinit/xinput.d/hime.conf
%{_bindir}/hime
%{_bindir}/hime-*
%{_datadir}/applications/fedora-hime-setup.desktop
%{_datadir}/hime/
%{_datadir}/pixmaps/hime/
%{_datadir}/pixmaps/hime.png
%{_datadir}/doc/hime/
%{_mandir}/*/*
%{_libdir}/hime/*
%files gtk2
%if "%(test -e %{_libdir}/gtk-2.0/%(pkg-config --variable=gtk_binary_version gtk+-2.0)/immodules/im-hime.so && echo 1 || echo 0)" == "1"
%{_libdir}/gtk-2.0/%(pkg-config --variable=gtk_binary_version gtk+-2.0)/immodules/im-hime.so
%else
%{_libdir}/gtk-2.0/immodules/im-hime.so
%endif
%files gtk3
%if "%(test -e %{_libdir}/gtk-3.0/%(pkg-config --variable=gtk_binary_version gtk+-3.0)/immodules/im-hime.so && echo 1 || echo 0)" == "1"
%{_libdir}/gtk-3.0/%(pkg-config --variable=gtk_binary_version gtk+-3.0)/immodules/im-hime.so
%else
%{_libdir}/gtk-3.0/immodules/im-hime.so
%endif
%files devel
%{_includedir}/hime-im-client-attr.h
%{_includedir}/hime-im-client.h
%changelog
* Tue Dec 10 2011 HIME - 0.9
* Tue Dec 12 2011 Edward Liu - 2.5.1
* Tue Dec 06 2011 Adam Jackson <ajax@redhat.com> - 1.6.1-2
- Rebuild for new libpng
* Tue May 03 2011 Parag Nemade <paragn AT fedoraproject.org> - 1.6.1-1
- update to latest stable release 1.6.1
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.5.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Thu Dec 09 2010 Parag Nemade <paragn AT fedoraproject.org> - 1.5.5-4
- Resolves:rh#660992-FTBFS gcin-1.5.5-3.fc15
* Tue Sep 07 2010 Parag Nemade <paragn AT fedoraproject.org> - 1.5.5-3
- update to latest stable release 1.5.5
- Fix gtk-im module Makefile issue
* Tue Jun 29 2010 Chung-Yen Chang <candyz0416@gmail.com> - 1.5.5.pre3-2
- update to 1.5.5.pre3
* Wed Jun 23 2010 Chung-Yen Chang <candyz0416@gmail.com> - 1.5.1-1
- update to 1.5.1
* Wed Jun 23 2010 Chung-Yen Chang <candyz0416@gmail.com> - 1.5.0-2
- update to 1.5.0
* Wed Jun 23 2010 Chung-Yen Chang <candyz0416@gmail.com> - 1.5.0-1
- update to 1.5.0
* Wed May 05 2010 Chung-Yen Chang <candyz0416@gmail.com> - 1.4.6-2
- patch to add -lm to LDFLAGS
- patch to stop using GTK+ deprecated AP
* Tue Jan 05 2010 Chung-Yen Chang <candyz0416@gmail.com> - 1.4.6-1
- update to 1.4.6
* Fri Nov 27 2009 Chung-Yen Chang <candyz0416@gmail.com> - 1.4.5-6
- fix No icon for im-chooser (#468829)
* Tue Nov 24 2009 Chung-Yen Chang <candyz0416@gmail.com> - 1.4.5-5
- fix No icon for im-chooser (#468829)
* Mon Nov 16 2009 Chung-Yen Chang <candyz0416@gmail.com> - 1.4.5-4
- Rebuild
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.4.5-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Thu May 07 2009 Chung-Yen Chang <candyz0416@gmail.com> - 1.4.5-2
- remove gtk_bug_fix.so and rebuild
* Thu May 07 2009 Chung-Yen Chang <candyz0416@gmail.com> - 1.4.5-1
- update to 1.4.5
* Tue Mar 31 2009 Michael Schwendt <mschwendt@fedoraproject.org> - 1.4.4-5
- fix unowned directory (#473616)
* Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.4.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Wed Feb 04 2009 Chung-Yen Chang <candyz0416@gmail.com> - 1.4.4-3
- rename Changelog to Changelog.html
* Wed Feb 04 2009 Chung-Yen Chang <candyz0416@gmail.com> - 1.4.4-2
- rename README to README.html
* Wed Feb 04 2009 Chung-Yen Chang <candyz0416@gmail.com> - 1.4.4-1
- update to 1.4.4
* Tue Oct 21 2008 Jens Petersen <petersen@redhat.com> - 1.4.2-4
- add gcin-1.4.2-gtk-immodules-lang.patch to not enable gcin gtk immodule for all
langs (#453093)
- spec file cleanup
- update xinput conf file to set icon and setup program (#456512)
* Mon Sep 29 2008 Jens Petersen <petersen@redhat.com> - 1.4.2-3
- update im-client.patch to fix patch fuzz
* Fri Jun 27 2008 Chung-Yen Chang <candyz0416@gmail.com> - 1.4.2-2
- update gcin.conf (change gcin to /usr/bin/gcin)
- add imsettings to Requires
- fix bug #453085
* Thu Jun 26 2008 Chung-Yen Chang <candyz0416@gmail.com> - 1.4.2-1
- update to 1.4.2
* Fri Jun 20 2008 Chung-Yen Chang <candyz0416@gmail.com> - 1.4.1-1
- update to 1.4.1
* Wed May 21 2008 Chung-Yen Chang <candyz0416@gmail.com> - 1.4.0-1
- update to 1.4.0
* Sat May 17 2008 Chung-Yen Chang <candyz0416@gmail.com> - 1.3.9-3
- add /bin/sh /bin/bash to requires
* Mon Feb 18 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 1.3.9-2
- Autorebuild for GCC 4.3
* Wed Jan 30 2008 Chung-Yen Chang <candyz0416@gmail.com> - 1.3.9-1
- update to 1.3.9
* Wed Jan 23 2008 Chung-Yen Chang <candyz0416@gmail.com> - 1.3.8-1
- update to 1.3.8
* Tue Nov 27 2007 Chung-Yen Chang <candyz0416@gmail.com> - 1.3.7.1-1
- update to 1.3.7.1
* Mon Oct 15 2007 Chung-Yen Chang <candyz0416@gmail.com> - 1.3.5-2
- update im-client.patch and newcj3.patch
* Sun Oct 14 2007 Chung-Yen Chang <candyz0416@gmail.com> - 1.3.5-1
- update to 1.3.5
* Thu Sep 20 2007 Chung-Yen Chang <candyz0416@gmail.com> - 1.3.4-3
- update license field to LGPLv2
- add im-chooser to require
* Tue Apr 17 2007 Chung-Yen Chang <candyz0416@gmail.com> - 1.3.4-2
- disable i18n and do not make po
* Tue Apr 17 2007 Chung-Yen Chang <candyz0416@gmail.com> - 1.3.4-1
- update to 1.3.4
* Tue Jan 30 2007 Chung-Yen Chang <candyz0416@gmail.com> - 1.3.3-1
- update to 1.3.3
* Mon Jan 01 2007 Chung-Yen Chang <candyz0416@gmail.com> - 1.3.2-1
- update to 1.3.2
* Sun Dec 03 2006 Chung-Yen Chang <candyz0416@gmail.com> - 1.3.1-1
- update to 1.3.1
* Thu Nov 23 2006 Chung-Yen Chang <candyz0416@gmail.com> - 1.3.0.1-2
- rebuild
* Thu Nov 23 2006 Chung-Yen Chang <candyz0416@gmail.com> - 1.3.0.1-1
- update to 1.3.0.1
* Fri Nov 17 2006 Chung-Yen Chang <candyz0416@gmail.com> - 1.2.9-3
- add gcin129update.patch
* Fri Nov 17 2006 Chung-Yen Chang <candyz0416@gmail.com> - 1.2.9-2
- update NewCJ3.cin
* Wed Nov 15 2006 Chung-Yen Chang <candyz0416@gmail.com> - 1.2.9-1
- update to 1.2.9
- add NewCJ3.cin
* Fri Oct 20 2006 Chung-Yen Chang <candyz0416@gmail.com> - 1.2.8-1
- update to 1.2.8
* Mon Oct 09 2006 Chung-Yen Chang <candyz0416@gmail.com> - 1.2.7-1
- update to 1.2.7
* Thu Oct 05 2006 Christian Iseli <Christian.Iseli@licr.org> 1.2.6-2
- rebuilt for unwind info generation, broken in gcc-4.1.1-21
* Tue Sep 26 2006 Chung-Yen Chang <candyz0416@gmail.com> - 1.2.6-1
- update to 1.2.6
* Fri Sep 15 2006 Chung-Yen Chang <candyz0416@gmail.com> - 1.2.5-2
- rebuild
* Fri Sep 08 2006 Chung-Yen Chang <candyz0416@gmail.com> - 1.2.5-1
- update to 1.2.5
- add icons
* Tue Sep 05 2006 Chung-Yen Chang <candyz0416@gmail.com> - 1.2.4-1
- update to 1.2.4
* Fri Sep 01 2006 Chung-Yen Chang <candyz0416@gmail.com> - 1.2.3-3
- make tag and make build again
* Fri Sep 01 2006 Chung-Yen Chang <candyz0416@gmail.com> - 1.2.3-2
- make new-sources to upload new source tarball
* Fri Sep 01 2006 Chung-Yen Chang <candyz0416@gmail.com> - 1.2.3-1
- update to 1.2.3
* Tue Aug 29 2006 Chung-Yen Chang <candyz0416@gmail.com> - 1.2.2-13
- typo fix
* Thu Aug 24 2006 Chung-Yen Chang <candyz@cle.linux.org.tw> - 1.2.2-12
- modify spec file only for fc5 and later (branch the spec file)
* Thu Aug 24 2006 Chung-Yen Chang <candyz@cle.linux.org.tw> - 1.2.2-11
- fix to handle fedora tag correctly
* Thu Aug 24 2006 Chung-Yen Chang <candyz@cle.linux.org.tw> - 1.2.2-10
- Remove patch5 (not necessary)
* Wed Aug 23 2006 Chung-Yen Chang <candyz@cle.linux.org.tw> - 1.2.2-9
- Fix patch5 for fc3 only bug
* Sun Aug 20 2006 Chung-Yen Chang <candyz@cle.linux.org.tw> - 1.2.2-8
- Fix changelog
* Sun Aug 20 2006 Chung-Yen Chang <candyz@cle.linux.org.tw> - 1.2.2-7
- Remove -devel subpackage
- install desktop file
* Sat Aug 19 2006 Chung-Yen Chang <candyz@cle.linux.org.tw> - 1.2.2-6
- a few more fixes from Jens Petersen
* Sat Aug 19 2006 Chung-Yen Chang <candyz@cle.linux.org.tw> - 1.2.2-5
- improvements from Jens Petersen:
- don't use configure macro
- add .conf suffix to xinput.d file and update install scripts for fc6
- move lib to libdir and drop ld.so.conf.d file
- other minor cleanup
* Sat Aug 19 2006 Chung-Yen Chang <candyz@cle.linux.org.tw> - 1.2.2-4
- rebuild 1.2.2-4
* Fri Aug 18 2006 Chung-Yen Chang <candyz@cle.linux.org.tw> - 1.2.2-3
- Add COPYING Changelog to doc
- Use Dist Tag
* Fri Aug 18 2006 Chung-Yen Chang <candyz@cle.linux.org.tw> - 1.2.2-2
- fix x86_64 problems
* Tue Aug 17 2006 Chung-Yen Chang <candyz@cle.linux.org.tw> - 1.2.2-1
- rebuild 1.2.2-1
* Tue Aug 17 2006 Chung-Yen Chang <candyz@cle.linux.org.tw> - 1.2.1-7
- rebuild 1.2.1-7
* Wed Aug 16 2006 Chung-Yen Chang <candyz@cle.linux.org.tw> - 1.2.1-4
- rebuild 1.2.1-4
* Thu Jul 13 2006 Chung-Yen Chang <candyz@cle.linux.org.tw> - 1.2.1-1
- update to 1.2.1
* Mon May 08 2006 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 1.2.0
* Mon May 01 2006 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 1.1.9
* Mon Apr 03 2006 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 1.1.8
* Wed Mar 29 2006 Chung-Yen Chang <candyz@cle.linux.org.tw>
- rebuild for FC5
* Wed Feb 22 2006 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 1.1.7
* Thu Feb 02 2006 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 1.1.6
* Sat Jan 07 2006 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 1.1.5
* Mon Dec 19 2005 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 1.1.4-2
* Mon Dec 12 2005 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 1.1.4
* Mon Nov 21 2005 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 1.1.3
* Tue Nov 08 2005 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 1.1.2
* Sun Oct 30 2005 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 1.1.1
* Mon Oct 24 2005 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 1.1.0
* Mon Oct 03 2005 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 1.0.9
* Mon Sep 26 2005 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 1.0.8
* Mon Sep 19 2005 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 1.0.7
* Mon Sep 05 2005 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 1.0.4
* Mon Aug 22 2005 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 1.0.3
* Wed Aug 10 2005 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 1.0.2
* Fri Jul 08 2005 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 1.0.1
* Mon Jun 27 2005 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 1.0.0
* Thu Jun 23 2005 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 0.9.9
* Thu Jun 16 2005 Chung-Yen Chang <candyz@cle.linux.org.tw>
- rebuild for fc4
* Tue May 31 2005 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 0.9.7
* Tue May 19 2005 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 0.9.6
* Tue May 12 2005 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 0.9.5
* Wed May 04 2005 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 0.9.3
* Mon Apr 25 2005 Chung-Yen Chang <candyz@cle.linux.org.tw>
- fix alternatives
* Fri Apr 22 2005 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 0.9.2
* Sat Apr 16 2005 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 0.9.1
* Tue Apr 05 2005 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 0.9.0
* Tue Mar 22 2005 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 0.8.9
* Sat Mar 14 2005 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 0.8.8
* Sat Mar 08 2005 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 0.8.7
* Sat Mar 05 2005 Chung-Yen Chang <candyz@cle.linux.org.tw>
- update to 0.8.6
* Mon Aug 23 2004 Chung-Yen Chang <candyz@cle.linux.org.tw>
- frist build for Fedora Core 2

View File

@@ -0,0 +1,9 @@
XIM=hime
XIM_PROGRAM=/usr/bin/hime
XIM_ARGS=
ICON=/usr/share/pixmaps/hime.png
PREFERENCE_PROGRAM=/usr/bin/hime-setup
SHORT_DESC="hime"
GTK_IM_MODULE=hime
QT_IM_MODULE=hime
DEPENDS=

View File

@@ -0,0 +1,97 @@
# New ports collection makefile for: zh-hime
# Date created: 2012/06/20
# Whom: The HIME project
# Depends: git gtk20 intltool libXtst gtk30 gmake ja-anthy
# zh-libchewing
#
# $FreeBSD$
#
PORTNAME= hime
DATE!= /bin/date "+%Y%m%d"
PORTVERSION= 0.9.10+git${DATE}
CATEGORIES= chinese textproc
MASTER_SITES= http://hime.luna.com.tw/
MAINTAINER= The HIME project
COMMENT= A GTK2+/GTK3+ based universal input method platform
LICENSE= LGPL21
USE_GMAKE= yes
HAS_CONFIGURE= yes
USE_XORG= xtst
USE_GNOME= gtk20
USE_LDCONFIG= yes
WITH_DEBUG= yes
OPTIONS= NLS "Enable Native Language Support" on \
GTK3_IM_MODULE "Build the GTK+3 im-module" on \
ANTHY "Support Anthy input method" on \
CHEWING "Support Chewing input method" on
TMP_PLIST_DIR= build
do-fetch:
do-extract:
@${RM} -rf ${WRKDIR}
@${MKDIR} ${WRKDIR}
(cd ${WRKDIR} && \
git clone --depth=1 git://github.com/hime-ime/hime.git && \
${LN} -s ${PORTNAME} ${PORTNAME}-${PORTVERSION})
pre-patch:
@${SED} -i -e 's/^\( install -m 644 \*\.1 \$$(man1dir)\)$$/\1 \&\& find .\/ -name "*.1" -exec gzip $$(man1dir)\/{} \\;/g' ${WRKDIR}/${PORTNAME}/man/Makefile
.include <bsd.port.options.mk>
.if defined(WITH_GTK3_IM_MODULE)
BUILD_DEPENDS+= ${LOCALBASE}/libdata/pkgconfig/gtk+-3.0.pc:${PORTSDIR}/x11-toolkits/gtk30
GTK3_BINARY_VERSION!= /usr/local/bin/pkg-config --variable=gtk_binary_version gtk+-3.0
.else
CONFIGURE_ARGS+=--disable-gtk3-im-module
.endif
.if defined(WITH_ANTHY)
BUILD_DEPENDS+= ${LOCALBASE}/include/anthy/anthy.h:${PORTSDIR}/japanese/anthy
.else
CONFIGURE_ARGS+=--disable-anthy
.endif
.if defined(WITH_CHEWING)
BUILD_DEPENDS+= zh-libchewing>=0.3.2:${PORTSDIR}/chinese/libchewing
.else
CONFIGURE_ARGS+=--disable-chewing
.endif
.if !defined(WITHOUT_NLS)
USE_GETTEXT= yes
.else
CONFIGURE_ARGS+=--disable-nls
.endif
post-install:
@${RM} -rf ${WRKDIR}/${TMP_PLIST_DIR}
@${MKDIR} ${WRKDIR}/${TMP_PLIST_DIR}
( cd ${WRKDIR}/${PORTNAME} && \
${GMAKE} DESTDIR=${WRKDIR}/${TMP_PLIST_DIR} install && \
cd ${WRKDIR}/${TMP_PLIST_DIR}${PREFIX} && \
${FIND} ./ -type f > ${TMPPLIST} && \
${FIND} ./ -type l >> ${TMPPLIST} && \
mtree -U -f ${MTREE_FILE} && \
DIRLIST=`mtree -L -d -f ${MTREE_FILE} | ${SED} -e 's/ extra$$//g'` && \
for DIR in $$DIRLIST; do \
case "$$DIR" in \
lib/gtk-2.0|lib/gtk-3.0|share/locale/en_US) ;; \
*) ${FIND} $$DIR -type d | ${SORT} -r | ${SED} -e 's/^/@dirrm /g' >> ${TMPPLIST};; \
esac ; \
done; \
echo '@exec gtk-query-immodules-2.0 > %D/etc/gtk-2.0/gtk.immodules || /usr/bin/true' >> ${TMPPLIST}; \
echo '@unexec gtk-query-immodules-2.0 > %D/etc/gtk-2.0/gtk.immodules || /usr/bin/true' >> ${TMPPLIST} )
.if defined(WITH_GTK3_IM_MODULE)
echo '@exec gtk-query-immodules-3.0 > %D/lib/gtk-3.0/${GTK3_BINARY_VERSION}/immodules.cache 2>/dev/null || /usr/bin/true' >> ${TMPPLIST};
echo '@unexec gtk-query-immodules-3.0 > %D/lib/gtk-3.0/${GTK3_BINARY_VERSION}/immodules.cache 2>/dev/null || /usr/bin/true' >> ${TMPPLIST};
.endif
.include <bsd.port.mk>

View File

@@ -0,0 +1,2 @@
The HIME INPUT METHOD EDITOR, HIME (姫) is a GTK2+/GTK3+ based universal input method platform.
WWW: http://hime.luna.com.tw

View File

@@ -0,0 +1,16 @@
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

To enable HIME when starting X, Please set the following environment
variables in the starting X scripts, such as ~/.xinitrc or ~/.xsession:
# set the LOCALE data if necessary
export LC_ALL=zh_TW.UTF-8
export XMODIFIERS="@im=hime"
export GTK_IM_MODULE=hime
export QT_IM_MODULE=hime
# launch HIME in advance for the applications which are still using XIM
exec hime &
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

View File

@@ -0,0 +1,21 @@
#!/bin/sh
GSETTINGS=$(whereis -b gsettings | awk '{print $2}')
SED=$(whereis -b sed | awk '{print $2}')
if [ -z "$GSETTINGS" ]; then
echo "Command 'gsettings' not found!"
exit 1
fi
RESOULT=$("$GSETTINGS" get com.canonical.Unity.Panel systray-whitelist || echo "")
if [ -n "$RESOULT" ]; then
HIME=$(echo "$RESOULT" | grep hime)
if [ -z "$HIME" ]; then
NEW_SCHEMA=$("$GSETTINGS" get com.canonical.Unity.Panel systray-whitelist | "$SED" -e "s/]$/, \'hime\']/")
"$GSETTINGS" set com.canonical.Unity.Panel systray-whitelist "$NEW_SCHEMA"
else
echo "'hime' is already in the systray-whitelist of Unity Panel. exiting..."
fi
fi