Скопируйте модуль запуска 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 от одного пользователя к другому.