Arch Linux インストール備忘録 for DELL G15 5515 ryzen edition

# Arch Linux インストール備忘録 for DELL G15 5515 ryzen edition

## この記事は何？

DELL G15 5515 ryzen edition に Arch Linux をインストールする際の備忘録。

https://www.dell.com/ja-jp/shop/gaming-and-games/g15-ryzen-edition%E3%82%B2%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0-%E3%83%8E%E3%83%BC%E3%83%88%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3/spd/g-series-15-5515-laptop


ゆくゆくは、この記事だけで、一通りの設定が完了できる記事にするつもりではあるが、
現時点では、次項で紹介する動画の補足だけに留めておく。

余談ではあるが、私の G15 はかなり強引な方法で、キーボードをUS配列の物に換装してある。

願わくば、日本からでもUS配列のキーボードを発注できるようになって欲しい。

Lenovo製品はもうこりごりだ。

## 本記事の前提

本記事では、下記の動画に沿って構築された環境で作業する事を前提としている。

https://www.youtube.com/watch?v=7btEUHjECAo&pp=ugMICgJqYRABGAHKBQxhcmNobGludXggaTM%3D

この動画では、下記の項目についての基本的な設定を行い、i3-gaps が起動する所までを紹介している。

- GRUB2
- BTRFS
- zramd
- timeshift
- lightdm-slick-greeter
- i3-gaps
- Xfce4

## 日本語環境

さしあたっては、日本語を扱える様にしないと、
この記事も文字化けだらけで読めないので、日本語環境の設定から始めよう。

#### noto-fonts のインストール

```
$ sudo pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra ttf-hack-nerd
```

#### fcitx5 のインストール

```
$ sudo pacman -S fcitx5 fcitx5-mozc fcitx5-configtool fcitx5-gtk fcitx5-qt
```

#### .xprofile に入力メソッド関連の環境変数を定義する

```:~/.xprofile
export GTK_IM_MODULE="fcitx"
export QT_IM_MODULE="fcitx"
export XMODIFIERS='@im=fcitx'
```

#### i3 起動時に fcitx5 が起動する様にする

```:~/.config/i3/config
# fcitx5
exec --no-startup-id fcitx5 -d
```

#### デスクトップ起動時に自動起動する様にする

※この工程は i3 の config に fcitx5 を起動させる設定している場合は不要であるが、他のデスクトップ環境では必要になるものだと思われるので、記載している。

不要ならば、飛ばしてしまってもかまわない。

```
$ cp /usr/share/applications/org.fcitx.Fcitx5.desktop ~/.config/autostart/
```

#### 入力メソッドに mozc を追加する

```
$ fcitx5-configtool

<入力メソッドに mozc を追加し適用して閉じる>
```

https://wiki.archlinux.jp/index.php/Fcitx5

## 時刻関連

#### NTPサーバを ntp.nict.jp に変更
```
$ sudo echo 'NTP=ntp.nict.jp' >> /etc/systemd/timesyncd.conf
```

#### NTPサーバ との同期の有効化
```
$ sudo timedatectl set-ntp true
```

#### 設定の確認
```
$ timedatectl status
```

### Windows とデュアルブートしている場合の設定

Windows は hwclock をローカルタイムで上書きしてしまうため、Linux の挙動をそちらに合わせる様にする。

#### ハードウェアクロックにローカルタイムを用いる

```
$ sudo hwclock --systohc --localtime --verbose
```
https://man.archlinux.org/man/hwclock.8#The_Adjtime_File

https://dlrecord.hatenablog.com/entry/2020/06/13/112553

https://ubiqlog.com/archives/11842


## multilib の有効化

multilib レポジトリが不要な人はこの工程を飛ばしてしまってもかまわない。

#### pacman.conf の編集

下記の2行をコメントアウトする。

```:/etc/pacman.conf
# 変更前
#[multilib]
#Include = /etc/pacman.d/mirrorlist

[multilib]
Include = /etc/pacman.d/mirrorlist
```
#### パッケージリストの更新

下記のコマンドを実行する。

```
$ sudo pacman -Syy
```

#### multilib パッケージの一覧表示

適切にパッケージリストが更新された事を下記のコマンドで確認する。

```
$ pacman -Sl multilib
```

パッケージリストが表示される事を確認する。

https://wiki.archlinux.jp/index.php/Multilib

## pacman-contrib

pactree などの一部の機能が pacman-contrib というパッケージに別れた為、インストールしている。

```
$ sudo pacman -S pacman-contrib
```
また、下記の pacman の wiki には、pacman で運用するにあたって注意しなければならない事も解説されているので、一読する事をおすすめする。

https://wiki.archlinux.jp/index.php/Pacman#.E9.83.A8.E5.88.86.E7.9A.84.E3.81.AA.E3.82.A2.E3.83.83.E3.83.97.E3.82.B0.E3.83.AC.E3.83.BC.E3.83.89.E3.81.AF.E3.82.B5.E3.83.9D.E3.83.BC.E3.83.88.E3.81.95.E3.82.8C.E3.81.A6.E3.81.84.E3.81.BE.E3.81.9B.E3.82.93

## keyboard

#### キーボードの挙動設定

ここでキーボードの Caps-Lock を Ctrl に変更したりする。

```:/etc/X11/xorg.conf.d/00-keyboard.conf
Section "InputClass"
    Identifier "system-keyboard"
    MatchIsKeyboard "on"
    Option "XkbLayout" "us"
    Option "XkbModel" "pc104"
    Option "XkbOptions" "ctrl:nocaps"
EndSection
```
https://wiki.archlinux.jp/index.php/Xorg_%E3%81%A7%E3%81%AE%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89%E8%A8%AD%E5%AE%9A

## touchpad

#### タッチパッドの挙動設定

```:/etc/X11/xorg.conf.d/30-touchpad.conf 
Section "InputClass"
    Identifier "touchpad"
    Driver "libinput"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    Option "Tapping" "on"
    Option "TappingButtonMap" "lrm"
    Option "DiableWhileTyping" "on"
    Option "ClickMethod" "clickfinger"
    Option "ScrollMethod" "twofinger"
    Option "NaturalScrolling" "on"
    Option "TwoFingerScrolling" "on"
    Option "HorizontalScrolling" "on"
    Option "TappingDrag" "on"
    Option "TappingDragLock" "off"
EndSection
```
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

## Nvidia driver

プロプライエタリなドライバをインストールし、
既存の noveau モジュールを利用しない様に設定する。

#### nvidia ドライバのインストール
```
$ sudo pacman -S nvidia nvidia-utils nvidia-settings nvtop
```

#### HOOKS から kms を削除し noveau モジュールを読み込まない様にする

```:/etc/mkinitcpio.conf
# 削除前
# HOOKS=(base udev autodetect modconf kms keyboard keymap consolefont block filesystems fsck)
HOOKS=(base udev autodetect modconf keyboard keymap consolefont block filesystems fsck)
```

https://wiki.archlinux.jp/index.php/%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%E3%83%A2%E3%83%BC%E3%83%89%E8%A8%AD%E5%AE%9A

#### 初期RAM を再作成して再起動する

```
$ sudo mkcpioinit -p linux
$ reboot
```

https://wiki.archlinux.jp/index.php/NVIDIA

https://wiki.archlinux.jp/index.php/NVIDIA_Optimus

## Display brightness control

ディスプレイの明るさ調整をキーボードから行える様に設定する。

この記事では一番簡単な light コマンドを用いる。

#### light コマンドのインストール
```
$ sudo pacman -S light
```

#### light コマンドの設定

ディレクトリ作成
```
$ mkdir -p ~/.config/light/targets/sysfs/backlight/auto/
```

最小光度の定義
```
$ echo 5 > ~/.config/light/targets/sysfs/backlight/auto/minimum
```

#### udev ルールの定義

起動時に chmod コマンドを実行し、
一般ユーザに brightness ファイルへの書き込みを許可する。

```:/etc/udev/rules.d/81-backlight.rules
# Change other users permittion for control display brightness.
#  %k: DEVICE'S KERNEL NAME(amdgpu_l0 or nvidia_wmi_ec_backlight...)

ACTION=="add", SUBSYSTEM=="backlight", RUN+="/bin/chmod o+w /sys/class/backlight/%k/brightness"
```

https://blog.epigno.jp/blog/linux-control-screen-backlight-with-keyboard-shortcut/

##### udev - ArchWiki

https://wiki.archlinux.jp/index.php/Udev

##### udev ルールの書き方など

http://www.reactivated.net/writing_udev_rules.html#example-printer

#### ユーザを video グループに追加

```
$ sudo gpasswd --add $USER video
````

#### カーネルパラメータ変更

acpi_backlight=native を
GRUB_CMDLINE_LINUX_DEFAULT に追加する。

```:/etc/default/grub
# 変更前
# GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet"

GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet acpi_backlight=native"
```

現在のカーネルパラメータを確認する場合は下記のコマンドを実行する。

```
$ cat /proc/cmdline
```

場合によっては、下記のパラメータも追記する必要がある模様。

この辺りは、kernel のバージョン次第で、ちょくちょく変わる様なので、都度調べる事をオススメする。

nvidia_wmi_ec_backlight.force=1

```:/etc/default/grub
# 変更前
# GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet"

GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet acpi_backlight=native nvidia_wmi_ec_backlight.force=1"
```

https://www.spinics.net/lists/stable-commits/msg286281.html

#### GRUB 設定ファイル再作成

```
$ sudo grub-mkconfig -o /boot/grub/grub.cfg
```

#### i3 キーバインド設定

```~/.config/i3/config
# Control display brightness
bindsym XF86MonBrightnessUp exec --no-startup-id light -A 5
bindsym XF86MonBrightnessDown exec --no-startup-id light -U 5
```

#### 再起動

```
$ reboot
```

再起動したら、ログインし、キーボードから、ディスプレイの明るさ調整を行える事を確認する。

https://wiki.archlinux.jp/index.php/%E3%83%90%E3%83%83%E3%82%AF%E3%83%A9%E3%82%A4%E3%83%88

#### トラブルシューティング

strace のインストール

```
$ sudo pacman -S strace
```

strace を用いて light コマンドをトレースする

```
$ strace light -U 50
```

どこで何に失敗しているかが判るはずなので、あとは頑張れ。

## スクリーンショット

この記事では xfce4-screenshooter を用いる事とする。

#### xfce4-screenshooter のインストール

```
$ sudo pacman -S xfce4-screenshooter
```

#### PrintScreen キーで xfce4-screenshooter が起動する様にする

```:~/.config/i3/config
# Screenshot
bindsym --release Print exec --no-startup-id xfce4-screenshooter
```

## 計算機

この記事では galculator を用いる事とする

#### galculator のインストール

```
$ sudo pacman -S galculator
```

#### 計算機キーで galculator が起動する様にする

```:~/.config/i3/config
# Launch galculator from keyboard
bindsym XF86Calculator exec --no-startup-id galculator
```

## WYSIWYG テキストエディタ

この記事では mousepad を利用する事とする。

私は WYSIWYG をたまに使うので、インストールしているが、
不要な人はこの工程を飛ばしてしまってもかまわない。

#### mousepad のインストール

```
$ sudo pacman -S mousepad
```

## Libre office

office ソフトがないと何かと不便という人は Libre office をインストールすると良いかもしれない。

もちろん、他の製品でも良いのだが、個人的には Libre office をお勧めしたいので、そうする事にする。

2023/04/24 現在では、下記の2つのブランチが存在している。
 - libreoffice-fresh
 - libreoffice-still

https://www.libreoffice.org/download/release-notes/

上記のリリースノートを読んで判断して貰うのが本来だが、大まかな違いとしては下記の表の通りだ。

| branch | pros | cons |
|:-:     |:-:   |:-:   |
| libreoffice-fresh | 新しい機能を利用できる  | バグが潜在している可能性が比較的高い |
| libreoffice-still | 企業利用に耐えうる実績がある | 新しい機能の利用はできない  |

#### libreoffice-fresh のインストール

```
$ sudo pacman -S libreoffice-fresh libreoffice-fresh-ja
```

libreoffice-fresh-ja は日本語の言語パッケージ

#### libreoffice-still のインストール

```
$ sudo pacman -S libreoffice-still libreoffice-still-ja
```

どちらをインストールしても構わないと思う。

仮に fresh をインストールしてバグに悩まされたとしても、下記を参考にアンインストールを行えば良い。

https://wiki.archlinux.jp/index.php/Pacman#%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%AE%E5%89%8A%E9%99%A4

## Microsoft Edge

もしかしたら、何らかの事情で Microsoft Edge を使いたい人もいるかもしれない。
Arch Linux では下記の3種類の選択肢がある。

- microsoft-edge-dev-bin
- microsoft-edge-beta-bin
- microsoft-edge-stable-bin

dev が最も更新頻度が高く、beta は中間、stable は最も安定している模様。
Ubuntu パッケージの紹介ページではあるが、これを参考に自分に適したものを選択すればいいと思う。

##### Dev と Beta の違い

https://www.microsoftedgeinsider.com/ja-jp/download?platform=linux-deb

#### Microsfot Edge のインストール

私はなんとなく、dev をインストールしたので、dev バージョンをインストールするコマンドだけを記載しておく。

```
$ sudo pacman -S microsoft-edge-dev-bin
```

## VirtualBox

#### virtualbox と モジュール と ゲスト用ISO のインストール

```
$ sudo pacman -S virtualbox virtualbox-host-modules-arch virtualbox-guest-iso
```

#### ユーザを vboxusers に追加

```
$ sudo gpasswd -a $USER vboxusers
```

#### 再起動

```
$ reboot
```

https://wiki.archlinux.jp/index.php/VirtualBox

## arch-audit

```
$ sudo pacman -S arch-audit
```

https://qiita.com/nfwork01/items/9ba1392caebf3a456c61

https://gitlab.com/ilpianista/arch-audit

https://archlinux.org/packages/extra/x86_64/arch-audit-gtk/

## ClamAV

基本的には下記のページの手順に沿ってインストールすればよい。

https://wiki.archlinux.jp/index.php/ClamAV

#### clamav のインストール

```
$ sudo pacman -S clamav
```

#### ウィルス定義ファイルの更新

```
$ sudo freshclam
```

#### clamav-freshclam.service の起動と有効化

```
$ sudo systemctl enable --now clamav-freshclam.service
```

#### clamav-daemon.service の起動と有効化

```
$ sudo systemctl enable --now clamav-daemon.service
```

#### clamav 動作確認

```
$ curl https://www.eicar.org/download/eicar.com.txt | clamscan -
```

#### Fangfrisch のインストール

```
$ paru -S python-fangfrisch
```

#### データベースの構築

```
$ sudo -u clamav /usr/bin/fangfrisch --conf /etc/fangfrisch/fangfrisch.conf initdb
```

#### fangfrisch.timer の起動と有効化

```
$ sudo systemctl enable --now fangfrisch.timer
```

#### clamtk のインストール

```
$ paru -S clamtk
```

#### thunar-sendto-clamtk のインストール

```
$ paru -S thunar-sendto-clamtk
```

何故か thunar-sendto-clamtk のダウンロードが完了せず、インストールできなかった。

https://docs.clamav.net/

https://rseichter.github.io/fangfrisch/

https://www.abten.net/2023/07/1889/

https://inaba-serverdesign.jp/blog/20170913/clamav_scan_virus_install.html

http://randomjottings.blog.fc2.com/blog-entry-31.html

## VLC media player

#### VLC メディアプレイヤーとライブラリのインストール

```
$ sudo pacman -S vlc libdvdnav libdvdread libdvdcss
```

これらは映画の DVD などを観たりしないのであれば、特段必要はないと思う。

https://wiki.archlinux.jp/index.php/%E5%85%89%E5%AD%A6%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E3%83%89%E3%83%A9%E3%82%A4%E3%83%96

## シリアル通信

tmux などでもいいが、ここでは screen コマンドをインストールする。

#### screen コマンドのインストール

```
$ sudo pacman -S screen
```

#### uucp グループにユーザを追加

```
$ sudo gpasswd --add $USER uucp
```

https://wa3.i-3-i.info/word14723.html

#### screen コマンドの使い方

https://linuxjm.osdn.jp/html/GNU_screen/man1/screen.1.html

## USB Utils

#### usbutils のインストール

```
$ sudo pacman -S usbutils
```

#### 動作確認

```
$ lsusb
```


## NeoVim

#### neovim と xclip のインストール

```
$ sudo pacman -S neovim xclip
```

#### ディレクトリ作成

```
$ mkdir -p ~/.config/nvim
```


#### AstroNvim

これをインストール

https://github.com/AstroNvim/AstroNvim


#### init.vim

下記はさしあたって必要になった時のための、最小限の設定。

```:~/.config/nvim/init.vim
" Set basicaly options
set ruler                               " 右下に表示される行・列の番号を表示
set autoindent                          " 自動インデントを有効にする
set expandtab                           " タブではなくスペースを入れる
set tabstop=4                           " タブを表示する時の幅
set shiftwidth=4                        " 自動で挿入されるインデントの幅
set softtabstop=4                       " タブ入力時の幅を4に設定
set showmatch                           " 閉じ括弧入力時に対応する括弧の強調
set matchtime=4                         " showmatch設定の表示秒数(0.1秒単位)
set incsearch                           " インクリメンタルサーチを行う(検索文字入力中から検索)
set ignorecase                          " 文字列検索で大文字・小文字を区別しない
set hlsearch                            " 文字列検索でマッチするものをハイライト表示する
set smartcase                           " 検索文字に大文字が含まれる場合にignorecaseをOFFにする
set wildmenu                            " コマンドラインにおける補完候補の表示
set t_kD=^?                             " Deleteキーを有効にする

" Enable share clipboard: depends xclip
set clipboard=unnamedplus

" Set Syntax highlight
syntax enable                           " Enable syntax highlighting

" Set Backspace-key
set backspace=indent,eol,start          " Behave as other WYSIWYG editors

" Set cursor behave as WYSIWYG editors
nnoremap j gj
nnoremap k gk

" Define encoding
set encoding=utf8                       " Set encoding to utf8
set fileencoding=utf-8                  " Set file's encoding to utf8

" Display informations
set title                               " Set Display editing filename
set wrap                                " Set Enable wrap longline

" Change TAB-key behave on Makefile
let _curfile=expand("%:r")
if _curfile == 'Makefile'
  set noexpandtab
endif

" Change language when leave insert mode 
if executable('fcitx5')
  augroup fcitx_savestate
    autocmd!
    autocmd InsertLeave * call system('fcitx5-remote -c')
  augroup END
endif
```
##### vim script 引用元

https://zenn.dev/botamotch/articles/4ef893e0d4cd40

## Visual Studio Code

```
$ paru -S visual-studio-code-bin
$ mkdir -p ~/.config/Code/User
$ touch ~/.config/Code/User/settings.json
$ cat << EOF
{
  "terminal.integrated.shell.linux": "/usr/bin/zsh",
  "terminal.integrated.shellArgs.linux": [
    "-l"
  ]
}
EOF > ~/.config/Code/User/settings.json
$ code

<とりあえず起動する事を確認＞
```

https://wiki.archlinux.jp/index.php/Visual_Studio_Code

## zsh

#### zsh と zsh-completions のインストール

```
$ sudo pacman -S zsh zsh-completions
```

#### Optional: zsh-autosuggestions のインストール

oh-my-zsh をインストール後に必要に応じてインストールした方がよいかもしれないので、記載を分けておく。

```
$ sudo pacman -S zsh-autosuggestions 
```

#### zsh の設定

oh-my-zsh を使う事をおすすめする。

https://github.com/ohmyzsh/ohmyzsh/

下記の .zshrc は blackarch-config-zsh をベースにしている。

https://github.com/BlackArch/blackarch-config-zsh


使わないが、オプションなどの備忘録として残しておく。

```:~/.zshrc
# Load colours and then set prompt
# Prompt preview:
# [user@hostname]-[~]
# >>>
autoload -U colors && colors
PS1="%{$fg[blue]%}%B[%b%{$fg[cyan]%}%n%{$fg[grey]%}%B@%b%{$fg[cyan]%}%m%{$fg[blue]%}%B]-%b%{$fg[blue]%}%B[%b%{$fg[white]%}%~%{$fg[blue]%}%B]%b
%{$fg[cyan]%}%B>>>%b%{$reset_color%} "

# ZSH history file
HISTSIZE=10000
SAVEHIST=10000
HISTFILE=~/.zsh_history

# ZSH options
setopt list_packed
setopt list_types
setopt hist_ignore_all_dups
setopt hist_ignore_dups
setopt share_history
setopt append_history
setopt inc_append_history
setopt hist_no_store
setopt hist_reduce_blanks
setopt print_eight_bit                                          # Display Multibytes file names

# Fancy auto-complete
autoload -Uz compinit
zstyle ':completion:*' menu select=0
zmodload zsh/complist
zstyle ':completion:*' format '>>> %d'
compinit
_comp_options+=(globdots)                                       # hidden files are included

# Keybindings section
bindkey -e
bindkey '^[[7~' beginning-of-line                               # Home key
bindkey '^[[H' beginning-of-line                                # Home key

if [[ "${terminfo[khome]}" != "" ]]; then
  bindkey "${terminfo[khome]}" beginning-of-line                # [Home] - Go to beginning of line
fi

bindkey '^[[8~' end-of-line                                     # End key
bindkey '^[[F' end-of-line                                      # End key

if [[ "${terminfo[kend]}" != "" ]]; then
  bindkey "${terminfo[kend]}" end-of-line                       # [End] - Go to end of line
fi

bindkey '^[[2~' overwrite-mode                                  # Insert key
bindkey '^[[3~' delete-char                                     # Delete key
bindkey '^[[C'  forward-char                                    # Right key
bindkey '^[[D'  backward-char                                   # Left key
bindkey '^[[5~' history-beginning-search-backward               # Page up key
bindkey '^[[6~' history-beginning-search-forward                # Page down key

# Navigate words with ctrl+arrow keys
bindkey '^[Oc' forward-word                                     #
bindkey '^[Od' backward-word                                    #
bindkey '^[[1;5D' backward-word                                 #
bindkey '^[[1;5C' forward-word                                  #
bindkey '^H' backward-kill-word                                 # delete previous word with ctrl+backspace
bindkey '^[[Z' undo                                             # Shift+tab undo last action

export LD_PRELOAD=""
export EDITOR="nvim"
export PATH="$HOME/bin:$HOME/.local/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/opt/bin:/usr/bin/core_perl:/usr/games/bin:$PATH"

# Aliases
alias c="clear"
alias cd..="cd .."
#alias r="reset"
alias shred="shred -zf"
alias sl="ls --color=auto"
alias vi="vim"
alias ls="ls --color=auto"
alias l="ls -ahls --color=auto"
alias dir="dir --color=auto"
alias vdir="vdir --color=auto"
alias grep="grep --color=auto"
alias fgrep="fgrep --color=auto"
alias egrep="egrep --color=auto"
alias curl="curl --user-agent 'noleak'"                         #
alias wget="wget -c --user-agent 'noleak'"                      # 
alias dd="dd status=progress"                                   # Display progress
alias cp="cp -i"                                                # Confirm before overwrite
alias rm="rm -i"                                                # Confirm before delete
alias mv="mv -i"                                                # Confirm before move
alias df="df -h"                                                # Display human-readable unit
alias free="free -h"                                            # Display human-readable unit
alias du="du -h"                                                # Display human-readable unit
alias hexedit="hexedit --sector --color"

# Define Load zsh plugins
plugins=(
  zsh-autosuggestions
)

# Enable zsh-autosuggestions
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
```

## Bluetooth イヤホン＆マイク

#### bluez-hid2hci と pulseaudio-bluetooth と pavucontrol のインストール

```
$ sudo pacman -S bluez-hid2hci pulseaudio-bluetooth pavucontrol
```

https://wiki.archlinux.jp/index.php/Bluetooth

#### 再起動

```
$ reboot
```

#### bluetoothctl

\<MAC-ADDR\> はタブ補完が効くので使うと便利。

```
$ bluetoothctl
[bluetoothctl]# scan on
[bluetoothctl]# devices
[bluetoothctl]# pair <MAC-ADDR>
[bluetoothctl]# trust <MAC-ADDR>
[bluetoothctl]# connect <MAC-ADDR>
[DEVICE NAME]# exit
```

https://qiita.com/noraworld/items/55c0cb1eb52cf8dccc12

#### pavucontrol

```
$ pavucontrol
```

![pavuaudio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/20877/355ebba1-3279-8d8e-2009-6889bb8c057e.png)

イヤフォンとマイクを利用するには、プロファイルを Handsfree Head Unit(HFP) に変更する。

https://wiki.archlinux.jp/index.php/Bluetooth_%E3%83%98%E3%83%83%E3%83%89%E3%82%BB%E3%83%83%E3%83%88

## 日本語 man-pages-ja

```
$ paru -S man-pages-ja
```

## RDP client

```
$ sudo pacman -S remmina freerdp easy-rsa
```

https://wiki.archlinux.jp/index.php/Remmina#:~:text=freerdp%20%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%81%A6,%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AF%E3%81%9A%E3%81%A7%E3%81%99%E3%80%82

https://www.helpwire.app/blog/remote-desktop-client-linux/

## その他

#### あると便利

```
$ sudo pacman -S github-cli clang lld cmake fzf binwalk lsof strace neofetch socat netcat nmap openvpn traceroute tcpdump wireshark libusb htop wget p7zip unzip zip bash-completion jq fq accountsservice tree whois bind gawk conntrack-tools ethtool 
```

#### バイナリエディタ: hexedit

imhex や wxHexEditor なども用途によっては良さそう。

```
$ sudo pacman -S hexedit
```

##### 登録しておくと便利な alias

```:~/.zshrc
alias hexedit="hexedit --sector --color"
```

http://rigaux.org/hexedit.html

#### qemu-full

```
$ sudo pacman -S qemu-full
```
https://wiki.archlinux.jp/index.php/QEMU

http://www.ne.jp/asahi/it/life/it/kvm/qemu/qemu_tips.html

#### docker

```
$ sudo pacman -S docker docker-compose
$ sudo gpasswd -a $USER docker
```

https://wiki.archlinux.jp/index.php/Docker

#### Vagrant

```
$ sudo pacman -S vagrant
```

https://wiki.archlinux.jp/index.php/Vagrant

#### Zoom

```
$ paru -S zoom
```

https://wiki.archlinux.jp/index.php/Zoom_Meetings

#### Display Power Management Signaling(DPMS)

自動的にディスプレイのバックライトが消灯されたりするタイミングの制御。

https://www.ibm.com/docs/ja/aix/7.2?topic=x-xset-command

https://wiki.archlinux.jp/index.php/Display_Power_Management_Signaling


## とりあえずここまで

#### 一時的なメモ

##### kubernetes

```
$ sudo pacman -S containerd
$ sudo pacman -S kubectl kubelet kubeadm cni-plugins helm helmfile kube-linter
$ paru -S etcd kubernetes-control-plane 

$ sudo nvim /etc/modules-load.d/k8s.conf
---
overlay
br_netfilter
---

$ sudo nvim /etc/sysctl.d/k8s.conf 
---
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
---

$ sudo gpasswd -a $USER kube

$ reboot
   or
$ sudo sysctl --system

$ lsmod | grep -iE 'overlay|br_netfilter'
---
br_netfilter           32768  0
bridge                438272  1 br_netfilter
overlay               200704  0
---

$ sysctl net.bridge.bridge-nf-call-iptables net.bridge.bridge-nf-call-ip6tables net.ipv4.ip_forward
---
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
---

$ paru -S nerdctl-full-bin
$ containerd-rootless-setuptool.sh install
```

https://wiki.archlinux.org/title/Kubernetes

##### セキュリティ推奨事項 - ArchWiki

https://wiki.archlinux.jp/index.php/%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3

##### BlackArch repository

https://blackarch.org/downloads.html#install-repo

##### systemd-nspawn - ArchWiki

https://wiki.archlinux.jp/index.php/Systemd-nspawn

##### systemd-nspawn

https://man.kusakata.com/man/systemd-nspawn.1.html

##### いまから「あえて」systemdのコンテナ機能を使ってみる

https://gihyo.jp/admin/serial/01/ubuntu-recipe/0491

##### マルチディスプレイ

https://wiki.archlinux.jp/index.php/%E3%83%9E%E3%83%AB%E3%83%81%E3%83%87%E3%82%A3%E3%82%B9%E3%83%97%E3%83%AC%E3%82%A4

##### TimeshiftによるLinuxシステムバックアップ

https://endy-tech.hatenablog.jp/entry/timeshift

##### Getting Started with zsh

https://www.youtube.com/watch?v=A6xWiqOpulI