Files
fedora-provisioning-ansible/tasks/zen.yml
T

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