diff --git a/roles/desk-copyq/README.md b/roles/desk-copyq/README.md index bb8f5bd1..cc7cfb9c 100644 --- a/roles/desk-copyq/README.md +++ b/roles/desk-copyq/README.md @@ -1,4 +1,4 @@ -# CopyQ Role for Ansible +# CopyQ ## Overview This role installs the CopyQ clipboard manager on Pacman-based systems (e.g. Arch Linux) and ensures it is started automatically for the current user. @@ -8,20 +8,6 @@ This role installs the CopyQ clipboard manager on Pacman-based systems (e.g. Arc - Pacman package manager (Arch Linux or derivative) - X11/Wayland desktop environment (for GUI) -## Role Variables -No additional role variables are required. - -## Dependencies -No external dependencies. - -## Example Playbook - -```yaml -- hosts: all - roles: - - desk-copyq -``` - ## Further Resources - [CopyQ official site](https://hluk.github.io/CopyQ/) diff --git a/roles/desk-copyq/config/main.yml b/roles/desk-copyq/config/main.yml new file mode 100644 index 00000000..90a6ac94 --- /dev/null +++ b/roles/desk-copyq/config/main.yml @@ -0,0 +1,2 @@ +# Set to true to install and start the CopyQ server as a systemd user service +server_enabled: true diff --git a/roles/desk-copyq/tasks/main.yml b/roles/desk-copyq/tasks/main.yml index 4b1d7372..6755d38e 100644 --- a/roles/desk-copyq/tasks/main.yml +++ b/roles/desk-copyq/tasks/main.yml @@ -1,7 +1,6 @@ - name: Install CopyQ clipboard manager community.general.pacman: - name: - - copyq + name: copyq state: present - name: Ensure autostart directory exists @@ -25,3 +24,7 @@ Comment=Advanced clipboard manager with searchable and editable history mode: '0644' become: false + +- name: Include CopyQ server systemd‑user service setup + import_tasks: server.yml + when: copyq_server_enabled | bool diff --git a/roles/desk-copyq/tasks/server.yml b/roles/desk-copyq/tasks/server.yml new file mode 100644 index 00000000..0de99188 --- /dev/null +++ b/roles/desk-copyq/tasks/server.yml @@ -0,0 +1,36 @@ +- name: Ensure systemd user unit directory exists + file: + path: "{{ ansible_env.HOME }}/.config/systemd/user" + state: directory + mode: '0755' + become: false + +- name: Install CopyQ user service unit + copy: + dest: "{{ ansible_env.HOME }}/.config/systemd/user/copyq.service" + content: | + [Unit] + Description=CopyQ Clipboard Manager Server + + [Service] + ExecStart=/usr/bin/copyq --start-server + Restart=on-failure + + [Install] + WantedBy=default.target + mode: '0644' + become: false + +- name: Reload systemd user daemon + systemd: + user: true + daemon_reload: yes + become: false + +- name: Enable and start CopyQ user service + systemd: + name: copyq.service + user: true + enabled: yes + state: started + become: false diff --git a/roles/desk-copyq/vars/main.yml b/roles/desk-copyq/vars/main.yml index 689cdce4..46798f2d 100644 --- a/roles/desk-copyq/vars/main.yml +++ b/roles/desk-copyq/vars/main.yml @@ -1 +1,2 @@ -application_id: desk-copyq +application_id: desk-copyq +copyq_server_enabled: "{{ applications | get_app_conf(application_id, 'server_enabled') }}" \ No newline at end of file