将Unity启动器从一个用户复制到所有用户

我想添加Unity启动器的先进技术作为模板,以创建其他用户的最小艺术状态。 我找到了如何将应用程序添加到模板中的方法,但不是方法,如何提取当前用户的设置。

我正在尝试确保只是编辑架构是否足以在面板指示器中设置已记录用户实名的显示。

您可以在应用程序启动器和其他项目中划分Unity启动器的项目; 网络相关,安装卷等。 最好的方法是仅将应用程序启动器复制到其他用户,因为其他用户可以是用户特定的和/或在此过程中变化。

另请注意,如果将启动器的内容复制到另一个用户,则本地安装的应用程序中可能的本地 .desktop文件(在~/.local/share/applications )将不会出现在其他用户的Unity启动器中。

阅读当前发射器的内容

话虽如此,您可以通过以下命令读取当前启动器的内容:

 gsettings get com.canonical.Unity.Launcher favorites 

输出是当前Unity启动器中所有项目的列表。

设置新的启动器内容

要为启动器设置新内容,请使用以下命令:

 gsettings set com.canonical.Unity.Launcher favorites  

使用脚本将启动器复制到另一个用户的帐户

如果我们使用脚本来获取第一个用户的启动项,请将结果写入文件,然后登录到另一个用户的帐户再次运行脚本(与文件一起)将内容设置为其他用户的帐户,可以立刻完成。 下面的脚本可以同时执行这两个操作,具体取决于您提供的参数(请参阅下文)。

如何使用

  • 将下面的脚本复制到一个空文件中,将其另存为copy_launcher.py
  • 在“模型用户”帐户中打开终端窗口,然后使用以下命令运行脚本:

     python3 /path/to/copy_launcher.py get 

    命令的get -argument使脚本创建一个文本文件: saved_launcher.txt ,其中包含当前Unity启动器的内容。 该文件创建在脚本所在的目录中。

  • 将脚本和saved_launcher.txt文件复制到(例如)usb棒上,但将两个文件保存在同一个目录中。
  • 登录其他用户的帐户,打开终端并通过以下命令运行脚本:

     python3 /path/to/copy_launcher.py set 

    (记住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启动器从一个用户复制到另一个用户。