Help us understand the problem. What is going on with this article?

fbtermの日本語表示.uim-fepとuim-anthyで日本語入力も.ついでに,vimの256色化も

More than 1 year has passed since last update.

fbtermの日本語表示.uim-fepとuim-anthyで日本語入力も.ついでに,vimの256色対応も

てんこ盛り過ぎたのでuim-fepとuim-anthyの使い方と設定方法に関する記事を別にしました.

uim-fepとuim-anthyの使い方と設定方法

環境

  • Ubuntu16.04LTS
  • lenovo-S21e

目的

昨今のLinuxのディストリビューションは,デスクトップ環境がデフォルトでついてくるものが多い.

十分なスペックのPCであればヌルヌルと動いてくれるだろうが,貧弱なノートPCを使っているユーザーにとっては,
必要なときだけ立ち上がってくれれば十分だ.(人による)

基本は仮想コンソールで生活するのだ.
仮想コンソールとはctrl+alt+F1で移動できる正に文字だけの世界.
そのままだと日本語の表示すらできないが,ちょっと工夫してやれば画像だって表示できるのだ.

CUIで動作する素晴らしいアプリの数々に君はきっと魅了されるはずだ.
むしろ,GUIって使いにくいと思う場面が増えると思う.

そこで,普段では仮想コンソールを使用し,必要に応じてデスクトップ環境を立ち上げるようにすると,
- 省メモリ
- 省電力
- 高速化
が実現できる.

しか〜し.

この仮想コンソール.デフォルトだとすんごく使いにくい.
1. 日本語が文字化けする

◆◆◆◆◆◆◆
  1. 日本語入力ができない
  2. 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

私の場合はこんな感じ.

/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が作成されるから,それを見ながら適宜いじればよいと思う.

個人的には

~/.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にでも

bash:~/.profile or ~/.bashrc
fbterm -- uim-fep

と書けばいいんだけれども,
実はこれだけだと上手く行かない.

256色対応にしてvimの華麗なカラースキームを味わおう

ここはちょっと情報を探すのに苦労した.

何もしないとmolokaiなどカラースキームの色がつかない.
ついたとしても何か違う.

fbterm自体フレームバッファを乗っ取ってるから色なんて自由自在のはず.

なんで....色がおかしいんや...
molokaiが無残な配色に成り下がってしまった.

tput colorsが8のまま変わらない...

しかし,こんなことでへこたれる
(`・ω・´)
ではない.

これは少しfbtermの自動起動とか変わってくるが.
設定ファイルにこのように書けば良い.

まずは~/.profileだ.

~/.profile
if [ "$TERM" = "linux" ]
then
    #/e]XXYYYYYY
    #XXは色識別子
    echo -en "\e]P0222222" #black
    echo -en "\e]P8222222" #darkgray
    echo -en "\e]P1803232" #darkgray
    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だ.

~/.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のサムネイルも

[参考文献]

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした