Как запустить хром с определенным пользователем

Браузер хрома позволяет иметь многочисленных пользователей с отдельными закладками, расширение и т.д. в хроме.

Действительно ли возможно запустить хром с параметрами, которые указывают который пользователь быть загруженными.

По умолчанию последний пользователь загружается.

3
задан 1 February 2015 в 11:50

1 ответ

Профили пользователей хрома

chromium-browser профили пользователей хранятся в определенных подпапках ~/.config/chromium. Эти подпапки имеют имена, не очевидно, соответствуя именам пользователя.
Скажем, у меня есть три профилей пользователей: "Josephine", "Karel", "Willem":

<image1 >

Они "представлены" тремя папками профиля внутри ~/.config/chromium: Default, Profile 1 и Profile 2.
Видеть, которому соответствует папка, какой профиль пользователя, необходимо было бы посмотреть в папке и видеть, происходит ли имя пользователя (или "Karel", "Willem" или "Josephine") в файле Preferences.

Открыть хром с определенным профилем пользователя

Команда для открытия chromium с определенным профилем пользователя:

chromium-browser --profile-directory="<name_of_subfolder>"

Где <name_of_subfolder> название папки, представляющей пользователя, как объяснено в профилях пользователей Хрома. Открываться chromium with Профиль "Karel", например, я должен буду выполнить команду:

Exec=chromium-browser --profile-directory="Default"

Опции

Существует несколько возможностей создать опцию открыться определенным профилем пользователя.

  1. Отредактируйте 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
      

    Сохраните файл и зарегистрируйтесь/в для наблюдения изменений

  2. С другой стороны, можно добавить пользователя как ярлык на средство запуска:

    <image2>

    Ищите строку:

    Actions=NewWindow;Incognito;TempProfile;
    

    Измените его в:

    Actions=NewWindow;Incognito;TempProfile;Karel;
    

    Добавьте к самому концу файла раздел:

    [Desktop Action Karel]
    Name=Karel
    Exec=chromium-browser --profile-directory="Default"
    OnlyShowIn=Unity;
    

    Повторите процедуру для каждого пользователя, которого требуется добавить как ярлык (не забывайте регистрироваться/в впоследствии).

  3. Опция в виде сценария:

    Оборотная сторона двух опций выше - то, что они "фиксируются". Необходимо было бы отредактировать Ваш .desktop зарегистрируйте каждый раз, когда пользователь добавлен или удален.
    Другая идея состоит в том, чтобы поэтому заставить сценарий искать Ваши профили, извлечь соответствующие имена пользователей в Предпочтительных файлах и сделать Zenity покажите список опций для выбора из:

    < image3>

    Если Вы называете окно от ключевого ярлыка, все, к чему Вы имеете к, выбирают пользователя из списка (или просто введите число), и нажмите 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
    
7
ответ дан 1 December 2019 в 13:25

Другие вопросы по тегам:

Похожие вопросы: