やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Chromiumで任意プロファイルを起動する

 前回最後に使ったプロファイルから切り替えるのが面倒。メモリ消費大のため単独で起動したい。

対象環境

  • Chromium 65.0.3325.181 Built on Raspbian , running on Raspbian 9.6

手順

$ chromium-browser --profile-directory="Profile 1"

 上記の例では~/.config/chromium/Profile 1/のプロファイルで起動する。

プロファイル名

 勝手にProfile 1と名付けられる。ユーザ名を設定・変更できるがフォルダ名に変化なし。そこでユーザ名を取得する方法を探してみた。

  1. コマンド名を調べる
  2. バージョン確認する
  3. ヘルプを表示する
  4. ユーザデータを調べる

1. コマンド名を調べる

 まずchromiumのコマンド名を調べる。

  1. メインメニュー→インターネットChromium ウェブ/ブラウザを右クリックする
  2. プロパティをクリックする
  3. リンク先のパスをコピペする

  4. /usr/share/applications/chromium-browser.desktop

  5. テキストエディタで開く

  6. ファイル末尾へ移動する
  7. 以下の記述からコマンド名はchromium-browserであると判明する
Exec=chromium-browser --temp-profile

2. バージョン確認する

$ chromium-browser --version
 --disable-quic --enable-tcp-fast-open --disable-gpu-compositing --ppapi-flash-path=/usr/lib/chromium-browser/libpepflashplayer.so --ppapi-flash-args=enable_stagevideo_auto=0 --ppapi-flash-version=
Chromium 65.0.3325.181 Built on Raspbian , running on Raspbian 9.6

3. ヘルプを表示する

$ chromium-browser --help

4. ユーザデータを調べる

 上記からユーザデータは以下にあることが判明。

4-1. プロファイル・ディレクト

  • ~/.config/chromium/
    • System Profile/
    • Default/
    • Profile 1/
    • Profile 2/
    • Profile 3/
    • ...

4-2. ユーザ設定ファイル

  • ~/.config/chromium/
    • Default/
      • Preferences

 ユーザの設定はプロファイル・ディレクトリ配下のPreferencesファイルにてJSON形式で保存されている。

4-2-1. ユーザ名の調べ方

  1. Preferencesファイルをテキストエディタで開く
  2. managed_user_idで検索する
  3. その右隣にあるname属性値がプロファイルのユーザ名である
... ,"managed_user_id":"","name":"{自分で設定したプロファイルのユーザ名}", ...
...
{"account_id":"{UUID}","last_account_id":"{UUID}","last_username":"{UUID}","username":"{UUID}"}}, ...
4-2-1-1. JSON階層の調べ方

 先のJSONはインデントがなく大量であるため、階層が不明。JSONを整形してインデントを挿入した形にして目で確認する。

cat "/home/pi/.config/chromium/Profile 1/Preferences" | python -m json.tool > /tmp/work/Preferences.json

 以下の階層であることが判明。

  • profile
    • name

 Pythonでプロファイル名を表示するコードは以下。

show_profile.py

#!/usr/bin/python3
# coding: utf-8
import sys
import json

f = open("/home/pi/.config/chromium/Profile 1/Preferences", 'r')
chromium_preferences = json.load(f)
print(chromium_preferences['profile']['name'])

5. プロファイル選択したい

 プロファイル選択できるランチャーが欲しい。

chromium_user_select.sh

chromiumを起動します。ユーザを選択してください。
1) default  2) userA  3) userB
$?) 
  • プロファイル情報を自動で読み込む
    • 全ユーザを網羅する
      • ユーザ名を表示する(フォルダ名でなく)