--- # 20260716 - Hyperling # Add the setup for a simple i3 configuration. It´s pretty easy to use and # functions super well. Very easy to get going and does not need a whole lot of # work to change things around. Good alternative to DWM and so lightweight that # it doesn´t even matter if both are installed!! - name: Workstation | Linux | Software | i3 | Facts | General [1/2] set_fact: i3_config: "settings/i3.config" i3_config_dir: "{{ user_user.home }}/.config/i3" i3_package: i3 i3_light: light i3_files: thunar i3_term01: alacritty i3_term02: kitty i3_theming: lxappearance i3_theme01: greybird-gtk-theme i3_theme02: arc-theme i3_theme03: numix-gtk-theme - name: Workstation | Linux | Software | i3 | Facts | General [1/2] set_fact: i3_config_file: "{{ i3_config_dir }}/config" #- name: Workstation | Linux | Software | i3 | Facts | TBD # set_fact: # i3_package: i3-wm # when: ansible_distribution in ("TBD") - name: Workstation | Linux | Software | i3 | Install package: name: - "{{ i3_package }}" - "{{ lightdm }}" - "{{ i3_light }}" - "{{ i3_files }}" - "{{ i3_term01 }}" - "{{ i3_term02 }}" - "{{ i3_theming }}" - "{{ i3_theme01 }}" - "{{ i3_theme02 }}" - "{{ i3_theme03 }}" state: present update_cache: yes - name: Workstation | Linux | Software | i3 | Config | Create Dir ansible.builtin.file: path: "{{ i3_config_dir }}" state: directory mode: '0755' owner: "{{ user }}" group: "{{ user }}" - name: Workstation | Linux | Software | i3 | Config | Copy File copy: src: "{{ i3_config }}" dest: "{{ i3_config_file }}" owner: "{{ user }}" group: "{{ user }}" mode: '0664' # TBD: Automate getting the brightness keys to work. # # User is already part of the video group. Just need to configure udev rules. # # Get the folder name from here: `ls /sys/class/backlight/` # # That is your for the following lines, which go here: /etc/udev/rules.d/backlight.rules # ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="", RUN+="/bin/chgrp video /sys/class/backlight/%k/brightness" # ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="", RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness" # # So, for example: # [18:12:20 root@device ~]# cat /etc/udev/rules.d/backlight.rules # ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="intel_backlight", RUN+="/bin/chgrp video /sys/class/backlight/%k/brightness" # ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="intel_backlight", RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness" # [18:12:21 root@device ~]# # # It then required a reboot. Doing the commands below was not enough. # # # sudo udevadm control --reload-rules # # sudo udevadm trigger # - name: Workstation | Linux | Software | i3 | Light | Check Backlights ansible.builtin.find: paths: /sys/class/backlight file_type: any # Options: file, directory, any patterns: "*" # Wildcard patterns (e.g., "*.log") recurse: no # Set to 'yes' for subdirectories register: i3_light_device_check #- name: Display var _ DELETEME # ansible.builtin.debug: # msg: "{{ i3_light_device_check }}" - name: Workstation | Linux | Software | i3 | Light | Pull Backlight Name set_fact: i3_light_device_name: "{{ i3_light_device_check.files[0].path | basename }}" #- name: Display var - DELETEME # ansible.builtin.debug: # msg: "{{ i3_light_device_name }}" - name: Workstation | Linux | Software | i3 | Light | udev Rules | Create ansible.builtin.copy: dest: /etc/udev/rules.d/backlight.rules content: | ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="{{ i3_light_device_name }}", RUN+="/bin/chgrp video /sys/class/backlight/%k/brightness" ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="{{ i3_light_device_name }}", RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness" owner: root group: root mode: '0644' - name: Workstation | Linux | Software | i3 | Light | udev Rules | Reload command: "{{ item }}" loop: - udevadm control --reload-rules - udevadm trigger #- name: FAIL - DELETEME # meta: end_play