PeterMosmans.customize-gnome

Ansible角色:自定义GNOME

该角色的构建状态: 构建状态

这个角色用于自定义GNOME桌面。它会从软件包或压缩文件中安装字体和GNOME扩展,复制文件(如桌面背景和GNOME壳调节)到主机,并修改用户设置。设置可以以dconf或GSettings格式提供。

需求

需要“community.general”集合,具体在“requirements.yml”中说明。使用以下命令安装需求:

ansible-galaxy install -r requirements.yml

此外,“community.general.dconf”模块需要Python的“psutil”模块。该模块会自动安装。

角色变量

所有特定于该角色的变量以gnome_开头。可用的变量如下:

gnome_user:需要修改设置的用户。示例:

gnome_user: root

如果未指定gnome_user,将使用ansible_user_id变量(Ansible连接到节点的用户)。

gnome_packages:将要安装的软件包列表。示例:

gnome_packages:
  - fonts-roboto

gnome_fonts:将从远程来源下载的字体列表,解压并安装到本地字体目录。每个列表项包含一个urlname和该zip文件中要安装的字体的(guid)列表(fonts)。示例:

gnome_fonts:
  - url: https://github.com/adobe-fonts/source-code-pro/archive/2.030R-ro/1.050R-it.zip
    name: SourceCodePro
    fonts: "source-code-pro-2.030R-ro-1.050R-it/OTF/*.otf"

gnome_files:要从主机复制到客户机的文件列表,指定源(src)和目标(dest)。示例:

gnome_files:
  - src: gtk.css
    dest: /home/{{ gnome_user }}/.config/gtk-3.0/gtk.css

gnome_extensions:要安装的GNOME壳扩展列表(从远程来源下载并解压到用户的本地扩展)。

每个项的url和/或name属性会在id存在时从网络动态加载。

gnome_extensions:
  - id: 545

如果存在enable属性且设置为真值(例如yes),则扩展将在安装后自动启用。示例:

gnome_extensions:
  - id: 1112
    enable: yes

除了指定ID外,您还可以强制使用urlname键。示例:

gnome_extensions:
  - url:
    "https://extensions.gnome.org/download-extension/[email protected]?version_tag=6450"
    name: "[email protected]"

请注意,预定义的name和/或url值不会因指定id而被覆盖。

gnome_gsettings:将为gnome_user设置的gsettings条目列表,使用gsettings。每个列表项包含一个schemakeyvalue项。请注意,由于Ansible对shell命令的引用设置,值应包含单引号和双引号。示例:

gnome_gsettings:
  - schema: org.gnome.desktop.interface
    key: monospace-font-name
    value: '"Source Code Pro Medium 16"'

gnome_dconf:将为gnome_user设置的dconf条目列表,使用dconf。每个列表项包含一个keyvalue项。示例:

gnome_dconf:
  - key: /org/gnome/desktop/background/show-desktop-icons
    value: "false"

gtk_version:GTK的版本字符串。如果GTK配置目录不存在,将用于创建该目录。示例:

gtk_version: "gtk-3.0"

依赖

无。

示例剧本

- hosts: all
  become: yes
  become_method: sudo
  roles:
    - role: petermosmans.customize-gnome
  vars:
    gnome_dconf:
      - key: /org/gnome/desktop/background/show-desktop-icons
        value: "false"
    gnome_extensions:
      - url: https://extensions.gnome.org/download-extension/[email protected]?version_tag=6450
        name: [email protected]
      - id: 15
      - id: 1160
        url: https://example.com/gnome-extension/1160.zip
      - id: 1236
        name: CustomNamedExtension
      - id: 1267
        name: CustomNamedExtension2
        url: https://example.com/gnome-extension/1267.zip
      - id: 1112
        enable: yes
    gnome_files:
      - src: gtk.css
        dest: "/home/{{ gnome_user }}/.config/{{ gtk_version }}/gtk.css"
    gnome_fonts:
      - url: https://github.com/adobe-fonts/source-code-pro/archive/2.030R-ro/1.050R-it.zip
        name: SourceCodePro
        fonts: "source-code-pro-2.030R-ro-1.050R-it/OTF/*.otf"
    gnome_gsettings:
      - schema: org.gnome.desktop.interface
        key: monospace-font-name
        value: '"Source Code Pro Medium 16"'
      - schema: org.gnome.shell.extensions.dash-to-panel
        schemadir: ~/.local/share/gnome-shell/extensions/[email protected]/schemas
        key: panel-position
        value: TOP
    gnome_packages:
      - fonts-roboto
    gnome_user: peter
    gtk_version: 3.0

此示例将安装全局字体Roboto、Source Code Pro,GNOME壳扩展hidetopbar,并为用户root修改多个设置。

许可证

GPLv3

作者信息

最初由彼得·莫斯曼斯创建。由其他许多人贡献:请参见 https://github.com/PeterMosmans/ansible-role-customize-gnome/graphs/contributors

关于项目

Customizes settings for a GNOME desktop, including shell extensions and fonts.

安装
ansible-galaxy install PeterMosmans.customize-gnome
许可证
gpl-3.0
下载
5.8k
拥有者
Lead pentester, security consultant, trainer