Firefoxなら-P引数を渡せば表示されるアレ、Chromiumには無い。ので作った。
成果物
プロファイル
ブラウザにはプロファイルがある。作業の内容によってプロファイルを分ければ、タブを作業ごとに分けて閲覧できて便利。
chromiumにはプロファイル選択画面がない
Firefoxならfirefox -Pコマンドでプロファイル選択画面が表示できる。

Chromiumにはこれに該当する機能がない。よって今回はそれを自作した。
方法
Chromiumのプロファイル情報は$HOME/.config/chromium/Local Stateという名前のJSONファイルに定義されている。ここからプロファイル情報を抜き出せばいい。
UIはzenityコマンドを使えば簡単に実装できる。
ソースコード
choose_chromium_profile.sh
#!/usr/bin/env bash set -Ceu Run() { IsIntallJq() { [ -n "$(which jq)" ] && return 0 || return 1; } IntallJq() { sudo apt -y install jq; } IsIntallJq || IntallJq readonly PATH_PROFILE="$HOME/.config/chromium/Local State" Profile() { cat "$PATH_PROFILE"; } readonly LAST_ACTIVE_PROFILE="$(jq -r '[ .profile.last_active_profiles ] | flatten | .[]' "$PATH_PROFILE" | head -n 1)" readonly PROFILE_DIRS="$(jq -r '[ .profile.info_cache | keys ] | flatten | .[]' "$PATH_PROFILE")" readonly PROFILE_NAMES="$(jq -r '.profile.info_cache[].name' "$PATH_PROFILE")" readonly PROFILE_NAME_DIR=$(paste -d'\n' <(echo -e "$PROFILE_NAMES") <(echo -e "$PROFILE_DIRS")) readonly PROFILES="$(echo -e "$PROFILE_NAME_DIR" | sed "s/^/'/g" | sed "s/$/'/g" | tr '\n' ' ')" readonly WIDTH=340 readonly HEIGHT=$((100 + (25 * $(echo -e "$PROFILE_DIRS" | wc -l)))) echo $HEIGHT ZENITY_CMD="zenity --list --hide-header --title='Chromiumプロファイル選択' --text='プロファイルを選択してください。' --hide-column=2 --print-column=2 --column='プロファイル名' --column='ディレクトリ名' --width=$WIDTH --height=$HEIGHT $PROFILES" SELECTED_PROFILE_DIR="$(eval "$ZENITY_CMD")" chromium-browser --profile-directory="$SELECTED_PROFILE_DIR" } Run "$@"
昔PythonでJSON解析したことがあった。でもシェル一つで完結したい。
実行
実行権限を与える。
chmod +x choose_chromium_profile.sh
実行する。
./choose_chromium_profile.sh
所感
Linuxコマンドを駆使して使い易く改善するの楽しい。
