![]() |
Shotgun DesktopShotgun Desktop 应用程序内运行的插件 |

Desktop 插件是运行在 Shotgun Desktop 应用程序内部的插件。它控制各种用户界面功能,并在 Toolkit 应用与 Shotgun Desktop 应用程序之间建立起连接桥梁。
概述视频
下面的视频对特性和功能进行了简要的介绍。
文档
tk-desktop 插件是一个让您易于运行 Toolkit 应用的应用程序。它是一个基于系统托盘的窗口,通过它可轻松上手使用 Toolkit,为 Toolkit 设置项目,以及访问项目的工作流。
如果您已设置了第一个项目,但是在根据自身需求配置项目方面需要帮助,请参见我们的“后续步骤”文档:
站点配置和项目配置

当您启动 Desktop 应用程序时,它会为站点配置启动 tk-desktop 插件。此配置的管理通常是自动的,但是我们也可以禁用自动管理,自己控制环境中的一切。
Toolkit 的一个基本原则是,各个项目可以完全彼此隔离。通常,这是为了确保一个项目的更改不会对另一个项目造成不利影响(临近交付时可能出现这种情况)。为了提供这种项目隔离机制,Desktop 插件确保无论您何时使用某个特定项目的命令,都将在专为这个项目初始化的单独 Python 解释器中运行它们。
当您单击一个项目时,后台会启动一个 Python 解释器。此 Python 解释器是为该项目配置的解释器,启动时将为该项目初始化 tk-desktop。插件的这个实例会与图形用户界面通信,指示可以启动什么命令。
当您单击一个命令时,后台运行的 Python 进程会负责启动该命令。这样,您便可以(例如)在一个项目上运行 Python 2.6,在另一个项目上测试 Python 2.7。
注册自定义面板
具有基于面板的 UI 的 Toolkit 应用执行时将自动停靠在 Desktop 内的选项卡中。
如果您有基于面板的应用(如 Shotgun 面板)并希望它在 Shotgun Desktop 中显示为选项卡,只需将其配置为在启动时运行。Desktop 在其站点上下文模式下启动时(此时它显示所有项目),它将启动注册为自动启动的所有项。如果其中任何项是面板,则这些项将会停靠。这些项按其在配置中定义的顺序进行处理,该顺序即表示选项卡顺序。
例如,如果您希望 Shotgun 面板在 Shotgun Desktop 中显示为选项卡,则为您的站点级环境添加以下配置:
tk-desktop:
apps:
tk-multi-shotgunpanel:
actions_hook: ...
action_mappings: ...
location: ...
location: ...
run_at_startup:
- {app_instance: '', name: Apps}
- {app_instance: tk-multi-shotgunpanel, name: ''}
请注意,特殊的 Apps
条目控制默认 Apps
选项卡应显示的位置(按照选项卡顺序)。
安装和更新
将此插件添加到 Shotgun Pipeline Toolkit
如果您想将此插件添加到 Project XYZ 中名为 asset 的环境中,请执行以下命令:
> tank Project XYZ install_engine asset tk-desktop
更新至最新版本
如果您已在某个项目中安装了此应用,要获取最新版本,可运行 update
命令。您可以导航到该特定项目随附的 tank 命令,并在该项目中运行它:
> cd /my_tank_configs/project_xyz > ./tank updates
或者,也可以运行您的工作室的 tank
命令并指定项目名称,指示该命令要对哪个项目运行更新检查:
> tank Project XYZ updates
协作和代码演进
![]() |
如果您可以获取 Shotgun Pipeline Toolkit,意味着也可以获取我们在 GitHub 中存储和管理的所有应用、插件和框架的源代码。欢迎根据实际需要演进和完善这些内容,以它们为基础做进一步的独立开发,修改它们(以及向我们提交 Pull 请求!),或者只是随手玩一玩,简单了解它们的构建方式和 Toolkit 的工作原理。您可以通过以下网址访问此代码库:https://github.com/shotgunsoftware/tk-desktop。 |
特殊要求
- 需要安装 Shotgun Pipeline Toolkit 核心 API 版本 v0.19.18 或更高版本才能使用此功能。
配置
下面是所有配置设置参数。您需要在要启用此应用或插件的环境文件中定义这些设置。
sg_software_entity
类型:str
默认值: CustomNonProjectEntity23
说明:在变为原生实体前被指定为软件实体的 Shotgun 自定义非项目实体。
software_entity_config_link
类型:str
默认值: https://support.shotgunsoftware.com/entries/95443887#Setting%20up%20Application%20Paths
说明:Shotgun 支持文章的链接,详细介绍如何为站点配置软件实体。
debug_logging
类型:bool
说明:控制是否将调试消息发送至日志记录程序。
default_group
类型:str
默认值: Studio
说明:控制与 groups 设置中任何值都不匹配的任何命令的默认命令分组名称。
run_at_startup
类型:list
默认值: [{'app_instance': '', 'name': 'Apps'}]
说明:控制哪些应用将在启动时运行。这是一个列表,其中每个列表项都是一个具有“app_instance”和“name”键的词典。“app_instance”值将此条目连接至环境配置文件中定义的一个特定应用实例。“name”是 Desktop 启动时要运行的命令的菜单名称。如果“name”值为 '',则会启动给定应用实例的所有命令。要添加“应用”(Apps)选项卡(包含应用启动器),请将以下启动命令添加到列表:{app_instance: '', name: 'Apps'}
groups
类型:list
说明:一个词典列表,其中的词典定义哪些命令归入哪些组。每个词典条目需要具有以下键:name(组名称)、matches(要添加到组中的命令的字符串列表)。向插件添加命令时,组的 matches 列表中的每个匹配项将被视为一个与命令显示名称匹配的不区分大小写的通配符式匹配项。如果存在匹配,对应的命令将被添加到组中。例如,“Maya”将匹配所有在显示名称中包含“maya”字符串的命令,无论大小写如何。一个命令如果与多个组匹配,可以出现在多个组中。
show_recents
类型:bool
默认值: True
说明:控制是否显示最近单击过的命令。
collapse_rules
类型:list
默认值: [{'button_label': '$app', 'match': 'Launch $app', 'menu_label': 'None'}]
说明:一个词典列表,其中的词典定义如何将多个命令收拢到图形用户界面中的一个按钮。每个词典需要具有以下键:match(一个字符串,将用于匹配注册命令的显示名称)、button_label(生成的按钮的文本标签)、menu_label(按钮菜单中的菜单项的文本标签)。将命令添加到插件后,会将它们的显示名称与每个 match 逐个比对。“match”字符串可包含 '$' 样式的变量,它们将匹配命令的显示名称中的任意单个词语。这些 '$' 变量可用于 button_label 和 the menu_label 中。例如,“match”字符串“Launch $APP $VERSION”将匹配任何由“Launch”后跟两个单词组成的显示名称。如果显示名称为“Launch Maya 2014”,则该字符串将与之匹配,这里“$APP”的值为“Maya”,“$VERSION”的值为“2014”。如果 menu_label 为特殊字符串“None”,则按钮名称将按照 button_label 的值进行转换,但是不会为命令添加菜单项。如果多个命令以这种方式收拢到一个按钮,将只会注册第一个命令。如果显示名称不符合任何收拢规则,它将以不带菜单的按钮形式显示。第一个匹配规则将决定按钮和菜单的标签。
hook_launch_python
类型:hook
默认值: launch_python
说明:此挂钩负责为特定项目启动 Python 解释器。挂钩的第一个参数是“project_python”,即要启动的 Python 解释器的路径。第二个参数是“pickle_data_path”,这是一个 Python Pickle 的完整路径,Pickle 中包含对项目的 tk-desktop 插件进行初始化并将数据回传给桌面图形用户界面所需的信息。第三个参数是 Python 的 utilities 模块的路径。新的解释器中会加载此模块,并用它来启动插件。
0 评论