First commit
This commit is contained in:
commit
ed405fe273
4 changed files with 104 additions and 0 deletions
40
README.md
Normal file
40
README.md
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
Swaylock Ansible Role
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
Install and configure [swaylock](https://github.com/swaywm/swaylock)
|
||||||
|
|
||||||
|
## Variables
|
||||||
|
|
||||||
|
You can define 3 variables for this role, all are optionnals.
|
||||||
|
|
||||||
|
`swaylock_flags` list options which do not need valus like `daemonize`:
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
swaylock_flags:
|
||||||
|
- ignore-empty-password
|
||||||
|
- show-failed-attempts
|
||||||
|
- daemonize
|
||||||
|
```
|
||||||
|
|
||||||
|
`swaylock_options` list key-value type options like `image` or all colors
|
||||||
|
related stuff:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
swaylock_options:
|
||||||
|
image: '~/documents/ressources/wallpapers/psychonauts.jpg'
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
You can check *Swaylock* manual pages (`man swaylock`) for all options.
|
||||||
|
|
||||||
|
The last variable, `swaylock_keybinding` list *Swaylock* related keybinding for
|
||||||
|
*Sway*. Check my [Sway Ansible role](https://git.epha.se/ephase/ansible-sway)
|
||||||
|
for managing this variable.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
swaylock_keybindings:
|
||||||
|
- mode: normal
|
||||||
|
bindings:
|
||||||
|
- bindsym: '$mod+alt+l'
|
||||||
|
action: 'exec swaylock'
|
||||||
|
```
|
39
tasks/main.yml
Normal file
39
tasks/main.yml
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
---
|
||||||
|
- name: Install Swaylock package
|
||||||
|
ansible.builtin.package:
|
||||||
|
name: swaylock
|
||||||
|
state: present
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Create Swaylock config dirs
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: '{{ ansible_user_dir ~ "/.config/swaylock" }}'
|
||||||
|
state: directory
|
||||||
|
mode: 0750
|
||||||
|
owner: '{{ ansible_user_uid }}'
|
||||||
|
group: '{{ ansible_user_gid }}'
|
||||||
|
|
||||||
|
- name: Render templates for Swaylock config file
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: config.j2
|
||||||
|
dest: '{{ ansible_user_dir}}/.config/swaylock/config'
|
||||||
|
owner: '{{ ansible_user_uid }}'
|
||||||
|
group: '{{ ansible_user_gid }}'
|
||||||
|
lstrip_blocks: yes
|
||||||
|
trim_blocks: yes
|
||||||
|
mode: 0640
|
||||||
|
|
||||||
|
- name: Render Swaylock keybinding for sway config file
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: '{{ item }}.config.j2'
|
||||||
|
dest: '{{ ansible_user_dir ~ "/.config/sway/conf.d/" ~ item ~ ".config" }}'
|
||||||
|
owner: '{{ ansible_user_uid }}'
|
||||||
|
group: '{{ ansible_user_gid }}'
|
||||||
|
lstrip_blocks: true
|
||||||
|
trim_blocks: true
|
||||||
|
mode: 0640
|
||||||
|
validate: >-
|
||||||
|
sh -c "cat {{ansible_user_dir}}/.config/sway/conf.d/* %s > /tmp/sway; if sway --config /tmp/sway --validate 2>&1 | grep -q sway/config.c; then >&2 echo \"Error validating sway configuration\"; rm /tmp/sway; exit 1; else rm /tmp/sway; exit 0; fi"
|
||||||
|
loop:
|
||||||
|
- 51-swaylock_keybindings
|
||||||
|
any_errors_fatal: true
|
13
templates/51-swaylock_keybindings.config.j2
Normal file
13
templates/51-swaylock_keybindings.config.j2
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{% for section in swaylock_keybindings %}
|
||||||
|
{% if section.mode != "normal" %}
|
||||||
|
mode {{ section.mode }} {
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% for bind in section.bindings %}
|
||||||
|
bindsym {{ bind.bindsym }} {{ bind.action}}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% if section.mode != "normal" %}
|
||||||
|
}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
12
templates/config.j2
Normal file
12
templates/config.j2
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
# {{ ansible_managed }}
|
||||||
|
{% if swaylock_flags is defined %}
|
||||||
|
{% for flag in swaylock_flags %}
|
||||||
|
{{ flag }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% if swaylock_options is defined %}
|
||||||
|
|
||||||
|
{% for key, value in swaylock_options.items() %}
|
||||||
|
{{ key }}={{ value }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
Loading…
Add table
Add a link
Reference in a new issue