113 lines
3.1 KiB
YAML
113 lines
3.1 KiB
YAML
---
|
|
- name: Check for Zen Browser
|
|
ansible.builtin.stat:
|
|
path: "{{ zen_install_dir }}/zen"
|
|
become: false
|
|
register: zen_binary
|
|
|
|
- name: Create Zen installation directories
|
|
ansible.builtin.file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
owner: "{{ user_name }}"
|
|
mode: "0755"
|
|
become: false
|
|
loop:
|
|
- "{{ user_home }}/.tarball-installations"
|
|
- "{{ user_home }}/.config"
|
|
- "{{ user_home }}/.local/bin"
|
|
- "{{ user_home }}/.local/share/applications"
|
|
- "{{ user_home }}/.local/share/icons/hicolor/128x128/apps"
|
|
|
|
- name: Download the current Zen release binary
|
|
ansible.builtin.get_url:
|
|
url: "{{ zen_archive_url }}"
|
|
dest: "{{ zen_archive }}"
|
|
mode: "0644"
|
|
become: false
|
|
when: not zen_binary.stat.exists
|
|
|
|
- name: Extract Zen Browser
|
|
ansible.builtin.unarchive:
|
|
src: "{{ zen_archive }}"
|
|
dest: "{{ user_home }}/.tarball-installations"
|
|
remote_src: true
|
|
creates: "{{ zen_install_dir }}/zen"
|
|
become: false
|
|
|
|
- name: Link Zen into the user's PATH
|
|
ansible.builtin.file:
|
|
src: "{{ zen_install_dir }}/zen"
|
|
dest: "{{ user_home }}/.local/bin/zen"
|
|
state: link
|
|
force: true
|
|
become: false
|
|
|
|
- name: Install Zen application icon
|
|
ansible.builtin.copy:
|
|
src: "{{ zen_install_dir }}/browser/chrome/icons/default/default128.png"
|
|
dest: "{{ user_home }}/.local/share/icons/hicolor/128x128/apps/zen.png"
|
|
remote_src: true
|
|
owner: "{{ user_name }}"
|
|
mode: "0644"
|
|
become: false
|
|
|
|
- name: Install Zen desktop entry
|
|
ansible.builtin.copy:
|
|
dest: "{{ user_home }}/.local/share/applications/{{ zen_desktop_file }}"
|
|
owner: "{{ user_name }}"
|
|
mode: "0644"
|
|
content: |
|
|
[Desktop Entry]
|
|
Version=1.0
|
|
Type=Application
|
|
Name=Zen Browser
|
|
Comment=Browse the web
|
|
Exec=zen %u
|
|
Icon=zen
|
|
Terminal=false
|
|
StartupNotify=true
|
|
StartupWMClass=zen
|
|
Categories=Network;WebBrowser;
|
|
MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;application/x-xpinstall;application/pdf;application/json;
|
|
Actions=new-window;new-private-window;profile-manager;
|
|
|
|
[Desktop Action new-window]
|
|
Name=New Window
|
|
Exec=zen --new-window %u
|
|
|
|
[Desktop Action new-private-window]
|
|
Name=New Private Window
|
|
Exec=zen --private-window %u
|
|
|
|
[Desktop Action profile-manager]
|
|
Name=Profile Manager
|
|
Exec=zen --ProfileManager
|
|
become: false
|
|
|
|
- name: Remove downloaded Zen archive
|
|
ansible.builtin.file:
|
|
path: "{{ zen_archive }}"
|
|
state: absent
|
|
become: false
|
|
|
|
- name: Query default MIME handlers
|
|
ansible.builtin.command: "xdg-mime query default {{ item }}"
|
|
become: false
|
|
loop:
|
|
- text/html
|
|
- application/xhtml+xml
|
|
- x-scheme-handler/http
|
|
- x-scheme-handler/https
|
|
register: current_browser_handlers
|
|
changed_when: false
|
|
failed_when: false
|
|
|
|
- name: Set Zen as the default browser
|
|
ansible.builtin.command: "xdg-mime default {{ zen_desktop_file }} {{ item.item }}"
|
|
become: false
|
|
loop: "{{ current_browser_handlers.results }}"
|
|
loop_control:
|
|
label: "{{ item.item }}"
|
|
when: item.stdout != zen_desktop_file
|