From 461d842645fdb82d47165c1de26fffe73d5aee17 Mon Sep 17 00:00:00 2001 From: Pig Monkey Date: Wed, 30 Dec 2020 18:54:56 -0800 Subject: [PATCH] add interception tools and caps2esc Existing users who use xmodmap to rebind caps lock as control in X will probably want to disable xmodmap first. --- group_vars/all | 6 ++++++ playbook.yml | 1 + roles/interception/handlers/main.yml | 5 +++++ roles/interception/tasks/main.yml | 20 +++++++++++++++++++ roles/interception/templates/caps2esc.yaml.j2 | 4 ++++ 5 files changed, 36 insertions(+) create mode 100644 roles/interception/handlers/main.yml create mode 100644 roles/interception/tasks/main.yml create mode 100644 roles/interception/templates/caps2esc.yaml.j2 diff --git a/group_vars/all b/group_vars/all index 5da47e2..44bb1c1 100644 --- a/group_vars/all +++ b/group_vars/all @@ -10,6 +10,12 @@ user: hostname: nous +interception: + caps2esc: + enabled: True + mode: 1 + delay: 20000 + dotfiles: url: git@github.com:pigmonkey/dotfiles.git destination: projects/dotfiles diff --git a/playbook.yml b/playbook.yml index 5503d4c..a268f54 100644 --- a/playbook.yml +++ b/playbook.yml @@ -11,6 +11,7 @@ - { role: ssh, tags: ['ssh'] } - { role: dotfiles, tags: ['dotfiles'] } - { role: ssd, tags: ['ssd'] } + - { role: interception, tags: ['interception'] } - { role: fonts, tags: ['fonts'] } - { role: x, tags: ['x'] } - { role: lightdm, tags: ['lightdm'], when: "display_manager == 'lightdm'" } diff --git a/roles/interception/handlers/main.yml b/roles/interception/handlers/main.yml new file mode 100644 index 0000000..51216e1 --- /dev/null +++ b/roles/interception/handlers/main.yml @@ -0,0 +1,5 @@ +--- +- name: restart udevmon + service: + name: udevmon.service + state: restarted diff --git a/roles/interception/tasks/main.yml b/roles/interception/tasks/main.yml new file mode 100644 index 0000000..a99103d --- /dev/null +++ b/roles/interception/tasks/main.yml @@ -0,0 +1,20 @@ +--- +- name: Install caps2esc + pacman: + name: interception-caps2esc + state: present + +- name: Push caps2esc udevmon config + template: + src: caps2esc.yaml.j2 + dest: /etc/interception/udevmon.d/caps2esc.yaml + notify: + - restart udevmon + when: interception.caps2esc.enabled is defined and interception.caps2esc.enabled == True + +- name: Enable and start udevmon + service: + name: udevmon.service + enabled: yes + state: started + when: interception.caps2esc.enabled is defined and interception.caps2esc.enabled == True diff --git a/roles/interception/templates/caps2esc.yaml.j2 b/roles/interception/templates/caps2esc.yaml.j2 new file mode 100644 index 0000000..2b0b080 --- /dev/null +++ b/roles/interception/templates/caps2esc.yaml.j2 @@ -0,0 +1,4 @@ +- JOB: "intercept -g $DEVNODE | caps2esc -m {{ interception.caps2esc.mode }} -t {{ interception.caps2esc.delay }} | uinput -d $DEVNODE" + DEVICE: + EVENTS: + EV_KEY: [KEY_CAPSLOCK, KEY_ESC]