Chromium 浏览器允许多个用户在 Chromium 内拥有各自的书签、扩展等。
是否可以使用指定要加载哪个用户的参数来启动 Chromium。
默认情况下加载最后一个用户。
答案1
Chromium 用户配置文件
用户chromium-browser
配置文件存储在 的特定子文件夹中~/.config/chromium
。这些子文件夹有名称,但显然与用户的名称不对应。
假设我有三个用户配置文件:“Josephine”、“Karel”、“Willem”:
它们由 中的三个配置文件文件夹“表示” ~/.config/chromium
:Default
和。 要查看哪个文件夹对应于哪个用户配置文件,您必须查看文件夹内部,并Profile 1
查看Profile 2
用户名(“Karel”、“Willem”或“Josephine”)出现在文件中Preferences
。
使用特定用户配置文件打开 Chromium
chromium
使用特定用户配置文件打开的命令是:
chromium-browser --profile-directory="<name_of_subfolder>"
其中<name_of_subfolder>
是代表用户的文件夹的名称,如Chromium 用户配置文件例如,要打开chromium with
“Karel”的个人资料,我必须运行以下命令:
Exec=chromium-browser --profile-directory="Default"
选项
有多种方法可以创建使用特定用户配置文件打开的选项。
编辑
chromium-browser.desktop
文件以默认以特定用户打开:将
chromium-browser.desktop
文件从/usr/share/applications
复制到~/.local/share/applications
:cp /usr/share/applications/chromium-browser.desktop ~/.local/share/applications/chromium-browser.desktop
打开本地副本
~/.local/share/applications
(将其拖到打开的gedit
窗口或运行命令gedit ~/.local/share/applications/chromium-browser.desktop
),查找第一的行,以 开头Exec=
。将该行替换为(对于“Karel”):Exec=chromium-browser --profile-directory="Default" %u
保存文件并注销/登录以查看更改
或者,您可以将用户添加为启动器的快捷方式:
寻找以下行:
Actions=NewWindow;Incognito;TempProfile;
改成:
Actions=NewWindow;Incognito;TempProfile;Karel;
在文件的最末尾添加一个部分:
[Desktop Action Karel] Name=Karel Exec=chromium-browser --profile-directory="Default" OnlyShowIn=Unity;
对您想要添加为快捷方式的每个用户重复此过程(之后不要忘记注销/登录)。
脚本选项:
.desktop
上述两个选项的缺点是它们是“固定的”。每次添加或删除用户时,您都必须编辑文件。
因此,另一个想法是编写一个脚本来查找您的配置文件,在首选项文件中提取相应的用户名,并显示Zenity
一个选项列表以供选择:如果您通过快捷键调用窗口,您只需从列表中选择用户(或直接输入号码)并按Return。
如何使用
将以下脚本复制到一个空文件中,并将其保存为 chromium_profiles.py
通过快捷键组合运行:选择:系统设置 > “键盘” > “快捷键” > “自定义快捷键”。点击“+”并添加命令:
python3 /path/to/chromium_profiles.py
剧本
#!/usr/bin/env python3 import subprocess import os home = os.environ["HOME"] directory = home+"/"+".config/chromium" profiles = [] user = lambda cmd: subprocess.check_output(["/bin/bash", "-c", cmd]).decode("utf-8") reduce = lambda s: s[0].split(": ")[1].replace(",\n", "").replace('"', "") def read(file): with open(file) as src: lines = src.readlines(); r_ls = range(len(lines)) da = [i for i in r_ls if '"local_profile_id":' in lines[i]][0] return reduce([lines[i] for i in r_ls if i > da and '"name"' in lines[i]]) for root, dirs, files in os.walk(directory): for file in files: if file.startswith("Preferences"): file = root+"/"+file; pr_name = read(file); pr_id = root.split("/")[-1] profiles.append([pr_name, pr_id]) strings = [item[0] for item in profiles] list_items = [str(i+1)+". "+strings[i] for i in range(len(strings))] try: choose = 'zenity --list '+'"'+('" "').join(list_items)+\ '"'+' --column="User profiles" '+\ '--title="Chromium users" --height 250 --width 150' choice = profiles[int(user(choose)[0])-1] command = 'chromium-browser --profile-directory="'+choice[1]+'"' subprocess.Popen(["/bin/bash", "-c", command]) except subprocess.CalledProcessError: pass