From 85e22281b17153c1c229de04980c5a133b627f89 Mon Sep 17 00:00:00 2001 From: Menno van Leeuwen Date: Tue, 18 Mar 2025 13:10:26 +0100 Subject: [PATCH] feat: add 1Password and Firefox installation tasks, remove MegaSync tasks --- config/ansible/tasks/global/global.yml | 2 + ...zen-browser.yml => 1password-browsers.yml} | 4 +- .../tasks/workstations/firefox-apt.yml | 60 +++++++++++++++++ .../ansible/tasks/workstations/megasync.yml | 65 ------------------- config/ansible/tasks/workstations/snaps.yml | 6 +- .../tasks/workstations/workstation.yml | 11 ++-- config/home-manager/flake.lock | 6 +- config/home-manager/workstation/dconf.nix | 8 +-- .../home-manager/workstation/default-apps.nix | 8 +-- 9 files changed, 84 insertions(+), 86 deletions(-) rename config/ansible/tasks/workstations/{1password-zen-browser.yml => 1password-browsers.yml} (93%) create mode 100644 config/ansible/tasks/workstations/firefox-apt.yml delete mode 100644 config/ansible/tasks/workstations/megasync.yml diff --git a/config/ansible/tasks/global/global.yml b/config/ansible/tasks/global/global.yml index 19004ce..8978569 100644 --- a/config/ansible/tasks/global/global.yml +++ b/config/ansible/tasks/global/global.yml @@ -42,6 +42,8 @@ - python3-venv - pylint - black + # Package manager wrapper + - nala state: present become: true diff --git a/config/ansible/tasks/workstations/1password-zen-browser.yml b/config/ansible/tasks/workstations/1password-browsers.yml similarity index 93% rename from config/ansible/tasks/workstations/1password-zen-browser.yml rename to config/ansible/tasks/workstations/1password-browsers.yml index 405bfac..d5d3feb 100644 --- a/config/ansible/tasks/workstations/1password-zen-browser.yml +++ b/config/ansible/tasks/workstations/1password-browsers.yml @@ -18,13 +18,15 @@ mode: "0755" become: true -- name: Add Zen browser to 1Password custom allowed browsers +- name: Add Browsers to 1Password custom allowed browsers ansible.builtin.copy: content: | ZenBrowser zen-browser app.zen_browser.zen zen + Firefox + firefox dest: /etc/1password/custom_allowed_browsers owner: root group: root diff --git a/config/ansible/tasks/workstations/firefox-apt.yml b/config/ansible/tasks/workstations/firefox-apt.yml new file mode 100644 index 0000000..d50fad4 --- /dev/null +++ b/config/ansible/tasks/workstations/firefox-apt.yml @@ -0,0 +1,60 @@ +--- +- name: Install Firefox via APT (Not Snap) + block: + - name: Remove Firefox Snap if installed + community.general.snap: + name: firefox + state: absent + become: true + + - name: Create APT keyring directory if it doesn't exist + ansible.builtin.file: + path: /etc/apt/keyrings + state: directory + mode: '0755' + become: true + + - name: Import Mozilla APT repo signing key + ansible.builtin.get_url: + url: https://packages.mozilla.org/apt/repo-signing-key.gpg + dest: /etc/apt/keyrings/packages.mozilla.org.asc + mode: '0644' + become: true + + - name: Add Mozilla APT repository + ansible.builtin.lineinfile: + path: /etc/apt/sources.list.d/mozilla.list + line: "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" + create: true + become: true + + - name: Set Firefox package priority + ansible.builtin.copy: + dest: /etc/apt/preferences.d/mozilla + content: | + Package: * + Pin: origin packages.mozilla.org + Pin-Priority: 1000 + + Package: firefox* + Pin: release o=Ubuntu + Pin-Priority: -1 + mode: '0644' + become: true + + - name: Update apt cache + ansible.builtin.apt: + update_cache: true + become: true + + - name: Remove Ubuntu's Firefox transition package + ansible.builtin.apt: + name: firefox + state: absent + become: true + + - name: Install Firefox from Mozilla's repository + ansible.builtin.apt: + name: firefox + state: present + become: true diff --git a/config/ansible/tasks/workstations/megasync.yml b/config/ansible/tasks/workstations/megasync.yml deleted file mode 100644 index a6170cd..0000000 --- a/config/ansible/tasks/workstations/megasync.yml +++ /dev/null @@ -1,65 +0,0 @@ ---- -- name: Check if MegaSync is already installed - ansible.builtin.command: - cmd: "megasync --version" - register: megasync_check - changed_when: false - failed_when: false - check_mode: false - -- name: Create temporary directory for downloads - ansible.builtin.tempfile: - state: directory - suffix: megasync - register: temp_download_dir - changed_when: false - when: megasync_check.rc != 0 - -- name: Download MegaSync DEB package - ansible.builtin.get_url: - url: https://mega.nz/linux/repo/xUbuntu_24.10/amd64/megasync-xUbuntu_24.10_amd64.deb - dest: "{{ temp_download_dir.path }}/megasync.deb" - mode: "0644" - when: megasync_check.rc != 0 - -- name: Download MegaSync Nautilus DEB Package - ansible.builtin.get_url: - url: https://mega.nz/linux/repo/xUbuntu_24.04/amd64/nautilus-megasync-xUbuntu_24.04_amd64.deb - dest: "{{ temp_download_dir.path }}/megasync-nautilus-extras.deb" - mode: "0644" - when: megasync_check.rc != 0 - -- name: Downlod MegaSync Nemo DEB Package - ansible.builtin.get_url: - url: https://mega.nz/linux/repo/xUbuntu_24.04/amd64/nemo-megasync-xUbuntu_24.04_amd64.deb - dest: "{{ temp_download_dir.path }}/megasync-nemo-extras.deb" - mode: "0644" - when: megasync_check.rc != 0 - -- name: Install MegaSync package - ansible.builtin.apt: - deb: "{{ temp_download_dir.path }}/megasync.deb" - state: present - become: true - when: megasync_check.rc != 0 - -- name: Install MegaSync Nautilus package - ansible.builtin.apt: - deb: "{{ temp_download_dir.path }}/mega-nautilus-extras.deb" - state: present - become: true - when: megasync_check.rc != 0 - -- name: Install MegaSync Nemo package - ansible.builtin.apt: - deb: "{{ temp_download_dir.path }}/mega-nemo-extras.deb" - state: present - become: true - when: megasync_check.rc != 0 - -- name: Clean up temporary files - ansible.builtin.file: - path: "{{ temp_download_dir.path }}" - state: absent - changed_when: false - when: megasync_check.rc != 0 and temp_download_dir.path is defined diff --git a/config/ansible/tasks/workstations/snaps.yml b/config/ansible/tasks/workstations/snaps.yml index 25ae185..849d8c5 100644 --- a/config/ansible/tasks/workstations/snaps.yml +++ b/config/ansible/tasks/workstations/snaps.yml @@ -40,11 +40,9 @@ - name: Define desired Snaps ansible.builtin.set_fact: desired_snaps: - - name: firefox + - name: telegram-desktop classic: false - - name: bitwarden - classic: false - - name: bw + - name: whatsapp-desktop-client classic: false - name: Install desired Snap packages diff --git a/config/ansible/tasks/workstations/workstation.yml b/config/ansible/tasks/workstations/workstation.yml index 5040652..f31649c 100644 --- a/config/ansible/tasks/workstations/workstation.yml +++ b/config/ansible/tasks/workstations/workstation.yml @@ -7,6 +7,10 @@ - name: Include GNOME Extensions tasks ansible.builtin.import_tasks: tasks/workstations/gnome-extensions.yml + - name: Include Firefox APT installation tasks + ansible.builtin.import_tasks: tasks/workstations/firefox-apt.yml + when: ansible_pkg_mgr == 'apt' + - name: Include flatpaks tasks ansible.builtin.import_tasks: tasks/workstations/flatpaks.yml @@ -23,8 +27,8 @@ browser_name: "zen" browser_executable: "zen" - - name: Include 1Password Zen Browser tasks - ansible.builtin.import_tasks: tasks/workstations/1password-zen-browser.yml + - name: Include 1Password Browsers tasks + ansible.builtin.import_tasks: tasks/workstations/1password-browsers.yml - name: Include Firefox PWA tasks ansible.builtin.import_tasks: tasks/workstations/firefoxpwa.yml @@ -32,9 +36,6 @@ - name: Include Ulauncher tasks ansible.builtin.import_tasks: tasks/workstations/ulauncher.yml - - name: Include MegaSync tasks - ansible.builtin.import_tasks: tasks/workstations/megasync.yml - - name: Ensure workstation common packages are installed ansible.builtin.package: name: diff --git a/config/home-manager/flake.lock b/config/home-manager/flake.lock index a1337ec..5e83db4 100644 --- a/config/home-manager/flake.lock +++ b/config/home-manager/flake.lock @@ -7,11 +7,11 @@ ] }, "locked": { - "lastModified": 1739757849, - "narHash": "sha256-Gs076ot1YuAAsYVcyidLKUMIc4ooOaRGO0PqTY7sBzA=", + "lastModified": 1742234739, + "narHash": "sha256-zFL6zsf/5OztR1NSNQF33dvS1fL/BzVUjabZq4qrtY4=", "owner": "nix-community", "repo": "home-manager", - "rev": "9d3d080aec2a35e05a15cedd281c2384767c2cfe", + "rev": "f6af7280a3390e65c2ad8fd059cdc303426cbd59", "type": "github" }, "original": { diff --git a/config/home-manager/workstation/dconf.nix b/config/home-manager/workstation/dconf.nix index 3ae481c..32f5475 100644 --- a/config/home-manager/workstation/dconf.nix +++ b/config/home-manager/workstation/dconf.nix @@ -56,13 +56,13 @@ # add more by listing them with `dconf read /org/gnome/shell/favorite-apps | sed "s/,//g; s/'/\"/g"` then copy pasting the output here "org/gnome/shell" = { favorite-apps = [ - "zen.desktop" + "firefox.desktop" "org.gnome.Nautilus.desktop" "com.spotify.Client.desktop" + "FFPWA-01JPMJ4K0S7JZDT2469CKNY49H.desktop" + "telegram-desktop_telegram-desktop.desktop" + "whatsapp-desktop-client_whatsapp-desktop-client.desktop" "vesktop.desktop" - "FFPWA-01JN0Y8Z6KR644ZG4CV0QAYPRF.desktop" - "FFPWA-01JN0YCBNR29VRW8GN5YBZSQ7W.desktop" - "FFPWA-01JN13AEFTM76WVC6TSBYC5AXN.desktop" "code.desktop" "org.gnome.Ptyxis.desktop" ]; diff --git a/config/home-manager/workstation/default-apps.nix b/config/home-manager/workstation/default-apps.nix index 3b4cb74..2866a7e 100644 --- a/config/home-manager/workstation/default-apps.nix +++ b/config/home-manager/workstation/default-apps.nix @@ -5,10 +5,10 @@ enable = true; defaultApplications = { # default browser - "application/xhtml+xml" = [ "zen.desktop" ]; - "text/html" = [ "zen.desktop" ]; - "x-scheme-handler/http" = [ "zen.desktop" ]; - "x-scheme-handler/https" = [ "zen.desktop" ]; + "application/xhtml+xml" = [ "firefox.desktop" ]; + "text/html" = [ "firefox.desktop" ]; + "x-scheme-handler/http" = [ "firefox.desktop" ]; + "x-scheme-handler/https" = [ "firefox.desktop" ]; # Geary "x-scheme-handler/mailto" = [ "org.gnome.Geary.desktop" ];