--- - name: Generate locals locale_gen: name: "{{ item }}" state: present loop: "{{ locales_gen }}" - name: Get current locale command: localectl status register: locale_status changed_when: false - name: Extract LANG from current locale configuration set_fact: locale_lang: "{{ locale_status.stdout | regex_search('LANG=([^\n]+)', '\\1') | first }}" when: not ansible_check_mode - name: Extract X11 keymap from current locale configuration set_fact: locale_x11_keymap: "{{ locale_status.stdout | regex_search('X11 Layout: ([^\n]+)', '\\1') | first }}" when: not ansible_check_mode - name: Set default locale command: localectl set-locale LANG={{ locales_default }} when: - not ansible_check_mode - locale_lang != locales_default - name: Set default X11 keymap command: localectl set-keymap {{ x11_keymap }} when: - not ansible_check_mode - locale_x11_keymap != x11_keymap