Arch Linux(6) Manjaro Awesome ランチャー「アルファベットが豆腐文字」、他


## はじめに

日々、軽くて速いディストリビューションを探しています。前回は、Manjaro Awesome 18.1.3 をUSB メモリに[インストール](https://qiita.com/FuRuYa7/items/56b0b64d828f4c8ac6d8) しました。

今回は、使えそうなフォントのインストールと、フォントの整理、[Awesome の操作編](https://qiita.com/FuRuYa7/items/de3de49e4e2d500b07a5) で見つけたランチャー関連の [問題](https://qiita.com/FuRuYa7/items/de3de49e4e2d500b07a5#windowsctrlesc-%E3%81%A7%E5%A4%A7%E3%81%8D%E3%81%AA%E6%96%87%E5%AD%97%E3%81%AE%E3%83%A9%E3%83%B3%E3%83%81%E3%83%A3%E3%83%BC%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%92%E8%A1%A8%E7%A4%BA) についての備忘録です。


---
### 使えそうなフォントをインストール

ランチャー関連の問題があったので、いろいろなフォントを調べていると、個人的に使えそうなフォントがあるので、インストールしてみました。

複数のテキストエディタを目的で使い分けており、見やすそうなフォントには興味があります。個人的によく使うフォントは「Migu 1M」ですが、他のフォントを試してみるのも新鮮です。

参考:

[Webフロントエンドエンジニアが選ぶプログラミング用フォント10選]
(https://blog.nakanishy.com/programming-fonts.html)

- テキストエディタ用なので、どれも monospace の等幅フォントです。
「0」「i」「l」「j」、「()」の形に注目して好みのものを選択。


---
##### Migu のインストール

個人的によく使うフォント（パック）です。

```
>>> yay -Ss Migu                                                                                     
:
aur/ttf-migu 20150712-2 (+18 0.00%) 
    Good looking Japanese TrueType font by mixing M+ and IPA.
```
インストール:

```
>>> yay -S ttf-migu
```
インストール確認:

```
>>> yay -Ss ttf-migu

aur/ttf-migu 20150712-2 (+18 0.00%) (Installed)
    Good looking Japanese TrueType font by mixing M+ and IPA.
```
フォントの指定は、「Mig 1M Regular 12」


---
##### Monaco のインストール

Mac で使われている　monospace のフォントです。

検索:

```
>>> yay -Ss monaco
:
aur/monaco-powerline-font-git r16.616d338-3 (+3 0.00%) 
    Monaco Powerline fonts for X11 and the console
aur/ttf-monaco 6.1-3 (+69 0.23%) 
    A monospaced sans-serif typeface by Apple Inc.
```
インストール:

```
>>> yay -S ttf-monaco
:
  1 ttf-monaco                               (Build Files Exist)
==> Diffs to show?
==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
==> N
:
```
インストール確認:

```
>>> yay -Ss ttf-monaco

aur/ttf-monaco 6.1-3 (+69 0.23%) (Installed)
    A monospaced sans-serif typeface by Apple Inc.
```
→文字が大きくて手書き風なので、英語の文章なら読みやすそうな印象。大きめなので日本語と混在すると違和感があります。


---
##### Consolas


---
##### Inconsolata

```
>>> yay -Ss ttf-inconsolata
:
community/ttf-inconsolata 1:2.0.0.1-3 (79.2 KiB 207.0 KiB) 
    Monospace font for pretty code listings and for the terminal
```
インストール:

```
>>> yay -S ttf-inconsolata
```
→小さな英文を表示させるには良いけど、日本語が大きすぎ。


---
##### Inconsolata-g

英記号が少し変えてあります。


---
#### DejaVu Sans Mono のインストール

```
>>> yay -Ss dejavu
:
community/ttf-dejavu-sans-mono-powerline 0.r78.97dc451-2 (390.4 KiB 1.1 MiB) 
    DejaVu Sans Mono for Powerline
extra/ttf-dejavu 2.37-2 (2.3 MiB 9.8 MiB) (Installed)
    Font family based on the Bitstream Vera Fonts with a wider range of characters
```
重複する ttf-dejavu は削除:

```
>>> yay -R ttf-dejavu
```
インストール:

```
>>> yay -S ttf-dejavu-sans-mono-powerline
```
→mono しか使わないので、節約になります。フォントも見やすいです。
テキストエディタでの指定は、「Dejavu Sans Mono for Powerline Book」


---
##### Hack


---
##### Source Code Pro のインストール

プリインストール済み

```
>>> yay -Ss Source Code Pro                                                                          
:
extra/adobe-source-code-pro-fonts 2.030ro+1.050it-5 (909.4 KiB 2.1 MiB) (Installed)
    Monospaced font family for user interface and coding environments
```

---
##### 源ノ角ゴシック Code のインストール

[Source Han Code JP（源ノ角ゴシック Code）]
(https://github.com/adobe-fonts/source-han-code-jp)
→Source Code Pro を日本語対応にした等幅フォント


検索:

```
>>> yay -Ss source-han-code-jp
aur/otf-source-han-code-jp 2.011-2 (+5 0.00%) 
    Japanese OpenType font for developers. Made by mixing SourceHanSans and SourceCodePro
```
インストール:

```
>>> yay -S otf-source-han-code-jp
:
  1 otf-source-han-code-jp                   (Build Files Exist)
==> Diffs to show?
==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
==> N
:
==> Cleaning up...
[sudo] USER_NAME のパスワード:
:
```
インストール確認:


```
>>> yay -Ss otf-source-han-code-jp
aur/otf-source-han-code-jp 2.011-2 (+5 0.00%) (Installed)
    Japanese OpenType font for developers. Made by mixing SourceHanSans and SourceCodePro
```
→gedit で、「源ノ角ゴシック Code JP」の表記で現れます。設定時に後ろの詳細が表示しきれないので、ダイアログのサイズ変更をするとよいです。タイトルバー左寄りを右クリックして、リサイズ。

文字が大きいので、今までがサイズ12 だったら、サイズ11 に設定すると、ちょうどよく見えます。

フォント指定の記述のしかたは:

###### Firefox のフォント（詳細設定）:

```
プロポーショナル: Sans-serif（ゴシックか明朝しか選べません）
明朝体(Serif): Source Han Code JP
ゴシック体(Sans-serif): Source Han Code JP
等幅(Monospace): Source Han Code JP
```

###### テキストエディタのフォント:

```
Source Han Code JP R 12
源ノ角ゴシック Code JP R 10
```


---
#### ttf-roboto-mono のインストール

```
>>> yay -Ss roboto
:
community/ttf-roboto-mono 2.002-3 (413.3 KiB 1.1 MiB) 
    A monospaced addition to the Roboto type family.
community/ttf-roboto 2.138-1 (2.2 MiB 5.2 MiB) 
    Google's signature family of fonts
```

```
>>> yay -S ttf-roboto-mono

>>> yay -Ss ttf-roboto-mono
community/ttf-roboto-mono 2.002-3 (413.3 KiB 1.1 MiB) (Installed)
    A monospaced addition to the Roboto type family.
```

###### 端末(LXTerminal) のフォント:

```
Roboto Mono Regular 11
```
→参考: 
LXTerminal はメニューバーが表示されないので、フォント指定するときは、ウィンドウの中央で右クリック→設定→「スタイル」タブ とします。


---
##### Input


---
##### Fira Code

[GitHub tonsky/FiraCode ]
(https://github.com/tonsky/FiraCode)

Monospaced font with programming ligatures 

Mozilla のFira に「リガチャ」（合字）を追加したフォント。
「リガチャ」をサポートしていないターミナルやエディタもあるので注意が必要です。

等式が絵文字に変わるとか、プログラムを見やすくする効果があります。
おもしろいけど、他の環境でプログラミングできなくなりそう。



---
##### 参考: Powerline について

「等幅フォント」を探していると「Powerline」という言葉がヒットします。「Powerline」について、調べてみました。

最近だと、[DuZeru 4.1 をインストール](https://qiita.com/FuRuYa7/items/c67379ffeaeb4a404273) したときに見た、クールな [端末(Tilix)]
(https://qiita.com/FuRuYa7/items/c67379ffeaeb4a404273#%E7%AB%AF%E6%9C%AB-tilix) で使われていた機能みたい。zsh でした。

Powerline はクールな開発環境を作るためのもので、python で作られたライブラリのようです。

Powerline Shell にはパッチが当てられたPowerline Fonts が必要。
デスクトップ環境の「等幅フォント」をPowershell フォントに変更すれば、通常は端末エミュレーターの設定も連動して変わります。

設定はけっこうたいへんみたい。
Powerline 用のフォントをサーバーとそのサーバーに接続するターミナルにも適用。
ターミナルごとにPowerline 用のフォントの設定方法も違い、
様々なshell、vim、tmux 環境に使えますが、その設定方法も違います。



参考:

[Powerlineは難しくないよ！]
(https://qiita.com/park-jh/items/557a9d5b470947aef2f5)

[Powerline-Shell - コマンドラインを美しく便利にパワーアップ！]
(https://linuxfan.info/powerline-shell)

[GitHub powerline/fonts]
(https://github.com/powerline/fonts)



---
### Awesome のランチャー関連を抜粋:


#### 1. Windows+R で、アプリ名を補完、アプリ起動できる「Run プロンプト」を表示

画面左上のパネルの数字の右横に、「RUN: 」と表示されます。
英語のアプリ名を入力します。数文字入れて「Tab」で補完もできます。「Esc」でキャンセル。

![win-R.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/489751/bad76b38-b719-24b6-a2c5-9cd477405225.jpeg)

使用例:

Windows+R

→ge
→「Tab」で補完 →geany
→「Tab」で補完（次候補） →gedit
→「Enter」で確定
→「テキストエディター」(Gedit) が起動。


---
#### 2. Windows+P で、アプリ名を矢印キーで選べる「1行ランチャー」を表示

- 現在は、[設定変更](https://qiita.com/FuRuYa7/items/a40b22a41d43167fd7f9#windows-%E3%82%AD%E3%83%BC%E3%81%AFwindows--p-%E3%81%AB%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F) により、**左の「windows」キー** でも「1行ランチャー」を表示できます。なので、さらに使い勝手が向上。

メインメニューを横に1行にしたような、アイコン付きの日本語のメニューバーが上段に 1行表示されます。横矢印キーで選択して、Enter でカテゴリが開くか、アプリが実行されます。Esc でキャンセル。

![win-p.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/489751/958288f9-f2c0-0b50-00f6-764231fa96af.jpeg)

これなら、メインメニューを使ったほうが速い、と思っていたら、アプリ名での絞り込みができるし、カタログ名とか、アプリ名も、途中に含まれる文字でも検索されます。Windows+R より便利。

- 文字入力で絞り込んでEnter でもいいし、途中で矢印キーで選択もできます。

```
fir →firefox
mo →Mousepad
ge →テキストエディター(Gedit)
a →「Accessories」Enter →sc →スクリーンショット
lx →端末(LXTerminal)
```

- 下記も合わせて使うのが簡単:

```
端末 →「Windows+Enter」
ファイルマネージャ →「Windows+E」
```
→ファイルマネージャの絞り込みは「th」だとメールのアプリが邪魔します。矢印キーが必要なので、こちらが簡単。ふしぎと「ランチャーメニュー」だとメールアプリは邪魔しません。


---
#### 3. Windows+Ctrl+Esc で、大きな文字の「ランチャーメニュー」を表示

- 以前は、「左のwindows」キーでも「ランチャーメニュー」を表示できましたが、Windows+P に譲り、現在はできません。

「Windows+R」もしくは「Windows+P」のGUI 版と言えます。
矢印キーで選んで「Enter」で、アプリを起動するやり方と、
アプリ名の文字を入れるたびに絞り込まれて「Enter」で起動、ができます。

##### ただし、問題があります。

一部の日本語は表示されますが、英文字が豆腐文字です:

![win-jp1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/489751/3a687f7f-5ae6-70be-dd3f-b055aa9f3f97.jpeg)

→普段の化け方と違うようです。英記号「(」、「)」は確実ですが、よく見ると日本語も一部は化けているかもしれません。（日本語でなく欧文）フォントが足りないのか、ライブラリが足りないのか、反映させる手段の漏れなのか、だろうと思います。

表示は別にして、英語名でも日本語名でもアプリの絞り込みができます。

ただし、日本語のインライン変換はできないので、確認として、「端末」の文字をコピーして入力欄に貼り付けました。

表示が見えないので「Windows+P」のほうが使いやすいかな。


---
#### Windows キーに「Windows+P」の機能を割当て

Windows キーがもったいないので「[割当て](https://qiita.com/FuRuYa7/items/a40b22a41d43167fd7f9#windows-%E3%82%AD%E3%83%BC%E3%81%AFwindows--p-%E3%81%AB%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F)」を変えました。

なので、「Windows+P」の機能は、「Windows」キーでも、「Windows+P」でも使えます。

逆に、「Windows」キーだった「ランチャーメニュー」機能は、本来の割当ての「Windows+Ctrl+Esc」でないと使えなくなりました。


---
#### 「ランチャーメニュー」でアルファベットが豆腐文字になる件

- 「Windows+Ctrl+Esc」で、日本語の「ランチャーメニュー」が表示されますが、英文字が豆腐文字になります。日本語は一部だけ表示されています。

何個かフォントを入れてみたけど改善せず。

```
>>> yay -Ss ttf | grep Installed

aur/ttf-migu 20150712-2 (+18 0.00%) (Installed)
aur/ttf-monaco 6.1-3 (+69 0.22%) (Installed)
community/ttf-roboto-mono 2.002-3 (413.3 KiB 1.1 MiB) (Installed)
community/ttf-dejavu-sans-mono-powerline 0.r78.97dc451-2 (390.4 KiB 1.1 MiB) (Installed)
:
```
および

```
>>> yay -Ss font | grep Installed
                                                                 
aur/otf-source-han-code-jp 2.011-2 (+5 0.00%) (Installed)
aur/ttf-migu 20150712-2 (+18 0.00%) (Installed)
:
extra/noto-fonts-cjk 20190409-1 (175.7 MiB 294.4 MiB) (Installed)
extra/noto-fonts 20190926-4 (22.1 MiB 91.2 MiB) (Installed)
extra/adobe-source-code-pro-fonts 2.030ro+1.050it-5 (909.4 KiB 2.1 MiB) (Installed)
```
→フォントを入れるだけではダメで、フォント指定をしてやらないとダメみたい。ただし、日本語フォントはインストールしただけで表示が変わります。


---
試しに、日本語でなく、英語で表示させると:

```
>>> LANG=C /usr/bin/rofi -show drun -modi drun
```

![win-en.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/489751/33d43252-090f-32c2-800f-3e97b598c3a8.jpeg)
→全部、豆腐文字です。でも、表示されているのが日本語だったらそうなるのかな。


---
日本語フォントの「さざなみフォント」をインストールすると:

```
>>> /usr/bin/rofi -show drun -modi drun
```
![win-jp2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/489751/b6767456-6ea0-3d62-ee0d-f23cb52f6f5d.jpeg)
→日本語の部分だけ美しくないフォントになったので、フォントが変わったのがわかります。やっぱり日本語フォントが足りないわけではないみたい。

「アルファベットが豆腐文字になる」でネット検索すると、Wine の環境だと不具合があって、回避策もあるみたい。でも、Wine は入れてないし…。

また、ランチャーメニューの表示のためのメニューファイルがどこかにあるはずだけど探しきれません。


---
#### ランチャーメニューの定義を確認する方法を見つけました

このランチャーは、「rofi」の機能です。その設定内容を表示するパラメータがありました。

- ランチャー枠の表示の定義は、たぶん下記に含まれます:
~/.config/rofi/config.rasi

- 設定ファイルの記述が足りないと思ったら、違う項目を指定するみたい。デフォルト値をいっぱい持っているので、設定内容（デフォルト値も含めて）を表示するパラメータがあるわけです。

参考:

[dotfiles/rofi/.config/rofi/config.rasi: config.rasi]
(https://framagit.org/gagbo/dotfiles/blob/master/rofi/.config/rofi/config.rasi)


---
##### rofi の設定の確認:

```
>>> rofi -dump-xresources | less

! "Enabled modi" Set from: Rasi File
rofi.modi:                      combi,:rofind
! "Window width" Set from: Default
! rofi.width:                          50 ←（横の文字数）
! "Number of lines" Set from: Default
! rofi.lines:                          15　←（行数）
! "Number of columns" Set from: Default
! rofi.columns:                        1　←（1行のアプリ数）
:
```
→ものすごく長いです。「スペース」で次へ、「q」で終了。


---
##### rofi で使われるフォント
 
```
>>> rofi -dump-xresources | grep font                                                                
! rofi.font:                 mono 12
```

または、

```
>>> /usr/bin/rofi  -help
:
	-font [string]                 Font to use
	mono 12 (Default)
```

→手がかりになりそうだけど、mono だとどのフォントでもいいのかな。


---
##### フォントを指定してみました:

```
>>> /usr/bin/rofi -show drun -modi drun -font Migu 1M Regular 12
```
→枠が表示されず、豆腐文字が複数行表示されます。メニューの一部なのかエラーなのかわからず、進展なし。このようなパラメータの与え方はダメみたい。


---
### フォントを入れすぎたので整理

削除:

```
>>> yay -R ttf-dejavu
>>> yay -R noto-fonts-extra
>>> yay -R ttf-font-awesome-4 
>>> yay -R deepin-fonts-wine 
>>> yay -R otf-takao 
>>> yay -R otf-ipafont
>>> yay -R ttf-droid
>>> yay -R ttf-inconsolata
>>> yay -R terminus-font-otb
>>> yay -R terminus-font
>>> yay -R noto-fonts-emoji
```

---
#### noto-fonts-cjk を削除する手順

源ノ角ゴシック Code をインストールしたので、一番大きな noto-fonts-cjk も削除できそうです。（noto-fonts は、Awesome が依存していて削除できず）

ただし、すぐに削除は禁止。手順があります。

１. 各アプリのフォント設定から解除。

- Firefox のフォント（詳細設定）:

- テキストエディタのフォント:

- 端末(LXTerminal) のフォント:

２. Awesome の設定ファイルのフォント指定を修正します。

メインメニュー→Awesome→設定ファイルの編集

まずは、通知メッセージのフォント指定だけ修正:

51行目:

```
beautiful.notification_font = "Noto Sans Bold 10" -- ＜サイズ変更 14→10＞
```
↓ コメントにして、行を追記:

```
-- beautiful.notification_font = "Noto Sans Bold 10" -- ＜コメント化 14→10＞
beautiful.notification_font = "Source Han Code JP R 11" -- ＜フォントとサイズ変更＞
```

３. 保存後、再起動して、画面右上の「ネットワーク接続」のメッセージがちゃんと表示されるかを確認。見逃したら「Print Screen」を押して、保存メッセージを確認。

４. これがうまく行くまで、次に進んではいけません。

５. Awesome の設定ファイルの「システム」のフォント指定を修正します。

50行目:

```
beautiful.font              = "Noto Sans Regular 10"
```
↓ コメントにして、行を追記:

```
-- beautiful.font              = "Noto Sans Regular 10" -- ＜コメント化＞
beautiful.font              = "Source Han Code JP R 10" -- ＜フォント変更＞
```

６. 保存後、再起動して、デスクトップが立ち上がり、メインメニューとか、アプリのタイトルバーとか、異常がないか確認。

失敗したら、立ち上がらないか、フォントが変わらないか、日本語が表示されないか、試したことがないので不明。

失敗したら修正するか、他のUSB メモリで立ち上げて修正してください。

```
>>> nano /home/USER_NAME/.config/awesome/rc.lua
```

７. うまく行ったら、noto-fonts-cjk を削除

```
>>> yay -R noto-fonts-cjk
```
→「noto-fonts から使われることがある」みたいな警告が表示されます。削除。

８. インストールされているフォントを確認

```
>>> yay -Ss ttf | grep Installed
```
および

```
>>> yay -Ss font | grep Installed
```

---
### なんと、ランチャーの「アルファベットが豆腐文字」の問題が解消

フォント指定して実行:

```
>>> /usr/bin/rofi -show drun -modi drun -font Migu 1M 12
```

![font-chousa-01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/489751/2e959024-8478-3919-5d53-32aa2016085f.jpeg)


→今まで豆腐文字で読めなかったメッセージが英文で表示されました。フォント指定が間違っているとのエラーメッセージみたい。だから枠が表示されなかったのですね。

「Migu」フォントファミリーのサイズが 0 と認識されています。フォント指定が違うみたい。


フォント指定せずに実行:

```
>>> /usr/bin/rofi -show drun -modi drun
```

![font-chousa-02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/489751/2257c9b6-a7a1-9b06-e39d-619e7908f805.jpeg)

→ランチャーメニューが日本語で表示されました。

「Windows+Ctrl+Esc」でも、「ランチャーメニュー」が表示されることを確認。

##### → 解決しました。

Awesome の設定ファイル(/home/USER_NAME/.config/awesome/rc.lua) のフォント指定を変更したことで、メニューが作成しなおされて、正常に戻ったと思われます。

フォント整理の副産物でした。

---
追記:

コメントで貴重な情報をいただきました。ありがとうございます。[rofi is gibberish](https://forum.manjaro.org/t/rofi-is-gibberish/102424) を見ると、上流のPango ライブラリの既知の問題だったようです。


---

### あとがき

Awesome には、いろいろなランチャー機能があります。知っていると、もっと便利に使えます。

次回は、メインメニューにお気に入りのアプリを登録します。
これでさらに操作性がアップするはずです。



（[次の投稿に続く]
(https://qiita.com/FuRuYa7/items/a40b22a41d43167fd7f9)）

---

今までの**投稿一覧**は 「[ここ](https://qiita.com/FuRuYa7/items/f82312cd7670408dfa8b#%E6%8A%95%E7%A8%BF%E4%B8%80%E8%A6%A7) 」


-