Sway on Ubuntu 22.04 細々した設定

# 細々した設定
先日Ubuntu22.04にswayを仕込みましたが、細々した設定を続けます。
https://qiita.com/nfwork01/items/9941dc0412ef182bc039

# ブラウザ（Firefox周り）
## DRM設定

Amazon Primeなどを閲覧しようとすると、こうなります。
![2022-05-28T07:53:01,187704471+00:00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587269/c99463dc-0cb5-d904-9191-594e788a2e3b.png)

これ、表示されているアラートベースで調べるとFirefoxのアドオンの話になるのですが、実は現状はアドオンとしての管理ではなく、設定の以下の箇所にチェックを入れることで有効化できます。
![2022-05-28T08:30:20,083663578+00:00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587269/9c9be46a-b7ba-4b3e-230b-d24ac63893bd.png)

というか、そもそも最初の画面の上部に”Enable DRM"というボタンが乗っているタブが出てまして、それクリックすればこの設定が有効になります。
変に正直にエラーの説明に付き合うと混乱するというところだけ、要注意でしょうか。

##   ブラウザへのファイルアップロード
qiitaのこれ（一番左のやつ）をクリックしても反応がありません。
![2022-05-28T08:24:40,276875917+00:00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587269/6372dcbe-5135-2002-dd9d-33c9df925ea9.png)

Firefoxがエラーを吐いているのでぐぐったら、、
```
(firefox:1192): Gtk-WARNING **: 08:21:21.136: Can't open portal file chooser: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.portal.Desktop was not provided by any .service files
```

https://github.com/bottlesdevs/Bottles/issues/966

xdg-desktop-portal-gtkとやらが必要なようです。
archlinux構成のときはxwayland周りを導入したときに気が付かないうちに入ってたのかな、、
まぁ、入れます。

```
# apt install xdg-desktop-portal-gtk
```

解決しました。

##  スピーカ
検証を兼ねて手元の空きPCでも同様の環境を構築していたのですが、音が出ない事象が発生。
音はHDMIでつないでいるディスプレイから出す想定でいたのですが、、
確認したところ、本体側にスピーカデバイスに相当するものが乗っている場合で、そちらがディフォルトになってしまうと、設定いじらないとHDMI側から音が出ないということです。

https://wiki.archlinux.jp/index.php/PulseAudio/%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB

```
user01@test01:~$ pacmd list-sinks
2 sink(s) available.
    index: 0
	name: <alsa_output.pci-0000_00_03.0.hdmi-stereo>
    (略)

  * index: 1
	name: <alsa_output.pci-0000_00_1b.0.iec958-stereo>
    (略 )
```

通番的にはHDMIがindex:0で若番ですが、老番の内蔵スピーカ側がディフォルトになってしまっています。
設定ファイルで修正する方法も紹介されていますが、コマンドでも一発ですむので、コマンドの方で処理します。

```
# pacmd set-default-sink  alsa_output.pci-0000_00_03.0.hdmi-stereo
```

別の方法としては、pavucontrolを導入してGUIで設定することもできますが、まぁ上記で事足りますので、上記で。

# 仮想化（VirtualBox -> KVM)
VirtualBoxを踏襲しようかと思っていたのですが、依然xwaylandが必要になってしまうことに変わりがないようで。。
もういっそKVM＋virt-managerの構成に切り替えてしまうことにします。

## KVMとvirt-managerのインストール

```
# apt install qemu-system-x86 libvirt-clients libvirt-daemon-system bridge-utils virtinst libvirt-daemon virt-manager
```

参考サイトを調べると、qemu-kvmを導入するように書いてあるのですが、実体はqemu-system-x86になるようです。
apt-fileで引っかかんないなぁ、、と思ったらそういうことでした。
あと、KVMとvirt-managerは使い慣れていないので、一応レコメンドされてるパッケージも入れてしまうことにします。

で、サービスの登録

```
# systemctl enable --now libvirtd
```
## virt-manager用の権限設定
app armorやsetfaclをいじるという情報が見受けられましたが、私が使う範囲では特になんの追加設定もせずに使えました。

## 脱線 KVM + Virt Managerの使い勝手
スナップショット、ヘッドレス起動、コマンドラインからの操作（virtsh）と私が使う場合の操作は一通りできるので、今の所特に問題は見つかってません。
ただし、iptablesを結構いじくります。。。
VirtualBoxはOSから見ると仮想IFが増えはしますが、iptablesは特にいじられません。
一方KVMは、NATの処理をiptablesで実施しているようですし、更にはroutedというネットワークの作りもある関係かiptablesにLIBVIRT用のルールを差し込む、というような動き方をします。
docker入れるときと同じですね。。
iptablesをあまりいじられたくないのでホストに生でdocker入れるのは避けてたのと言うのもあるので、これはちょっとなぁ、、という感がなき西もあらずです。
xwaylandを入れないか、iptablesをいじらせないか。
微妙なトレードオフになったなぁ、、


# ScreenShot系
archlinuxで使用していたものがubuntuでも使えるか確認しつつ、導入していきます。

静止画用。
```
# apt install --no-install-recommends grim slurp
```

動画用。
```
# apt install --no-install-recommends wf-recorder
```

ちなみにgrimは、gripshotというラッパーがあるらしく、これもaptで導入できるのですが、以下のワンライナーをswayのコンフィグのキーバインドに仕込む場合と比べて使いにくい（Window指定か領域指定化を、grimshowを呼び出す際に引数で先に与えないといけない）ので、以前の方法を踏襲します。
https://qiita.com/nfwork01/items/733e8d8aea5300d71cc1#screenshot

# swaybar
## i3blocks
```
# apt install i3blocks
```

で、i3blocks-contribやそれらのスクリプトを参考に自作したスクリプトを配置する、と。
ちなみにvirshを組み込んだスクリプトをi3blocksから呼び出すと、表示が崩れます。
原因は追いきれていませんが、標準出力周りで入り組んだ処理しているんだろか。

# その他
## 時刻設定
```
# timedatectl set-timezone Asia/Tokyo 
```

## Capsの無効化
```
$ echo -e "input type:keyboard {\n    xkb_options ctrl:nocaps\n}" >> .config/sway/config
```

## 起動が遅い
起動時に、"A start job is running for wait for network to be configured."で結構待たされます。
これのようです。
https://tek2tech.com/netplan-setting-for-faster-booting/

メインのpcは幸か不幸かNICが１枚しかなかったので、ケーブル刺さってない（DHCPとれない）NICがないから問題になってなかった、というところでしょうか。

また、PCには前に使っていた環境が入っているHDD（ソフトウェアRAID構成を組んでいるもの）が搭載されているのですが、Archlinuxだと認識せず無視していたのですけれど、Ubuntuだと認識してしまうらしく、特にマウントはしていないのですがshutdown時に「Stopped Availability of block devices.」とやらで1分半待たされます。
タイムアウトを短くするというのも気持ちが悪いのですが、、同対応するのがいいか調べきれていないので、当面使わないHDDは物理的にケーブル抜いておきました。。
サーバ用途ならあまりshutdownしないので気にならないのですが、PC用途だとなんとも。

# とりあえず
現状はこんなところで。
Ubuntuはapparmorが結構仕事するので、homeディレクトリを別SSDのディレクトリにシンボリックリンク貼って飛ばそうとするとFirefoxが起動してくれない、という事象にぶつかったりしたので、また色々と整理が必要になりそうですが。

ちなみに今の所動作は快適で、Archlinux + xwayland構成で発生していたSwayのフリーズ事象は発生していません。
ドライバー周りなのかな、、
気づいたらUEFIでArchのBoot領域認識できなくなっているし、、
当面Archは封印かなぁ。。