Perfis de usuário do Chromium
Os perfis de usuário chromium-browser
são armazenados em subpastas específicas de ~/.config/chromium
. Essas subpastas têm nomes, obviamente não correspondentes aos nomes dos usuários.
Digamos que eu tenha três perfis de usuário: "Josephine", "Karel", "Willem":
Elessão"representados" por três pastas de perfil dentro de ~/.config/chromium
: Default
, Profile 1
e Profile 2
.
Para ver qual pasta é correspondente a qual perfil de usuário, você teria que olhar dentro da pasta e ver se o nome de usuário (ou "Karel", "Willem" ou "Josephine") ocorre em o arquivo Preferences
.
Para abrir o cromo com um perfil de usuário específico
O comando para abrir chromium
com um perfil de usuário específico é:
chromium-browser --profile-directory="<name_of_subfolder>"
Em que <name_of_subfolder>
é o nome da pasta que representa o usuário, conforme explicado em Perfis de usuário do Chromium . Para abrir o perfil chromium with
"Karel's", por exemplo, terei que executar o comando:
Exec=chromium-browser --profile-directory="Default"
Opções
Existem várias possibilidades para criar a opção de abrir com um perfil de usuário específico.
-
Edite o arquivo
chromium-browser.desktop
para abrir com um usuário específico por padrão:-
Copie o arquivo
chromium-browser.desktop
de/usr/share/applications
para~/.local/share/applications
:cp /usr/share/applications/chromium-browser.desktop ~/.local/share/applications/chromium-browser.desktop
-
Abra a cópia local em
~/.local/share/applications
(arraste-a sobre a janelagedit
aberta ou execute o comandogedit ~/.local/share/applications/chromium-browser.desktop
), procure pela linha primeiro , começando comExec=
. Substitua a linha por (no caso de "Karel"):Exec=chromium-browser --profile-directory="Default" %u
Salve o arquivo e efetue logout / in para ver as alterações
-
-
Como alternativa, você pode adicionar o usuário como um atalho ao seu lançador:
Procurealinha:
Actions=NewWindow;Incognito;TempProfile;
Altere-opara:
Actions=NewWindow;Incognito;TempProfile;Karel;
Adicioneaofinaldoarquivoumaseção:
[DesktopActionKarel]Name=KarelExec=chromium-browser--profile-directory="Default" OnlyShowIn=Unity;
Repita o procedimento para cada usuário que você gostaria de adicionar como um atalho (não se esqueça de sair / entrar depois).
-
Opção com script:
A desvantagem das duas opções acima é que elas são "fixas". Você teria que editar seu arquivo
.desktop
cada vez que um usuário fosse adicionado ou removido.
Outra ideia é, portanto, fazer um script procurar seus perfis, extrair os nomes de usuário correspondentes nos arquivos de Preferências e tornarZenity
uma lista de opções para escolher:Sevocêchamarajanelaapartirdeumatalho-chave,bastaselecionarousuárionalista(ousimplesmentedigitaronúmero)epressionarRetornar.
Comousar
Copieoscriptabaixoemumarquivovazio,salve-ocomochromium_profiles.py
Executeapartirdeumacombinaçãodeteclasdeatalho:Escolha:Configuraçõesdosistema>"Teclado" > "Atalhos" > "Atalhos personalizados". Clique no botão "+" e adicione o comando:
python3 /path/to/chromium_profiles.py
O script
#!/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