feat(desktop): systemd user scope service and timers setup
This commit is contained in:
parent
ca6d364df7
commit
85f1f01fb7
2 changed files with 87 additions and 0 deletions
51
ansible/roles/systemd_user/tasks/main.yaml
Normal file
51
ansible/roles/systemd_user/tasks/main.yaml
Normal file
|
|
@ -0,0 +1,51 @@
|
||||||
|
# Main task of the role to setup systemd user scope services and timer
|
||||||
|
# Expected var "user_systemd_services" and "template_dir"
|
||||||
|
- name: Setup systemd user services folder
|
||||||
|
file:
|
||||||
|
path: "{{ home }}/.config/systemd/user"
|
||||||
|
state: directory
|
||||||
|
recurse: true
|
||||||
|
|
||||||
|
- name: Setup user units file
|
||||||
|
template:
|
||||||
|
src: "{{ template_dir }}/{{ unit.name }}.service"
|
||||||
|
dest: "{{ home }}/.config/systemd/user/{{ unit.name }}.service"
|
||||||
|
loop_control:
|
||||||
|
loop_var: unit
|
||||||
|
with_items: "{{ user_systemd_services }}"
|
||||||
|
|
||||||
|
- name: Setup user timers
|
||||||
|
with_items: "{{ systemd_services.user }}"
|
||||||
|
loop_control:
|
||||||
|
loop_var: unit
|
||||||
|
when: "unit.timer is defined and unit.timer"
|
||||||
|
template:
|
||||||
|
src: "{{ template_dir }}/{{ unit.name }}.timer"
|
||||||
|
dest: "{{ home }}/.config/systemd/user/{{ unit.name }}.timer"
|
||||||
|
|
||||||
|
- name: Enable user services
|
||||||
|
with_items: "{{ user_systemd_services }}"
|
||||||
|
loop_control:
|
||||||
|
loop_var: unit
|
||||||
|
systemd_service:
|
||||||
|
daemon_reload: true
|
||||||
|
scope: user
|
||||||
|
name: "{{ unit.name }}"
|
||||||
|
state: started
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
- name: Enable user timers
|
||||||
|
with_items: "{{ systemd_services.user }}"
|
||||||
|
loop_control:
|
||||||
|
loop_var: unit
|
||||||
|
when: "unit.timer is defined and unit.timer"
|
||||||
|
systemd_service:
|
||||||
|
scope: user
|
||||||
|
name: "{{ unit.name }}.timer"
|
||||||
|
state: started
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
- name: Reload user daemon
|
||||||
|
systemd_service:
|
||||||
|
scope: user
|
||||||
|
daemon_reload: true
|
||||||
36
ansible/setup_desktop_workstation.yaml
Normal file
36
ansible/setup_desktop_workstation.yaml
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
# Desktop workstation non-root setup playbook
|
||||||
|
# This playbook contains user setup for the graphical Sway desktop environment
|
||||||
|
# that doesn't require root
|
||||||
|
- hosts: workstation
|
||||||
|
gather_facts: True
|
||||||
|
vars:
|
||||||
|
home: /home/{{ user }}
|
||||||
|
tasks:
|
||||||
|
- name: "Setup systemd user services and timers"
|
||||||
|
include_role:
|
||||||
|
name: systemd_user
|
||||||
|
vars:
|
||||||
|
user_systemd_services:
|
||||||
|
- name: "cliphist"
|
||||||
|
enabled: true
|
||||||
|
- name: "kanshi"
|
||||||
|
enabled: true
|
||||||
|
- name: "gammastep"
|
||||||
|
enabled: true
|
||||||
|
- name: "swaybg"
|
||||||
|
enabled: true
|
||||||
|
# - name: "hourly_remainder"
|
||||||
|
# enabled: true
|
||||||
|
# timer: true
|
||||||
|
template_dir: "systemd/user"
|
||||||
|
|
||||||
|
- name: Read glue scripts config
|
||||||
|
ansible.builtin.slurp:
|
||||||
|
src: "glue_scripts/config.yaml"
|
||||||
|
register: glue_scripts_config_yaml
|
||||||
|
- name: Install glue scripts
|
||||||
|
ansible.builtin.include_tasks:
|
||||||
|
file: install_glue_scripts.yaml
|
||||||
|
vars:
|
||||||
|
config: "{{ (glue_scripts_config_yaml.content | b64decode | from_yaml) }}"
|
||||||
|
glue_scripts_config_yaml: "{{ lookup('file', 'desktop_glue_scripts/config.yaml') }}"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue