俺様サーバー構築記 - Arch Linux + ZFS + Xfce に入れた物などの覚書@ノートパソコン

「[俺様サーバー構築記 - 基本方針](https://qiita.com/katz_engineer/items/dbabcff4e14e9db2b10f)」に基づいて自宅サーバーの構築を進めていますが、[ノートパソコンも整備](https://qiita.com/katz_engineer/items/f42a2536c74b9123bc33)しました。

そこに入れた物や設定の覚書です。随時更新。

# 2019/02/08

## Webブラウザ: chromium

現在、xfce4-goodies にはWebブラウザが含まれていないようです。デフォルトでmidoriが入るような事が紹介されているんですが。

という訳でとりあえず chromium です。
依存パッケージが山程ありましたが、良くわからないのでデフォルト(=all)で。

```
# pacman -S chromium
```

## 日本語IME: mozc

日本語IMEは、現在のデファクトスタンダードは fcitx と mozc の組合せっぽいですな。
何だか選択肢が色々ありましたが、良くわからないのでデフォルト(=all)で。

```
# pacman -S fcitx-im fcitx-configtool fcitx-mozc
〈省略〉
```

それから一般ユーザーになって設定ファイルに追記。

```
$ cat >>$HOME/.xprofile <<___
> export GTK_IM_MODULE=fcitx
> export QT_IM_MODULE=fcitx
> export XMODIFIERS=@im=fcitx
> ___
```

# 2019/02/09

## 設定: タップ

タッチパッドのタップをクリックとして認識する設定。
ぐぐると synclient を実行するとか、 /usr/share/X11/xorg.conf.d/50-synaptics.conf に追記とか、場所と番号はバリエーションがあるものの似たような話が横行。

そんな中で見つけたArchWikiの記述。

[Synaptics タッチパッド - ArchWiki](https://wiki.archlinux.jp/index.php/Synaptics_%E3%82%BF%E3%83%83%E3%83%81%E3%83%91%E3%83%83%E3%83%89#Xfce4.2FCinnamon)

> Xfce 4 でタッチパッドの設定を変更するには:
> 1. システム設定を開いて下さい。
> 2. マウスとタッチパッドをクリックしてください。
> 3. タッチパッドタブの設定を変更してください。

このまんま操作すれば、タップをクリックとして認識されるようになりました！
メニュー項目の名前が多少違っていたけど、そんなものは御愛嬌ですな。

# 2019/02/11

## ツール: nkf

言わずと知れたnkfです。ArchLinuxではAURですが、私はまだユーザーリポジトリをどうこうする便利ツールを入れていないので、ソースから直接コンパイルしてみました。

（2019/03/23 修正ここから）
スナップショットの名前などを変更。

```
$ su -
パスワード:
# zfs snapshot tank/main@$(date +%Y%m%d_%H%M%S)_before_nkf
# cd
# mkdir nkf
# cd nkf
# curl -L -O https://ja.osdn.net/projects/nkf/downloads/70406/nkf-2.1.5.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100     2    0     2    0     0     21      0 --:--:-- --:--:-- --:--:--    21
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  210k  100  210k    0     0   463k      0 --:--:-- --:--:-- --:--:-- 1048k
# tar xzf nkf-2.1.5.tar.gz 
# cd nkf-2.1.5
# make
cc -g -O2 -Wall -pedantic -c nkf.c
関数 'get_backup_filename' 内,
    inlined from 'main' at nkf.c:7164:28:
nkf.c:1035:3: 警告: 'strncat' output truncated before terminating nul copying as many bytes from a string as its length [-Wstringop-truncation]
   strncat(backup_filename, filename, filename_length);
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nkf.c: 関数 'main' 内:
nkf.c:1024:27: 備考: length computed here
     int filename_length = strlen(filename);
                           ^~~~~~~~~~~~~~~~
cc -g -O2 -Wall -pedantic -c utf8tbl.c
cc -g -O2 -Wall -pedantic  -o nkf nkf.o utf8tbl.o
# make install
mkdir /usr/local/bin
mkdir: ディレクトリ `/usr/local/bin' を作成できません: ファイルが存在します
make: [Makefile:49: install-main] エラー 1 (無視されました)
cp -f nkf /usr/local/bin/
mkdir /usr/local/man
mkdir: ディレクトリ `/usr/local/man' を作成できません: ファイルが存在します
make: [Makefile:53: install-man] エラー 1 (無視されました)
mkdir /usr/local/man/man1
cp -f nkf.1 /usr/local/man/man1/
mkdir /usr/local/man/ja
mkdir /usr/local/man/ja/man1
cp -f nkf.1j /usr/local/man/ja/man1/nkf.1
```
（2019/03/23 修正ここまで）

コンパイルで警告が出ましたな… 無視。

# 2019/02/13

## 設定: フォントのヒント

Terminalを使うと、下線 _ が消えます。さすがにこれはヤバイ。画面上の文字が綺麗とか汚いとか言うレベルじゃない。

という訳で、フォントのヒンティングを「なし」にした所、色は薄いけど下線が見えるようになりました。

メニュー>アプリケーション>設定>外観
[フォント]タブ
レンダリング>ヒンティング
「部分的」または「なし」

ただ… 私、嫌いなんですよアンチエイリアス。この、目のピントが合っているのに文字がぼやけて見えるのがたまらなくイヤです。エッジはクリアであるべきです。

可能ならアンチエイリアスをOFFにしたいんですけどね。さすがに文字が汚すぎる。これはデザインが悪いのだと思うんですけどねぇ。アウトラインフォントはこんなものでしょうか…

# 2019/02/16

## ロケール: Shift_JIS (cp932)

GUIを使うとなると、避けて通れないのがWindowsとの連携です。自分だけで閉じこもっているならどうにでもなりますけどね。IT技術者などという仕事をしていると、色々な話を持ち込まれる事もありまして。否でも応でもWindowsとの連携を迫られる事になります。

そこでまず最初に問題になるのが文字コード。[上述の通り nkf をインストール](https://qiita.com/katz_engineer/items/dba7305d802c71053610#%E3%83%84%E3%83%BC%E3%83%AB-nkf)すれば大抵は何とかなりますが（ iconv では力が足りません！）、ファイル名などの問題で、ロケールにWindows相当を入れておいた方が何かと便利なのです。

というわけで Shift_JIS を、と素直な話にならないのがまた面倒臭い所。Windows即ちMicrosoftという営利企業の定める Shift_JIS が若干ズレているのは有名な話。このMicrosoftという会社は、本当に昔からロクな事をしないんですよね… UnicodeもMicrosoft（及びその他の欧米企業群）のゴリ押しから始まったと記憶しています。

今回は文字コードの確認ではなくてWindowsとの連携が主目的なので、Windowsで採用されているロケールを設定します。

```
$ su -
パスワード:
# localedef -f WINDOWS-31J -i ja_JP ja_JP.sjis
# locale -a
C
POSIX
ja_JP
ja_JP.eucjp
ja_JP.sjis
ja_JP.ujis
ja_JP.utf8
japanese
japanese.euc
```

最後に、今回見つけた参考文献を。

参考文献1: [Linux の Shift JIS サポート －現状とその対応策－ 2009 年 7 月 10 日](http://www.ossforum.jp/jossfiles/Linux_SJIS_Support.pdf)
参考文献2: [ロケール - ArchWiki](https://wiki.archlinux.jp/index.php/%E3%83%AD%E3%82%B1%E3%83%BC%E3%83%AB)
参考文献3: [ロケール（locale）まとめ - Qiita](https://qiita.com/aosho235/items/58e2e7acd5c2ee3641ff)
参考文献4: [RHELでのSJIS言語ロケール追加 - うんちくメモ](http://d.hatena.ne.jp/t-horikawa/20161014/1476421579)
参考文献5: [CentOSでCP932を使う (SJISとちょっと違うよ！) - とりあたまさんのおぼえがき](http://blog.tomoattori.info/article/152612890.html)

今回の手順は、最後の参考文献5を参考にしました。

追伸：
ここまで調べて導入した Shift_JIS (cp932) ですが、Windowsは長いファイル名を UTF-8 で保存しているらしいです。
[fat のマウントオプション - mount - システム管理コマンドの説明 - Linux コマンド集 一覧表 - kazmax](https://kazmax.zpp.jp/cmd/m/mount.8.html#ah_12) の iocharset オプションの説明を参照。
実際、```export LANG=ja_JP.utf8``` そしてターミナルの文字エンコーディングを UTF-8 にした上で、Windowsで保存したUSBメモリ上のファイルを ```ls``` してみると、文字化けせずに表示されます。
もうやだ…:sob:

# 2019/03/05

## Webブラウザ: Firefox

ChromiumとFirefoxはWebブラウザの双璧でしょう。特に、開発者としてはFirefoxは必須かと。

```
# pacman -S firefox
```

[超しょぼくてメモリが1GBしかないノートパソコン](https://qiita.com/katz_engineer/items/77dfbc2b359a4edcfac2)に入れてみましたが、まあ、Chromiumよりは256倍くらいマシですかね。メモリスワップと思しきHDDガリガリが、体感で200倍以上少なかったです。それでも数十秒はガリガリ言ってるんで、まあ我慢すれば何とかなるかな〜という程度でした。

## Webブラウザ: midori

超軽量と噂の Xfce goodies なブラウザです。

```
# pacman -S midori
```

いやこれ本当に軽い。[超しょぼくてメモリが1GBしかないノートパソコン](https://qiita.com/katz_engineer/items/77dfbc2b359a4edcfac2)でも問題無くネットサーフィンできます。早速ランチャーのデフォルトブラウザをこれにしました。

システムメニュー>アプリケーション>設定>お気に入りのアプリケーション>インターネット

# 2019/03/23

## ターミナルエミュレーター: フォント

ターミナルで下線 _ が見えないのは、フォントの選択に問題があったからのようです。

ターミナルを起動後、メニュー>編集>設定...
外観>フォント
ここから IPAゴシック Bold 12pt を選びます。この辺を基準にして、自分なりに好みを探るのがよろしいでしょう。

# 2019/03/24

## ショートカットキー割当: アプリケーションメニュー

Windowsで言う所のスタートメニューです。これのショートカットキーをWindowsと同じにします。

メニュー>設定>キーボード
アプリケーションショートカットキー
xfce4-popup-applicationsmenu

デフォルトでは Alt+F1 になってました。これを選択してOKすると、まずは起動対象のアプリケーション選択画面が表示されます。そのままOKすると、次にショートカットキーの画面になるので、そこで Super キー（Microsoft言う所の Windows キー）を押します。

# 2019/04/30

平成最後の追加ですな〜

## サウンド

やっぱり音を出したくなりました。ゲームをやる気はありませんが、YouTubeその他動画を見たいと思う事はあります。

参考文献: [Advanced Linux Sound Architecture - ArchWiki](https://wiki.archlinux.jp/index.php/Advanced_Linux_Sound_Architecture)

ハードウェアをいじるものですし、一応、先にシステム全体を更新しておきます。

```console
$ su
パスワード:
# zfs snapshot tank/main@$(date +%Y%m%d_%H%M%S)_before_update
# pacman -Syy
  〈省略〉
# pacman -Su
  〈省略〉
```

スナップショットを撮ってからインストールします。

```console
# zfs snapshot tank/main@$(date +%Y%m%d_%H%M%S)_before_alsa
# pacman -S alsa-utils
  〈省略〉
```

マスターボリュームはデフォルトでミュートになっているらしく、それを解除。同時にボリュームを上げます。そうしないと、ミュート解除したのに音が出ない（ボリューム0だから）という訳のわからない状態になってしまいます。

```console
# exit
exit
$ amixer sset Master 100% unmute
Simple mixer control 'Master',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
  Playback channels: Mono
  Limits: Playback 0 - 74
  Mono: Playback 0 [0%] [-99999.99dB] [on]
```

あるいは ```alsamixer``` コマンドを使うという方法もあります。使い方は[参考文献](https://wiki.archlinux.jp/index.php/Advanced_Linux_Sound_Architecture#.E3.83.81.E3.83.A3.E3.83.B3.E3.83.8D.E3.83.AB.E3.81.AE.E3.83.9F.E3.83.A5.E3.83.BC.E3.83.88.E3.82.92.E8.A7.A3.E9.99.A4.E3.81.99.E3.82.8B)を参照。

設定できたらYouTubeその他適当な動画などで音を出してみましょう。当然、音量が大き過ぎる可能性もあるので御注意を。

（2019/05/01 追記 ここから）
令和最初の追記です…

私の[ノートパソコン3台目(HP Pavilion TouchSmart 10-e013AU; F6C99PA#ABJ)](https://qiita.com/katz_engineer/items/9157870d0b65bd1a99ae)では、ミュートを解除しても音が出ませんでした。
調べると HDMI への出力とオンボードのスピーカーとの2つの出力先があり、HDMIの方が先になっています。どうも HDMI 出力がデフォルトになっていると推測。

対処については下記の参考文献に従いました。

参考文献1: [Linuxで音声の出力先をUSBスピーカーにする](https://qiita.com/nobwak/items/a104640c5c0702486f6c)
参考文献2: [Setting the default device - Advanced Linux Sound Architecture (ALSA) project homepage](https://www.alsa-project.org/main/index.php/Setting_the_default_device)

```console
$ cat /proc/asound/cards
 0 [HDMI           ]: HDA-Intel - HDA ATI HDMI
                      HDA ATI HDMI at 0x90340000 irq 36
 1 [Generic        ]: HDA-Intel - HD-Audio Generic
                      HD-Audio Generic at 0x90344000 irq 37
$ su
パスワード:
#  cat >/etc/asound.conf <<___
> defaults.pcm.card 1
> defaults.ctl.card 1
> ___
# exit
exit
```

確認。

```console
$ aplay /usr/share/sounds/alsa/Front_Center.wav 
再生中 WAVE '/usr/share/sounds/alsa/Front_Center.wav' : Signed 16 bit Little Endian, レート 48000 Hz, モノラル
```

だけど、切り替えるのはどうしたらいいんでしょう… わかったらまた追記します。
（2019/05/01 追記 ここまで）