diff --git a/README.md b/README.md index a734bbb..5b2e780 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,9 @@ are shown below): # The desktop environment to install (gnome / unity / xfce4) xdesktop_desktop: unity +# The position of the dockbar (applies to gnome only) +xdesktop_dock_position: LEFT + # The format for the desktop clock (applies to xfce4 only) xdesktop_clock_format: diff --git a/defaults/main.yml b/defaults/main.yml index 44660ba..1762a62 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -2,6 +2,9 @@ # The desktop environment to install (gnome / unity / xfce4) xdesktop_desktop: unity +# The position of the dockbar (applies to gnome only) +xdesktop_dock_position: LEFT + # The format for the desktop clock (applies to xfce4 only) xdesktop_clock_format: diff --git a/molecule/default/tests/test_gnome.py b/molecule/default/tests/test_gnome.py index 3df4893..208bbc9 100644 --- a/molecule/default/tests/test_gnome.py +++ b/molecule/default/tests/test_gnome.py @@ -24,7 +24,8 @@ def test_for_config_dirs(host, dir_path): @pytest.mark.parametrize('config_path', [ '/usr/share/X11/xorg.conf.d/60-ansible-screensaver.conf', '/usr/share/glib-2.0/schemas/20_ansible_screensaver.gschema.override', - '/usr/share/glib-2.0/schemas/20_ansible_lockscreen.gschema.override' + '/usr/share/glib-2.0/schemas/20_ansible_lockscreen.gschema.override', + '/usr/share/glib-2.0/schemas/20_ansible_dock.gschema.override' ]) def test_for_config(host, config_path): config_file = host.file(config_path) diff --git a/molecule/gnome/tests/test_gnome.py b/molecule/gnome/tests/test_gnome.py index 3df4893..208bbc9 100644 --- a/molecule/gnome/tests/test_gnome.py +++ b/molecule/gnome/tests/test_gnome.py @@ -24,7 +24,8 @@ def test_for_config_dirs(host, dir_path): @pytest.mark.parametrize('config_path', [ '/usr/share/X11/xorg.conf.d/60-ansible-screensaver.conf', '/usr/share/glib-2.0/schemas/20_ansible_screensaver.gschema.override', - '/usr/share/glib-2.0/schemas/20_ansible_lockscreen.gschema.override' + '/usr/share/glib-2.0/schemas/20_ansible_lockscreen.gschema.override', + '/usr/share/glib-2.0/schemas/20_ansible_dock.gschema.override' ]) def test_for_config(host, config_path): config_file = host.file(config_path) diff --git a/tasks/gnome-desktop-configure.yml b/tasks/gnome-desktop-configure.yml index ae47a2f..be1717d 100644 --- a/tasks/gnome-desktop-configure.yml +++ b/tasks/gnome-desktop-configure.yml @@ -28,6 +28,21 @@ mode: 'u=rw,go=r' register: lockscreen_config +- name: assert dock position valid + assert: + that: + - "xdesktop_dock_position in ('LEFT', 'RIGHT', 'BOTTOM')" + +- name: write gnome dock config + become: yes + template: + src: dock.gschema.override.j2 + dest: '{{ xdesktop_glib_schemas_directory }}/20_ansible_dock.gschema.override' + owner: root + group: root + mode: 'u=rw,go=r' + register: dock_config + - name: apply glib schemas changes tags: # Suppress warning: [ANSIBLE0016] Tasks that run when changed should likely be handlers @@ -36,4 +51,4 @@ - skip_ansible_lint become: yes command: '/usr/bin/glib-compile-schemas {{ xdesktop_glib_schemas_directory }}' - when: screensaver_config.changed or lockscreen_config.changed + when: screensaver_config.changed or lockscreen_config.changed or dock_config.changed diff --git a/templates/dock.gschema.override.j2 b/templates/dock.gschema.override.j2 new file mode 100644 index 0000000..75be46e --- /dev/null +++ b/templates/dock.gschema.override.j2 @@ -0,0 +1,4 @@ +{{ ansible_managed | comment }} + +[org.gnome.shell.extensions.dash-to-dock] +dock-position='{{ xdesktop_dock_position }}'