Mint19でgtk3アプリの部品を小さくする

#はじめに
Mint19では、Mint18にくらべて、gtk3アプリのボタン、タブ、メニューなどが大きくなってしまった。
なんか違和感あるので、gtk.cssで小さくなるように調整してみた。

自分がよく使う nemo と Gnome端末 を見ながら調整したので、他のアプリで微妙な場合があるかも。
 
#結果イメージ
## テーマ Mint-Y の nemo
* 調整前
![mint-y_nemo_before.png](https://qiita-image-store.s3.amazonaws.com/0/281200/0a636aa5-e893-3340-2128-4eaf963e0bda.png)
 
* 調整後
![mint-y_nemo_after.png](https://qiita-image-store.s3.amazonaws.com/0/281200/68222eed-7b0f-bb3a-1729-66da1faae010.png)
 
## テーマ Mint-Y の Gnome端末
* 調整前
![mint-y_term_before.png](https://qiita-image-store.s3.amazonaws.com/0/281200/39d75308-e429-4982-fcbf-f1c73edaa19a.png)
 
* 調整後
![mint-y_term_after.png](https://qiita-image-store.s3.amazonaws.com/0/281200/e1711d25-7559-5240-00ef-5c7c8dfe3b58.png)
 
## テーマ Mint-X の nemo
* 調整前
![mint-x_nemo_before.png](https://qiita-image-store.s3.amazonaws.com/0/281200/944c7b14-4888-fefd-31a2-0dd5998f3e8e.png)
 
* 調整後
![mint-x_nemo_after.png](https://qiita-image-store.s3.amazonaws.com/0/281200/7c8453d7-1cb8-6135-9d73-a0ccf8a38388.png)
 
## テーマ Mint-X の Gnome端末
* 調整前
![mint-x_term_before.png](https://qiita-image-store.s3.amazonaws.com/0/281200/4423b8e4-3d7a-3521-49c7-a04148ececc1.png)
 
* 調整後
![mint-x_term_after.png](https://qiita-image-store.s3.amazonaws.com/0/281200/4a36d316-e0ac-9540-70e3-597ae7f341cc.png)
 
# やったこと
`~/.config/gtk-3.0/gtk.css` に以下を記載した。
コメントアウトしてある border は、どこに効いているか見るときに使ったもの。

###ツールバー
色々詰まってることがわかった。

```css:gtk.css
/******************
 * toolbar
 ******************/
toolbar {
    margin: 0;
    padding-top: 1px;
    padding-right: 4px;
    padding-bottom: 1px;
    padding-left: 4px;
    /* border: solid 1px #FFFF20; ----- test */
}

toolbar box {
    margin: 0;
    padding: 0;
    /* border: solid 1px #FF20FF; ----- test */
}

toolbar button {
    margin: 0;
    padding: 2px 2px;
    min-height: 20px;
    min-width: 20px;
    /* border: solid 1px #FF20FF; ----- test */
}

toolbar entry , toolbar searchentry {
    min-height: 20px;
    padding: 0px 1px;
}

/* nemoのtoolbar */
window.nemo-window toolbar.primary-toolbar {
    margin: 0;
    padding-top: 0;
    padding-right: 4px;
    padding-bottom: 1px;
    padding-left: 4px;
    /* border: 1px solid #008080; ----- test */
}

window.nemo-window toolbar.primary-toolbar entry ,
window.nemo-window toolbar.primary-toolbar searchentry {
    min-height: 18px;
    padding: 0px 1px;
}

window.nemo-window toolbar.primary-toolbar > toolitem > box { 
    margin: 0;
    padding: 0;
    /* border: 1px solid #00AAAA; ----- test */
}

window.nemo-window toolbar.primary-toolbar > toolitem > box > button {
    margin: 0;
    padding: 2px;
    min-height: 18px;
    min-width: 18px;
    /* border: 1px solid #10FF10; ----- test */
}

/* Location and Path Bar */
window.nemo-window toolbar.primary-toolbar > toolitem > box > stack {
    margin: 0;
    padding: 0;
    min-height: 18px;
    /* border: 1px solid #FFFF10; ----- test */
}

window.nemo-window toolbar.primary-toolbar > toolitem > box > stack button {
    margin: 0;
    padding: 0 2px;
    min-height: 18px;
    min-width: 18px;
    /* border: 1px solid #FF1010; ----- test */
}

window.nemo-window toolbar.primary-toolbar > toolitem > box > stack button * {
    margin: 0;
    padding: 0;
    /* border: 1px solid #1010FF; ----- test */
}
```
### ステータスバー
nomo の wedget の特定が手ごわかった。

```css
/******************
 * statusbar
 ******************/
statusbar {
    /* border: solid 1px #FF2020; ----- test */
}

statusbar button {
    margin: 0;
    padding: 0;
    min-height: 18px;
    min-width: 18px;
    /* border: solid 1px #FF20FF; ----- test */
}

/* nemoのstatusbar */
window.nemo-window > grid > widget:last-child {
    margin: 0;
    padding: 0;
    border-width: 0;
    /* border: 1px solid #1010B0; ----- test */
}

window.nemo-window > grid > widget:last-child > .toolbar {
    margin: 0;
    padding: 0;
    border-width: 0;
    /* border: 1px solid #B01010; ----- test */
}

window.nemo-window > grid > widget:last-child > .toolbar > button {
    margin: 0;
    padding: 0;
    min-height: 16px;
    min-width: 16px;
    /* border: 1px solid #B01010; ----- test */
}

window.nemo-window > grid > widget:last-child > .toolbar > scale {
    margin: 0;
    padding: 4px;
    min-height: 10px;
    /* border: 1px solid #B01010; ----- test */
}

window.nemo-window > grid > widget:last-child > .toolbar > scale slider {
    margin: -7px;
    min-height: 13px;
    min-width: 13px;
    /* border: 1px solid #1010B0; ----- test */
}

window.nemo-window > grid > widget:last-child > .toolbar > scale trough {
    padding: 2px;
    /* border: 1px solid #10D010; ----- test */
}

window.nemo-window > grid > widget:last-child > .toolbar > scale fill,
window.nemo-window > grid > widget:last-child > .toolbar > scale highlight {
    margin: -2px;
    padding: 1px;
    /* border: 1px solid #10D010; ----- test */
}
```
###タブっぽいやつ

```css
/******************
 * notebook
 ******************/

notebook > header {
    /* border: 1px solid #2020FF; ----- test */
}

notebook > header > box {
    margin: 0;
    padding: 0;
    /* border: 1px solid #FF20FF; ----- test */
}

notebook > header > box button {
    margin: 0;
    padding: 0;
    min-height: 10px;
    min-width: 10px;
    /* border: 1px solid #10A0A0; ----- test */
}

notebook > header button {
    margin: 0;
    padding: 0;
    min-height: 12px;
    min-width: 12px;
    /* border: 1px solid #20FFFF; ----- test */
}

notebook > header > tabs > tab {
    padding-top: 3px;
    padding-bottom: 3px;
    min-height: 12px;
    /* border: 1px solid #2020FF; ----- test */
}
```
###メニューバー、メニュー

```css
/******************
 * menubar
 ******************/

menubar, .menubar {
    padding: 0px;
    /* border: 1px solid #FF1010; ----- test */
}

menubar > menuitem, .menubar > menuitem {
    min-height: 18px;
    padding: 1px 6px;
    /* border: 1px solid #802020; ----- test */
}

/* menuitemから出てくるプルダウンメニュー */
menu, .menu {
    /* border: 1px solid #202080; ----- test */
}

/* 右クリで出てくるプルダウンメニュー */
.context-menu {
    /* border: 1px solid #F02020; ----- test */
}

/* プルダウンメニューの中のmenuitem */
menu menuitem, .menu menuitem, .context-menu menuitem {
    min-height: 16px;
    min-width: 40px;
    padding: 2px 4px;
    /* border: 1px solid #F02020; ----- test */
}

menuitem check, menuitem radio {
    min-height: 12px;
    min-width: 12px;
    /* border: 1px solid #20FF20; ----- test */
}
```
###ツリービュー
リストビューにしたときのヘッダの高さ

```css
/******************
 * treeview
 ******************/

treeview > header > button {
    min-height: 20px;
    padding: 0 2px;
    /* border: 1px solid #2020FF; ----- test */
}

window.nemo-window treeview > header > button {
    min-height: 18px;
    padding: 0 2px;
    /* border: 1px solid #2020FF; ----- test */
}
```
###スクロールできる方向に出てくる点線
これは大きさ調整とは関係ないが、邪魔なので出ないようにした。

```css
undershoot.top, undershoot.bottom, undershoot.right, undershoot.left {
    background: none;
    background-image: none;
    padding: 0px;
}
```
# 調整するときの注意
`gtk.css` の編集結果は、それ以降に動かすアプリに反映される。
nemoは閉じてもしばらくプロセスが動いているので、システムモニタで強制終了させないと、反映されなかった。