Arch Linuxで日々使っている便利ツールたちの紹介

## シェル
### fish
"the friendly interactive shell" の略。補完がとても強力で、これなしでは日々の作業がキツいです。

おすすめのテーマは[theme-yimmy](https://github.com/oh-my-fish/theme-yimmy)です。

## ウインドウマネージャ(WM)
### XMonad
Haskellで書かれたタイル型ウインドウマネージャです。
カスタマイズは~~とても難しいですが~~（独自の機能を作るなどの複雑なことをしなければ）簡単ですし、どこまでも可能性を感じさせてくれて最高です。

単に使うだけなら、XMonadでのHaskellのソースコードは設定ファイルにしか見えません。[沼はこちらです](http://hackage.haskell.org/package/xmonad)。

## ステータスバー
### Polybar
XMonadユーザということもありxmobarを長く使ってきましたが、この度Polybarに乗り換えました。もう戻れません。Polybarが最高です。カスタマイズも簡単で、アイコンフォントを使えば豪華な見た目にできるのに、xmobarより軽いです。もう戻れません。

こんな感じのステータスバーを表示できます。
![polybar](https://raw.githubusercontent.com/matoruru/imgs/master/polybar-adapta-theme/screenshot_empty_1.png)

上のスクリーンショットのステータスバーを使いたい方は以下のリンクに詳細を載せてます。

- [Polybarの良いテーマが見つからなかったので自作しました。](https://qiita.com/matoruru/items/ab491eac6b2b74e3ce3b)
- [設定ファイルとスクリプトはこちら。](https://github.com/matoruru/polybar-adapta-theme)

## コンポジットマネージャ
### Compton
ウインドウに影をつけたり透過させたりすることができます。以下のような設定で起動時に動かせます。

```config:~/.compton.conf
# For using rofi
focus-exclude = "_NET_WM_NAME@:s = 'rofi'";

# Fading
fading = true;
fade-in-step  = 0.06;
fade-out-step = 0.06;

# Shadow
shadow         = true;
clear-shadow   = true;
shadow-radius   = 4;
shadow-offset-x = -4;
shadow-offset-y = -4;
shadow-opacity  = 0.9;

# Opacity
inactive-opacity = 0.8;
```

```bash:~/.xinitrc
compton -b &
```

## 壁紙設定
### Feh
なんて発音するんでしょうか(ふぇー？)。機能はシンプルでいいです。
普通に画像ビューアとしても使えます。

## スクリーンショット(画面キャプチャ)
### scrot

以下のようなスクリプトを呼び出して取ると便利です(fehが必要)。

```bash:screenshot.sh
#!/bin/bash

# Usage
# screenshot.sh  displaying time  zoom ratio  [--focused]

if [[ ! -d $HOME/Pictures/Screenshots/ ]]; then
   mkdir -p ~/Pictures/Screenshots
fi
cd          ~/Pictures/Screenshots

tmpname=_____scReeNshoT-tmP.png
if [[ -f $tmpname ]]; then
   exit
fi

newname=$( scrot -q 100 $3 '%Y-%m-%d-%T-screenshot.png' -e 'echo $f' )
ln -s $newname $tmpname

# To make $disptime from 0 to 5
if   [[ $(echo "$1 <= 0" | bc) -eq 1 ]]; then
   echo "redefine $1 as 0.1..."
   disptime=0.1
elif [[ $(echo "$1 >  5" | bc) -eq 1 ]]; then
   echo "redefine $1 as 5..."
   disptime=5
else
   disptime=$1
fi

zoomratio=$2

timeout $disptime feh --fullscreen --zoom $zoomratio $tmpname

# if $disptime is lower than 1, after sleep 1 - $disptime, rm
if [[ $(echo "$disptime < 1" | bc) -eq 1 ]]; then
   sleep $(echo "1 - $disptime" | bc)
fi
rm $tmpname
```

一応スクリプトの使い方も書いておきます。

```bash
# 引数によってスクリーンショットを撮った感じのアニメーションが見れます。
$ screenshot.sh 0.7 60
# --focusedを足すと現在フォーカスしているウインドウのみをキャプチャします。
$ screenshot.sh 0.7 60 --focused 
```

## ターミナルエミュレータ
### kitty
ligature(リガチャ)対応のターミナルエミュレータ！この一点のためだけに使っています！

![ligature.png](https://qiita-image-store.s3.amazonaws.com/0/304979/392ea941-f0c0-8857-8d61-dac86d956a2c.png)

こんな感じでリガチャされます。少し重いのが難点。

リガチャ用テキストは[ここ](https://github.com/matoruru/arch-tools/blob/master/ligatures-test.txt)を参照してください。

### rxvt-unicode
コマンド名はurxvt。
しかし、常にurxvtd(デーモン)を起動させておき、あとはurxvtcコマンドで開くのが基本です。

デーモンは以下の設定を~/.xinitrcに加えることで自動起動できます。

```bash:~/.xinitrc
urxvtd --quiet --fork --opendisplay &
```

デーモンモード(urxvtd)の機能を使えば、デーモンの子プロセスとして超軽量かつ高速にターミナルを開くことができます(以下図)。
![urxvt-daemon.png](https://qiita-image-store.s3.amazonaws.com/0/304979/066ec060-cdf0-945d-c27a-0dde2a56f4be.png)
通常のurxvtとurxvtcをそれぞれ3つずつ立ち上げた例です。urxvtではターミナルエミュレータ本体とシェルのセットが起動していますが、urxvtcの場合はurxvtdのもとでシェルのみが起動しています。

起動めちゃくちゃ早いです。

**urxvtcからの利用を絶対忘れずに！**

リガチャ未対応なのが残念。

**urxvtcからの利用を絶対忘れずに！**
**urxvtcからの利用を絶対忘れずに！**
**urxvtcからの利用を絶対忘れずに！**

## プロセスビューア(タスクマネージャ)
### htop
「topは時代遅れ」と書く辛辣な記事を見かけましたが、使ってみたら実際そうかもしれないと思いました。カラー表示されてきれい。コンソールアプリですが、マウスが使えます。

![htop.gif](https://qiita-image-store.s3.amazonaws.com/0/304979/27f86e7a-52bc-86d6-4491-55290ddb5789.gif)


## ファイルマネージャ(エクスプローラ)
### Nautilus
GTK+のテーマをAdapta-Noktoに、アイコンテーマをPaperにすると最高です。

![nautilus.gif](https://qiita-image-store.s3.amazonaws.com/0/304979/3796950b-eaa7-e614-066f-7ddde7d80038.gif)


## Markdownエディタ
### Typora
使ったことない人は使ってみてください。革命が起きます。
リアルタイムプレビューどころか勝手に変換されていく感じです。

![typora.gif](https://qiita-image-store.s3.amazonaws.com/0/304979/4347865e-090e-2adb-d24e-8a53c7bb1456.gif)

## 画像編集ソフト
### GIMP - GNU Image Manipulation Program
機能多すぎ、明らかに玄人向けっぽい雰囲気ですが、勉強する価値はありそうです。範囲選択を辺ごとにカーソルキーで動かせる機能はとても便利だと思う。gifアニメーションを編集できます。

### Pinta
デフォルトのUIがとても醜い。GTK+テーマをAdapta-Noktoとかにするとかっこよくなります。簡単な画像編集にはこれ。特にWindowsのMS Paint使ってた人には馴染みやすいかも。

## 画面キャプチャ(gif対応)
### Peek
かなり多用してます。とりあえず全画面でキャプチャしておいて、GIMPで加工するのが楽。スタートとストップはショートカットキー「Ctrl+Alt+R」でできます(変更もできます)。

## GTK+ 関連
GTKの設定は以下のようにしています。

```~/.gtkrc-2.0
gtk-cursor-theme-name = "breeze-cursors"
gtk-theme-name = "Adapta-Nokto"
gtk-icon-theme-name = "Paper"
```

```~/.config/gtk-3.0/settings.ini
[Settings]
gtk-cursor-theme-name = breeze-cursors
gtk-theme-name = Adapta-Nokto
gtk-icon-theme-name = Paper
```

### breeze-cursors
[これ](https://www.gnome-look.org/p/999991/)です。

かっこいい。デフォルトのマウスカーソルを使いたくなくなります。

本記事では[Nautilus](#Nautilus)のgifアニメーションに写っています。

### Adapta-Nokto
個人的にGTK+の最高のデザインテーマです。

これも同じく本記事では[Nautilus](#Nautilus)のgifアニメーションに写っています。

このテーマを愛しすぎて、[i3のステータスバーとして名高いPolybarのAdapta-Nokto風テーマ](https://qiita.com/matoruru/items/ab491eac6b2b74e3ce3b)を作ってしまいました。

### Paper
個人的に最高のアイコンテーマです。

これも同じく本記事では[Nautilus](#Nautilus)のgifアニメーションに写っています。