The Super Quick Version
This will work in most versions of Linux. This quick guide is aimed towards a Linux using beginner who boots into X. #FreeBSD and #NetBSD have their own sections, each beginning with a quickstart guide. (Actually, the quickstart guide for NetBSD uses uim rather than scim, but at present, I don't think it really merits a separate page.)
- If your system has a package for scim-anthy, and has a package manager that tracks dependencies, install scim-anthy which will pull in scim and anthy. If you have to install from source, install anthy first, then scim, then scim-anthy (See #Installation)
- Add to your .bash_profile
export XMODIFIERS='@im=SCIM'
export LC_CTYPE=ja_JP.utf8
export GTK_IM_MODULE=“scim”
export QT_IM_MODULE=“scim”
scim -d
(See #Environment, #Locale and #Starting Scim)
- Make sure you have Japanese fonts (See #Fonts)
- Make sure you have a ja_JP UTF-8 locale (See #Locale)
locale -a |grep ja_JP
- If you will be using Japanese in a terminal as well as, say firefox, make sure you have a UTF-8 capable
terminal. (See #Terminals)
- Log out and log back in
- Start scim with Ctrl+space
- Type in something in romaji, it will appear as hiragana (See #Using scim)
- Hit the space bar to bring up kanji selection
- Navigate the kanji selection with the arrow keys
- Hit space to select your kanji
- Hit enter
- When done inputting Japanese, hit Ctl+space again to turn it off.
If you boot into console mode rather than boot into an Xsession, add the export and scim -d lines to your .xinitrc rather than your bash profile. Add them above the line that calls the window manager.
Would you explain that please? It didn't work
Ok, the much longer version.
Installation
Japanese in Linux and other Unix like systems, becomes easier all the time. Most of this howto will focus on using the scim editor, anthy conversion method and scim-anthy input engine. Note that this howto will only refer to inputting Japanese in X, not the console.
Most distributions now have packages for scim, anthy and scim-anthy. As scim-anthy needs anthy and scim to work, a package manager that takes care of dependencies (e.g., apt, yum, pacman and emerge) should install all three programs. For example, in Ubuntu, one can do
apt-get install scim-anthy
This will also install scim and scim-anthy.
If your distribution doesn't have a scim-anthy package, and you have to build it from source, do it in the following order. Download and install anthy. After downloading the tarball
tar zxvf anthy-
.tar.gz
cd anthy-
./configure --prefix=/usr && make && make install
Replace
This will install the anthy libraries in /usr rather than its default of /usr/local. If you prefer to have programs in /usr/local then leave out the --prefix=/usr/ part.
Once anthy is installed, you can download and install scim. It is installed in the same way
tar zxvf scim-
.tar.gz
cd scim-
./configure --prefix=/usr && make && make install
Lastly do the same with scim-anthy. Note that the order of installation is important, first install anthy, then scim, and lastly scim-anthy.
If you install from source, you are often better off installing everything from source. That is, if your distribution has a package for scim, but not scim-anthy, it might put scim in some odd place where scim-anthy won't be able to find it. So, if you have to install any of the three programs from source, install all three of them from source.
Environment
For scim to work, you must set some environment variables. I've often gotten by with simply setting XMODIFIERS and setting LC_CTYPE to my native locale with UTF-8 encoding.
export XMODIFIERS='@im=SCIM'
export LC_CTYPE=en_US.utf8
However, this doesn't work all the time, which is one reason the quick guide takes a more conservative approach. Sometimes, your native language in UTF-8 will only work if you set the GTK_IM_MODULE and QT_IM_MODULE lines. It might vary with distribution and even application. I haven't found any real pattern to it, though one probably exists.
Setting the LC_CTYPE to Japanese rather than your native language doesn't seem to really affect any of the programs that I use. If you'd rather have the LC_CTYPE in your native language. feel free to try it. If it doesn't work, be sure that you have the GTK_IM_MODULE and QT_IM_MODULE variables set as in the quick start at the beginning of this article.
In the quick start, I say that one should add the variables to their .bash_profile. This way, they're set whenever you log into the system. If you use Ubuntu, Fedora, PCLINUXOS or any of the more popular newcomer friendly distros, they boot up into a graphical environment. However, if you're using Slackware, ArchLinux or Gentoo, you often choose to boot into a console. If you boot into text mode, then you don't necessary need these variables set till you start X. In that case, you might simply put these settings into your .xinitrc. Put it in before the line that calls your window manager, for example
export XMODIFIERS='@im=SCIM'
export LC_CTYPE=ja_JP.utf8
export GTK_IM_MODULE=“scim”
export QT_IM_MODULE=“scim”
scim -d
exec fluxbox
Locale
These days, most distributions include locales by default. Some of them, for example, ArchLinux, don't. With Arch, you have to uncomment the locales that you want to have in /etc/locale.gen then run the command
locale-gen
With Debian, at one point (I haven't used it for awhile, this may no longer be the case) you had to first install and configure locales.
apt-get install locales
dpkg-reconfigure locales
(This might be what Ubuntu does when you choose to add Japanese support from their System, Administration, Language Support menu, as well as add #Fonts. It's possible that rather than installing everything Ubuntu thinks you'll need for Japanese support, just doing the above would suffice.)
Although most distributions use ja_JP.utf8 one should always check this
locale | grep ja_JP
Sometimes, you might get an answer like ja_JP.utf-8 or ja_JP.UTF8. This is case sensitive so set your LC_CTYPE according to the result. Otherwise, you'll get an error message like locale not supported by environment. (Depending upon the application, you might not see that message, but if for example, you open one terminal from another terminal, you will see it.)
Starting Scim
In the quick start, scim is started as soon as you log in. It doesn't seem to use too many resources, so this won't really hurt anything. It can be done that way, although if you boot into text mode, you might, as shown above, put it in .xinitrc rather than your .bash_profile. However, if you only use it on rare occasions, you eliminate that line in your startup file (whether it be .bash_profile or .xinitrc) and just call it when needed. Open a terminal window and type
scim -d
Once scim starts, you can then use it in your applications. (It might not work in the terminal that you used to start it, however. Also, if you already have, for example, firefox running, you might have to restart firefox to get scim to work with it.
Fonts
Many distributions include Japanese fonts by default. However, if they don't, you'll have to install them. With Ubuntu, fonts are installed if you choose to add Japanese support. With RedHat and its offshoots, one can search for Japanese fonts with
yum search fonts-ja
At different times, I've had different results. For instance, CentOS offered ttfonts-ja, Fedora offered something like fonts-japanese.noarch. Regardless, the search for fonts-ja usually gave me results. In ArchLinux one adds ttf-arphic-uming and ttf-arphic-ukai with pacman.
One can always donwnload the substitute kochi fonts from sourceforge.jp. Get the package kochi-substitute-20030809.tar.bz2. Decompress and untar it, and it will create a kochi-substitute-20030809 directory. In the directory you'll see two files with a ttf ending, the kochi-gothic and kochi-mincho substitute fonts. Move them into one of the directories that your distribution searches for fonts--as mentioned above, you can grep FontPath in /etc/X11/xorg.conf.
For the beginner, you decompress and untar it with
tar jxvf kochi-substitute-20030809.tar.bz2
Most font directories (a popular location on many distros is /usr/X11R6/lib/X11/fonts) will already have a truetype, TrueType or TTF directory. Move the fonts into one of those (after making sure that directory is listed in your xorg.conf's FontPaths.)
Terminals
If you wish to use Japanese in an xterm with mutt or other text files, you will also need a terminal capble of displaying Japanese. Not every terminal can display UTF-8 encoding. Some terminals can't display any Asian characters, others, such as rxvt and mrxvt, will be able to use the older EUC encoding, but not UTF-8. The default xterm cannot display Japanese, however, these days, most systems also install uxterm, which can display UTF-8. If you use Gnome, KDE, or Xfce, their default terminals work. The vim editor usually has no trouble with Japanese, however, Slackware and some others actually use elvis. (The BSD's use nvi). One way to tell is do
which vi
You might get an answer like
/usr/bin/vi
Now do
ls -l /usr/bin/vi
In Slackware, you'd see something like
/usr/bin/vi -> /usr/bin/elvis
Install vim (it's available as a Slackware package) if it's not already installed, and change the symbolic link to point to vim. For example
cd /usr/bin
rm vi
ln -s vim vi
Make sure vim is in /usr/bin first by typing the command
which vim
Using scim
To switch to Japanese conversion, hit Ctrl+space. You should see a small widget appear in the lower right hand corner of your screen. If you type in romaji, for example shi, you should then see the hiragana for shi. Hitting the space bar will bring up a list of kanji--you can navigate the kanji with the arrow keys. Hitting space again will select the kanji that you've chosen.
In a few recent Fedora 7 installations, Ctl+space didn't work. Generally, when scim-anthy is installed, a $HOME/.scim/config file is created, with various defaults, includng that of using Ctl+space to open and close the input widget. In these Fedora installs, that line was blank. The scim-anthy application itself was working without problem, as long as I clicked on the icon it placed in the upper right of the Gnome screen when I started scim.
In this case, I was able to fix it by opening my $HOME/.scim/config file and adding the line
/Hotkeys/FrontEnd/Trigger = Control+space
to it. (Note that you can use other key combinations if you prefer--I find that Ctrl+space is convenient for me, and these Fedora installs aside, it is the default.)
If you are in an application that will not support scim, for example a standard xterm, then when you hit Ctl+space you won't see anything. If you see kana, but only see squares when you hit the space bar to bring up kanji, it means (and this is in the scim FAQ) that scim can't find the fonts. Check your font paths in xorg.conf with
grep FontPath /etc/X11/xorg.conf
and make sure that some Japanese fonts are there. (See #Fonts)
FreeBSD
Once again, the quick start.
- Install scim-anthy (using ports will also pull in scim and anthy)
cd /usr/ports/japanese/scim-anthy
make install clean
- Install fonts
cd /usr/ports/japanese/kochi-ttfonts
make install clean
- If you boot up into graphical mode, add the following to your shell's profile (The syntax here is for Bourne style shells, sh, bash, zsh and ksh.) If booting up into text mode, then add the lines to your .xinitrc above the line which calls your window manager as explained above in #Environment #Locale and #Starting Scim
export XMODIFIERS='@im=SCIM'
export LC_CTYPE=ja_JP.UTF-8
export GTK_IM_MODULE=“scim”
export QT_IM_MODULE=“scim”
scim -d
The rest is the same as #The Super Quick Version for Linux. The only real difference here is that while most versions of Linux use ja_JP.utf8, FreeBSD uses ja_JP.UTF-8. As previously mentioned, when setting LC_CTYPE, case is important.
NetBSD
The quickstart version of NetBSD doesn't use scim-anthy, however, as mentioned at the very beginning of this article, I didn't feel it was worth giving it a separate page. The basic concepts are relatively similar.
NetBSD's pkgsrc doesn't yet have scim-anthy. It does, however, have anthy and uim, another popular input method.
- Install the needed programs
cd /usr/pkgsrc/inputmethod/anthy
make install clean; make clean-depends
cd /usr/pkgsrc/inputmethod/uim
make PKG.OPTIONS.uim="-canna' install clean; make clean-depends
- Install fonts
cd /usr/pkgsrc/fonts/kochi-ttf
make install clean; make clean-depends
- Install a Japanese locale
After you're connected
cd pub/NetBSD/NetBSD-current/src/share/locale/ctype
get en_US.UTF-8.src
For our example, we'll assume that you logged on as user joe and put the UTF-8.src file in your home directory
cd /usr/share/locale
sudo make locale < /home/joe/en_US.UTF-8.src > ja_JP.UTF-8
- Add the following to your .xinitrc above the line calling your window manager
(I'm not sure if you'd use the & if you boot into X and add it to your shell's profile--most of the NetBSD users I know boot into text mode though)
export XMODIFIERS=@im=uim
uim-xim --engine=anthy &
- Start x
- Hit shift+space to open the input manager. Select kanj in the same way that you do with scim, typing in romaji, seeing hiragana and hitting the space bar to bring up a list of kanji.
- To stop using uim, hit shift+space again
NetBSD also has a collection of WIP (Work in Progress) packages. (That link takes you to the main page, which explains how to download and install the WIP tree.) As the page explains, you untar the WIP pkgsrc tree in your /usr/pkgsrc directory. Then, you can cd into the WIP scim-anthy directory and do the usual make install clean; make clean-depends.
If the package fails to build with an unable to allocate memory error, add the following to the scim-anthy Makefile's configuration options. (If you look at the Makefile, it will be fairly plain where these are.)
UNLIMIT_RESOURCES= datasize
After that scim-anthy can be used in the same way it's used with Linux or FreeBSD, adding the various XMODIFIER and LC_CTYPE lines to your .xinitrc, along with scim -d if you want it to always be running. It will then be called with Ctrl+space and work as you would expect, entering romaji, seeing hiragana and hitting the space bar to view available kanji.
Using_scim-anthy