続き
前回の作業のメモはこちら
Windows Subsystem for Linuxを設定する
今回は日本語入力システムの導入の話。
デスクトップ環境
前回サラっと触れたがちゃんと言及していなかった。デスクトップ環境はLXDEを選んだ。今後これを詳しく設定するかわからないが、やったこととして書いておく。VcXsrvを起動させておく。
sudo apt install xlde
export DISPLAY=:0.0
xpalel --profile LXDE &
これでパネルだけ出しておけばランチャーから適宜アプリを起動できる。WSLをコンソールとして使いつづけるなら最後は$
を入れておく。--profile LXDE
があるほうがいいのかは不明。
Windowsのフォントを使う
Windowsのフォントフォルダのシンボリックリンクをfontsディレクトリに貼ってキャッシュクリア
sudo ln -s /mnt/c/Windows/Fonts /usr/share/fonts/windows
sudo fc-cache -fv
これでWindowsでつかってるフォントをLinuxでも使える。WindowsにRicty
やらSource Han Sans/Serif
などを導入済みだと楽できる。
Emacsの導入
Emacs 26など最新版を入れたい場合はレポジトリを追加してからインストールする
sudo add-apt-repository ppa:kelleyk/emacs
sudo apt update
sudo apt install emacs26 emacs26-el
ちなみにアンインストールしたい場合 sudo apt remove --autoremove emacs26 emacs26-nox
参照
How to Install GNU Emacs 26.1 in Ubuntu 18.04, 16.04, 18.10
日本語入力ソフト
~~未解決問題アリ~~解決済み
SKKを使いたいのだが、今時のLinuxはどのIMがいいのだろう?昔Linuxを使っていた頃はibusがUbuntuで標準になってきて、fcitxも出てきたころ(そんなに前じゃない)だった。でもイマイチ使いづらくて長く使っていたuimのままだった。Emacsでもuim.elがあるし。今回、ibus-skkやfcitx-skkも試してみたのだが、よくわからず、結局uimにした。
sudo apt install uim-skk uim-el
ついでにuim.elも入れておく。uimで使える入力システムが一気に入るので、uim-pref-gtk&
などでskkだけ残してもいい。uim.elはEmacsのパッケージ管理で導入できるかと思ったけど。melpa
とかにはないんだっけ? uimのgithubで本体とまとめて配布しているからかな。
ひらがな入力が有効になっているときの記号も半角にしたいので、昔やった記憶を掘り起こして.uim
に以下を書いた。
(解決版に書き換え済み)
(require-module "skk")
(define skk-ja-rk-rule
(append
'(
((("~") . ()) ("~" "~" "~"))
((("!") . ()) ("!" "!" "!"))
((("?") . ()) ("?" "?" "?"))
((("@") . ()) ("@" "@" "@"))
((("#") . ()) ("#" "#" "#"))
((("$") . ()) ("$" "$" "$"))
((("%") . ()) ("%" "%" "%"))
((("^") . ()) ("^" "^" "^"))
((("&") . ()) ("&" "&" "&"))
((("*") . ()) ("*" "*" "*"))
((("(") . ()) ("(" "(" "("))
(((")") . ()) (")" ")" ")"))
((("{") . ()) ("{" "{" "{"))
((("}") . ()) ("}" "}" "}"))
((("\\") . ()) ("\\" "\\" "\\"))
((("+") . ()) ("+" "+" "+"))
((("~") . ()) ("~" "~" "~"))
((("<") . ()) ("<" "<" "<"))
(((">") . ()) (">" ">" ">"))
((("`") . ()) ("`" "`" "`"))
((("'") . ()) ("'" "'" "'"))
((("=") . ()) ("=" "=" "="))
((("""") . ()) ("""" """" """"))
((("_") . ()) ("_" "_" "_"))
(((";") . ()) (";" ";" ";"))
(((":") . ()) (":" ":" ":"))
((("z" "~")) ("~" "~" "~"))
((("z" "!")) ("!" "!" "!"))
((("z" "?")) ("?" "?" "?"))
((("z" "@")) ("@" "@" "@"))
((("z" "#")) ("#" "#" "#"))
((("z" "$")) ("$" "$" "$"))
((("z" "%")) ("%" "%" "%"))
((("z" "^")) ("^" "^" "^"))
((("z" "&")) ("&" "&" "&"))
((("z" "*")) ("*" "*" "*"))
((("z" "(")) ("(" "(" "("))
((("z" ")")) (")" ")" ")"))
((("z" " "). ())(" " " " " "))
)
skk-ja-rk-rule))
(define uim-pref-suppress-dot-uim-warning-dialog? #t)
ついでに、ひらがな入力のときにZ-SPC
で全角スペースを入れたり、.uim
がある状態でuim-pref-*
を開くと注意が出るのが邪魔なので消した。
未解決
でもこれは機能していない。最後の注意だけは消せたが、他は相変らず。記号の問題はわりとシリアスなのだが……。
解決した。文字コードはEUC-JPで書いてないといけないのだった。ちゃんと作者のGithubのドキュメントは読むべきだ。
ついでに、全角記号を出すための設定も書いておいた。そういえば昔もこれで困ったことがあったのを思い出した。
euc-jpへの変換はemacsを使ってもいい、シェルでやるなら
iconv -f UTF-8 -t EUC-JP .uim -o .uim
でいいと思う(元がUTF-8である場合)。これをやったらX Window Systemも含めて再起動。
uim-sh ~/.uim
を実行するとミスがないか教えてくれる。
なお、emacsで.uim
で開くなら
;; Local Variables:
;; mode: scheme
;; coding: euc-jp
;; End:
を末尾に書いておくといいかもしれない。
参照
uimのローマ字変換表の変更-落穂拾い
Ubuntu で uim-skk の設定 (~/.uim) - Serendip
Web Studio
CustomizeUim uim/uim-doc-ja - github
.bashrc
ここまできたので、一旦.bashrcへの追加分を書いておく。
export XIM=uim
export XMODIFIERS=@im=uim
export UIM_CANDWIN_PROG=uim-candwin-gtk
export GTK_IM_MODULE=uim
export QT_IM_MODULE=uim
export DISPLAY=:0.0
exec fish
Emacs Lisp
~~未解決問題アリ~~解決済み
~/.emacs.d/init.el
をバンバン書いていけばEmacs上で望みの環境が構築できる!
パッケージ管理やらはEmacsに特化した記事を後で投稿することにして、ここで関係しているuimのことだけ書いておく。
当然のようにuim.el
を読むようにしてやればいい。uimのgithubやArchiWikiを読む。
;; read uim.el
(require 'uim)
;; uncomment next and comment out previous to load uim.el on-demand
;(autoload 'uim-mode "uim" nil t)
;; key-binding for activate uim (ex. C-\)
(global-set-key "\C-\\" 'uim-mode)
;; Set UTF-8 as preferred character encoding (default is euc-jp).
(setq uim-lang-code-alist
(cons '("Japanese" "Japanese" utf-8 "UTF-8")
(delete (assoc "Japanese" uim-lang-code-alist)
uim-lang-code-alist)))
;インライン変換表示
(setq uim-candidate-display-inline t)
未解決
自力解決を記事にしたので参照
Ubuntu 18.04 (LTS)のemacs26でuim.elをつかう
手動で起動
これでEmacsが起動したときに自動でuim-mode
が読みこまれて有効になると思っていたが、手動で起動しないといけないみたい(だからキーバインド残した)?起動するとマイナーモードとしてモードラインに表示される。モードラインの一番左(文字コードの前)に表示されなかったっけ?LEIMで読み込むとこの位置に出てくるが、やっぱり手動で起動しないといけない。
キーバインドがとられる?
uim-modeが起動していると、Emacsのキーバインドが使えなくなる。ArchWikiだとIMのオン・オフのC-SPCがuimにとられるということを書いているが、全てのキーバインドがとられる。が、まだ試してない~~。→ダメだった~~C-x C-c
のような基本的なものも全て。
ArchWikiには.Xresources
か.Xdefaults
にEmacs*UseXIM: false
を書けとある
参照
UimEl uim/uim-doc-ja - github
Uim を使って日本語を入力 - ArchWiki
続く
とりあえずこれでEmacsがあたかもWindowsのネイティブアプリであるかのように動く(NTEmacsではなくて)のでハッピー。
次は.emacs
をガシガシ書いていく(コピペしてるだけが)ことになる。これは別に書く。