ノートに入れたLubuntuの様子がおかしくなって以来、いろいろと調子が悪いのでDebian sidに乗り換えてみた。
OSインストール
stableのインストール
余ってるLANケーブルがなかったので、ここのnon freeなパッケージ(無線LANのドライバ)とかバンドルされているnetinstなisoを使った。
デスクトップ環境は後で入れればいいだろーって思ってデスクトップ環境なしでインストールしたらWPA-PSKなwifiに繋げなくて、繋ぐためにwpasupplicant
とか入れたいけどそのためにはwifiに繋がないとって感じになってしまったので、デフォルトでMATEを選択してインストールし直した。
インストールはTUI、英語で行った。
unstableへアップグレード
unstable(sid)にアップグレードする前に最低限の設定をする。
# apt-get install vim zsh sudo
# update-alternatives --config editor
# chsh
# adduser <user name> sudo
でrootユーザーのデフォルトのエディタをvimに、シェルをzshに変更。作業用ユーザーにsudo権を付与。ここで一回再起動。
:::color:gray
余談。Ubuntuだとrootユーザーが存在しないため最初に作るユーザーは始めからsudoグループに入っているが、usermod -G
だと指定したでグループで所属グループを上書きしてしまうので、うっかり-a
かsudo指定を抜かしてsudoグループからハブってしまうと本格的に何もできなくなるので恐ろしい。
Ansibleのuserモジュールはusermodの単純なシノニムでになっているのだが、-a
に相当するappend=yes
を抜かしてしまい、ログインに使うユーザーをdockerグループに入れてやろうとして、sudoグループからハブってしまうというのをVPSでやらかしてしまったことがある。ウェブコンソールからリカバリモードで起動すればrootユーザーになれるので、そこからユーザーをsudoグループに入れてあげれば復帰できるんだけど、VPSのウェブコンソールの使いづらさを含め、もう二度としたくない失敗の一つである。余談ココマデ。
:::
# mv /etc/apt/source.list /etc/apt/source.list.bak
# vim /etc/apt/source.list
でsource.listをバックアップしてから編集
deb http://ftp.jp.debian.org/debian/ sid main non-free contrib
deb-src http://ftp.jp.debian.org/debian/ sid main non-free contrib
の2行だけで十分。ここより先からは後戻りできないので軽く決意してから、
# apt-get update
# apt-get dist-upgrade
でアップグレード。結構時間かかる。再起動するといろいろと新しくなってる。2016年5月18日現在では
$ cat /etc/issue
Debian GNU/Linux stretch/sid \n \l
$ uname -r
4.5.0-2-amd64
という感じになる。Ubuntu16.04で4.4.0-22
なのでちゃんと先へ行っているのが確認できた。
言語設定
英語でインストールしたので
# vim /etc/locale.gen
でja_JP.UTF-8
をアンコメント。
# locale-gen
でロケールを反映。中途半端な翻訳が嫌なのでデフォルトはen_US.UTF-8
のままで。
デスクトップ環境(MATE)のセットアップ
日本語入力
fcitx + mozcの一択だと思う。
$ sudo apt-get install fcitx fcitx-mozc
$ im-config
でダイアログが出るのでfcitx
を選択。fcitxの設定画面を開いて入力メソッドをmozcを追加。これで多分日本語が打てるようになる。
GTKテーマ
Ambiance & Radiance Flat Colorsというのを使っている。デフォルトはさすがにアレな感じがあるが、gnome-look.orgで人気なやつなら割となんでもいい。
フォントまわり
MATE
デフォルトのフォントがひどいので、普段見慣れているUbuntu Font Familyを使う。zipファイルで配信されているのでダウンロードしたら、
$ unzip ubuntu-font-family-0.83.zip
$ mkdir -p ~/.fonts
$ mv ubuntu-font-family-0.83 ../.fonts
$ fc-cache -fv
でフォントを追加。MATEを使っているのでコントロールセンターの外観のフォントタブから
のように指定し、レンダリング周りは
という感じに設定。個人的には画像のようにスムージングはSubpixel、ヒンティングはSlightが一番綺麗に描画しているように見えた。あとで自作PCに入れてるUbuntu Unityでの設定を見てみたら、全く同じ設定にしてたようだ。
※参考:Ubuntu Unityのフォントレンダリングの設定
Chromium向け(Google Chrome、Atom)
FirefoxはMATEの設定を描画に反映してくれるのだが、ChromeとAtomはその設定をうまく拾ってくれない。どんな感じになるかというと、
こんな感じに文字の幅がガタガタになってしまう。フォントファミリーはUbuntuがあたっているが、レンダリングオプションがちゃんと渡っていないようである。なので、
$ mkdir -p ~/.config/fontconfig
$ vim ~/.config/fontconfig/fonts.conf
で
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<match target="pattern">
<edit name="dpi" mode="assign">
<double>96</double>
</edit>
</match>
<match target="font">
<edit name="embeddedbitmap" mode="assign"> <bool>false</bool></edit>
<edit name="lcdfilter" mode="assign"> <const>lcdlight</const> </edit>
<edit name="antialias" mode="assign"> <bool>true</bool> </edit>
<edit name="hinting" mode="assign"> <bool>true</bool> </edit>
<edit name="autohint" mode="assign"> <bool>false</bool> </edit>
<edit name="hintstyle" mode="assign"> <const>hintslight</const> </edit>
<edit name="rgba" mode="assign"><const>rgb</const></edit>
</match>
</fontconfig>
ってな感じにMATEで設定したのと同様なものを書いてやると、
みたいに綺麗に表示してくれるようになる。そんなに頻繁にいじるものでもないんだけど、やっぱり同じ設定を二箇所で当ててることになるので、この辺上手くまとめる手段はないだろうか。少しキモチワルイ。
キーボードショートカット
Windowsキー(Mod4)に割当がないので、これをプリフィクスにして機能を割り当てる。自分がやったのは
- 次のワークスペースへ移動:
Mod4 + Right
- 前のワークスペースへ移動:
Mod4 + Left
- ウィンドウをワークスペース{{n}}に移動:
Mod4 + {{n}}キー
(n
には1〜4が入る) - ウィンドウ最大化:
Mod4 + Space
- ウィンドウを戻す(Restore window):
Shift + Mod4 + Space
- MATEターミナル起動:
Mod4 + T
- Chrome起動:
Mod4 + C
- Firefox起動:
Mod4 + F
- Atom起動:
Mod4 + E
一般的なラップトップ型PCの操作上の欠点はドラッグがしづらいことなので、ドラッグが必要なウィンドウの移動とウィンドウのリサイズの機会をいかに廃していくか、というワークアラウンドをとることになり、1つワークスペースあたり最大化したウィンドウを1つだけ表示する、というのが個人的な着地点となった。今回セットアップしたノートPCは、12インチで解像度もFWXGA(1366x768)でそんなに広くないので、画面があまる感じもなくいい感じ。
アプリケーションのセットアップ
MATE環境なのでMATE端末を使う。gnome-terminalとほとんど同じだが組み込みのスキームにSolarized darkが入ってないので自分で色を入力する
- Text color: #839496
- Background color:
#002B36
- Platte: XTerm
で
こんな感じになる。ChromeはGoogleアカウント、FirefoxはFirefix Sync、Atomはsync-settings で設定等同期してるし、dotfilesもGithubで管理してるので、大してやることはなかった。
最後に
タイル型ウィンドウマネージャ使わないの?
awsomeとかxmonadとかi3とかタイル型に挑戦したかったけど、結局自分が満足できるような環境にするためにどれくらい知識を詰めないといけず、それに実現するのにどれくらい時間がかかるか考えたら萎えてきてやめた。
繋ぎのつもりで入れたMATEが結構いい感じに使えるようになってしまったのも大きい。普段使ってるUnityと設定の方法もほとんど同じで気楽だし。
なぜDebian?
今でこそUbuntu 16.04がリリースされた直後なのでUbuntuを使ってればパッケージはほとんど最新のものが使える状態だけど、半年もすれば新しいバージョンが出てだんだんそれらも古くなってくる。そう考えたら二年ごとに恐怖に震えながらapt-get dist-upgrade
して不具合と戦うかクリーンインストールするくらいならローリング・リリースのディストロがいいな、と思ってDebian sidを選んだ。
とはいえ、Dockerが使える今Linuxであれば環境を統一する必要はないので、Archでも良かった感はある。アップグレードとかで壊れたら今度はArchを入れようと思う。
まあLinux遍歴の一ページということで。