Скопируйте модуль запуска Unity от одного пользователя всем пользователям

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

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

1 ответ

Вы можете разделить элементы модуля запуска Unity на панели запуска приложений и другие элементы; связанные с сетью, подключенные тома и тому подобное. Лучше всего копировать только пусковые установки приложений другим пользователям, поскольку другие могут зависеть от пользователя и / или изменяться в процессе.

Также обратите внимание, что если вы копируете содержимое модуля запуска другому пользователю, возможны локальные файлы.desktop (в ~/.local/share/applications) локально установленных приложений, например, не появится в панели запуска Unity другого пользователя.

Чтение содержимого текущего модуля запуска

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

gsettings get com.canonical.Unity.Launcher favorites

Вывод представляет собой список всех элементов вашего текущего модуля запуска Unity.

Установка нового содержимого лаунчера

Чтобы установить новый контент для модуля запуска, используется следующая команда:

gsettings set com.canonical.Unity.Launcher favorites <list_of_items>

Использование сценария для копирования модуля запуска в учетную запись другого пользователя

Если мы используем сценарий для извлечения элементов запуска первого пользователя, запишите результат в файл, а затем войдите в учетную запись другого пользователя, чтобы снова запустить сценарий (вместе с файлом), чтобы установить содержимое в учетную запись другого пользователя. может быть сделано в кратчайшие сроки. Сценарий, приведенный ниже, предназначен для выполнения того и другого, в зависимости от аргумента, который вы ему даете (см. Ниже).

Как пользоваться

  • Скопируйте приведенный ниже скрипт в пустой файл и сохраните его как copy_launcher.py
  • Откройте окно терминала в учетной записи "модели пользователя" и запустите скрипт с командой:

    python3 /path/to/copy_launcher.py get
    

    get Аргумент команды заставляет скрипт создать текстовый файл: saved_launcher.txt, с содержанием вашего текущего запуска Unity. Файл создается в том же каталоге, где находится сценарий.

  • Скопируйте сценарий и saved_launcher.txt файл (например) на флешке, но храните оба файла в одном и том же каталоге.
  • Войдите в учетную запись другого пользователя, откройте терминал и запустите скрипт командой:

    python3 /path/to/copy_launcher.py set
    

    (возражайте против установленного аргумента)

Сценарий

#!/usr/bin/env python

import subprocess
import os
import sys

command = sys.argv[1]

curr_dir = os.path.dirname(os.path.abspath(__file__))
datafile = curr_dir+"/saved_launcher.txt"

def get_current():
    get_current = subprocess.check_output(["gsettings", "get", "com.canonical.Unity.Launcher", "favorites"]).decode("utf-8")
    return (str([item for item in eval(get_current) if item.startswith("application://")]),
            [item for item in eval(get_current) if not item.startswith("application://")])

def write_saved():
    current_launcher = get_current()[0]
    with open(datafile, "w") as saved:
        saved.write(current_launcher)

def read_saved():
    with open(datafile, "r") as saved:
        return eval(saved.read())

def set_launcher():
    app_section = read_saved(); fixed_section = get_current()[1]
    new_launcher = str(app_section+fixed_section)
    subprocess.Popen(["gsettings", "set", "com.canonical.Unity.Launcher", "favorites", new_launcher ])


if command == "set":
    set_launcher()
elif command == "get":
    write_saved()

Если вы закончили, вы скопировали модуль запуска Unity от одного пользователя к другому.

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