fbtermの日本語表示.uim-fepとuim-anthyで日本語入力も.ついでに,vimの256色対応も
てんこ盛り過ぎたのでuim-fepとuim-anthyの使い方と設定方法に関する記事を別にしました.
環境
- Ubuntu16.04LTS
- lenovo-S21e
目的
昨今のLinuxのディストリビューションは,デスクトップ環境がデフォルトでついてくるものが多い.
十分なスペックのPCであればヌルヌルと動いてくれるだろうが,貧弱なノートPCを使っているユーザーにとっては,
必要なときだけ立ち上がってくれれば十分だ.(人による)
基本は仮想コンソールで生活するのだ.
仮想コンソールとはctrl+alt+F1で移動できる正に文字だけの世界.
そのままだと日本語の表示すらできないが,ちょっと工夫してやれば画像だって表示できるのだ.
CUIで動作する素晴らしいアプリの数々に君はきっと魅了されるはずだ.
むしろ,GUIって使いにくいと思う場面が増えると思う.
そこで,普段では仮想コンソールを使用し,必要に応じてデスクトップ環境を立ち上げるようにすると,
- 省メモリ
- 省電力
- 高速化
が実現できる.
しか〜し.
この仮想コンソール.デフォルトだとすんごく使いにくい.
- 日本語が文字化けする
◆◆◆◆◆◆◆
- 日本語入力ができない
- vimの256色表示ができない
- fbterm導入時
特に三つめが致命的である.
そこで,この3つを導入し,設定ファイルを書いてやれば,上のすべての問題が解決され,素晴らしい環境が整う.
あと,uim関連の設定とか操作方法に関する記事が意外と少ないんで,書いておきます.
- 日本語表示のため
- fbterm
- 日本語入力のため
- uim-fep
- uim-anthy
と,その前に
本格的にCUIに移行する人は,GUIで起動しないように設定しておこう.
通常grubを設定すればGUIの起動を止められるはずなんだけど,
ubuntuの場合別の方法を取る必要がある.
(調べたら色々あるみたい.とりあえず自分の設定を書いておく)
念のためGRUBを設定しておく.
vim /etc/default/grub.conf
そして,
GRUB_CMDLINE_LINUX_DEFAUT="text"
に書き換えておく.
(´・ω・`)の場合これ以外だと逆に起動しないので,
そしてGRUBのアップデート
sudo update-grub
sudo update-grub2
次のコマンドでCUIで起動する設定になる.
sudo systemctl set-default multi-user.target
別の方法としては,/etc/default/grub.conf
を
GRUB_CMDLINE_LINUX_DEFAULT="systemd.unit=multi-user.target quiet nosplash"
または
GRUB_CMDLINE_LINUX_DEFAULT="systemd.unit=multi-user.target nosplash"
としてもいけるらしい.
ちょっとGUI使いたいというとき.
sudo systemctl start lightdm
CUIなんてもう嫌だ,GUI起動に戻したいという時.
sudo systemctl set-default graphical.target
caps lockをctrlに
悪名高いcaps lockをctrlにしておこう.
キーボードによってはctrl-capslockの入れ替え,もしくはcapslock ctrl化が必要だろう.
キーボードの配列を変更するには次のファイルをいじる
- /etc/default/keyboard
私の場合はこんな感じ.
# KEYBOARD CONFIGURATION FILE
# Consult the keyboard(5) manual page.
XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT=""
XKBOPTIONS="ctrl:nocaps"
BACKSPACE="guess"
ここにも書いてある通りman keyboardを見ると設定方法が書かれている.
もし,日本語配列のキーボードを使っているならUS配列として認識させておこう.
ブラケットやカッコの入力とってもしやすくなる.
ついでにバックスラッシュはUS配列よりも打ちやすくなる.
実は日本語配列のキーボードはTeXユーザーにとって,とっても親切な設計なのだ.
ちなみに全角半角切り替えが
`
になるので,このキーで日本語入力の切り替えができなくなる.
次の項目で対応策について触れてるよ.
仮想コンソール
仮想コンソールあるいはtty(teletypewriter)と呼ばれているものがある.
ctrl+alt+F1
でtty1に移動できる.
F2,F3だとtty2,tty3に移動できる.
F1-F6がttyでF7がttyS7であることが多いと思う.
そしてこのttyS7が通常のデスクトップ環境.
ちなみに,仮想コンソールに入っていれば,
ALT + 左右の矢印
で隣のttyに移動できる.
この仮想コンソールはX11を必要としない.
だからめちゃくちゃ軽い.速い.
ただし,コマンド操作しかできない.
さらには,
そのままだと日本語の表示すらできないが,ちょっと工夫してやれば画像だって表示できるのだ.
uim-fep & uim-anthyの導入
日本語入力を行うソフト達.
(fbtermの起動時にこれをオプションとして渡すので,先に...)
設定方法や使い方を書いてあるサイトがあんまりなかったので,ちょっとだけ詳しく書いておくよ.
uim自体はいれなくていいので.
sudo apt install uim-fep
sudo apt install uim-anthy
これを導入しよう.
uim-fep & uim-anthyの使い方と設定方法
別記事に分けました.
uim-fepとuim-anthyの使い方と設定方法
fbtermの導入
fbtermとは,おそらくframe buffer terminalの略称であろう.
そもそもframe bufferとは何か.
/dev/fb0に関係する雑談
linuxでは各種デバイスに簡単にアクセスできる.
つまり,モニターやスピーカーはファイルと同じようにアクセスできる.
int fd=open("/dev/fb0",IO_RDWR);
こんな風に.
なんだったら
FILE* fd=fopen("/dev/fb0","rwb");
でもいける.違いはバッファがあるかないか.
echo test.txt >/dev/fb0
とかしてやれば,permissionがあれば画面上の一列になんか変なものが表示されるはず.
clear
で消せる.
つまり,fbtermはこれを使って画面を乗っ取り,その上で端末を動作させているのだ.
時々,カーネルが吐くメッセージが下の仮想端末に表示されて,乗っ取り返されるときがある.
こういうときはclearとか,画面全体を描画しなおす操作をすればOK.
そのうち記事を作って遊ぶと思うので,ここではここまで.
本筋に戻る
ではfbtermを導入しよう.
sudo apt install fbterm
後,画面が小さかったりフォントが気に食わないということがあるだろう.
そんなときは~/.fbtermを編集だ.
デフォルトで~/.fbtermが作成されるから,それを見ながら適宜いじればよいと思う.
個人的には
font-names=Ubuntu mono
font-size=20
color-foreground=7
color-background=0
cursor-shape=1
ambiguous-wide=yes
こう設定している.
__Ubuntu mono__っていいよね.
特に0が...
サ・レ・オ・ツ って感じ〜〜 キャピッ
ただし,これだけだと日本語の表示が可能になるだけで,入力ができない.
sudoでないと起動できないよ
そういえば,/dev/fb0って所有者がrootで所有グループがvideoだったりする.
だからfbtermはsudoでないと実行できない.
/dev/fb0の権限を変えたりしてもいいが,自分のユーザーアカウントをvideoグループに追加しよう.
usermod -aG video <user name>
-aオプションをつけないと,それ以外のグループから追い出されるので注意
fbtermの自動起動
上の設定だけだと普通にログインした後,
fbterm
もしくは
fbterm -- uim-fep
と打たないとfbtermに入れない.面倒なので色々設定して自動ではいれるようにしておこう.
自動起動には~/.profileもしくは~/.bashrcにでも
fbterm -- uim-fep
と書けばいいんだけれども,
実はこれだけだと上手く行かない.
256色対応にしてvimの華麗なカラースキームを味わおう
ここはちょっと情報を探すのに苦労した.
何もしないとmolokaiなどカラースキームの色がつかない.
ついたとしても何か違う.
fbterm自体フレームバッファを乗っ取ってるから色なんて自由自在のはず.
なんで....色がおかしいんや...
molokaiが無残な配色に成り下がってしまった.
tput colorsが8のまま変わらない...
しかし,こんなことでへこたれる
(`・ω・´)
ではない.
これは少しfbtermの自動起動とか変わってくるが.
設定ファイルにこのように書けば良い.
まずは~/.profileだ.
if [ "$TERM" = "linux" ]
then
#/e]XXYYYYYY
#XXは色識別子
echo -en "\e]P0222222" #black
echo -en "\e]P8222222" #darkgray
echo -en "\e]P1803232" #darkred
echo -en "\e]P9982b2b" #red
echo -en "\e]P25b762f" #darkgreen
echo -en "\e]PA89b83f" #green
echo -en "\e]P3aa9943" #brown
echo -en "\e]PBefef60" #yellow
echo -en "\e]P4324c80" #darkblue
echo -en "\e]PC2b4f98" #blue
echo -en "\e]P5706c9a" #darkmagenta
echo -en "\e]PD826ab1" #magenta
echo -en "\e]P692b19e" #darkcyan
echo -en "\e]PEa1cdcd" #cyan
echo -en "\e]P7ffffff" #lightgray
echo -en "\e]PFdedede" #white
FBTERM=1 exec fbterm -- uim-fep
fi
お次は~/.bashrcだ.
case "$TERM" in
linux)
[ -n "$FBTERM" ] && export TERM=fbterm
;;
fbterm)
#何もしない
;;
*)
export TERM="xterm-256color"
esac
ちなみに仮想コンソールにログインした時に,
echo $TERM
と打つと,
linux
と表示されると思う.
つまりそういうこと.
fbtermを起動すると,$TERMをfbtermに設定しているのだ.
こうすることによってw3mのインライン画像を表示させることが可能になるのだ.
fbterm上でw3mの画像のインライン表示をさせる方法
ここで解説しているよ.
fbterm上でw3mのインライン画像表示を有効にする.ついでにrangerのサムネイルも