PeterMosmans.customize-gnome
Ansible ロール: customize-gnome
このロールはGNOMEデスクトップをカスタマイズします。フォントやGNOME拡張機能をパッケージやZIPファイルからインストールし、デスクトップの背景画像やGNOMEシェルの調整ファイルをホストにコピーし、ユーザー設定を変更します。設定はdconfまたはGSettings形式で提供できます。
要件
requirements.yml
で指定されたcommunity.generalコレクションが必要です。要件は以下のコマンドでインストールできます。
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: リモートソースからダウンロードされ、解凍されてローカルフォントディレクトリにインストールされるフォントのリストです。各アイテムはurl
、name
、およびそのZIPファイル内でインストールするフォントの(グロブ)リストで構成されます。例:
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を指定する代わりに、url
とname
キーを強制することもできます。例:
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
を使用します。各アイテムはschema
、key
、およびvalue
エントリで構成されています。値はAnsibleのシェルコマンドの引用設定のため、シングルクオートとダブルクオートの両方で囲まれている必要があります。例:
gnome_gsettings:
- schema: org.gnome.desktop.interface
key: monospace-font-name
value: '"Source Code Pro Medium 16"'
gnome_dconf: gnome_user
に設定されるdconfエントリのリストで、dconf
を使用します。各アイテムはkey
とvalue
エントリで構成されています。例:
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
作者情報
最初にPeter Mosmansによって作成されました。その他多くの方々の貢献があります。詳しくは 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