Public part of my dotfiles.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

262 lines
5.9 KiB

# TODO For other distributions
# Package are installed with --asdeps because they are needed
# Etckeeper
- name: Check if etckeeper is initialized
stat:
path: /etc/.git
register: etckeeper
become: yes
- name: Initialize etckeeper
command: "etckeeper init"
become: yes
when: not etckeeper.stat.exists
changed_when: yes
- name: Configure git user.name for etckeeper
git_config:
scope: local
repo: /etc
name: "{{ item.name }}"
value: "{{ item.value }}"
loop:
- name: "user.name"
value: "etckeeper on {{ inventory_hostname_short }}"
- name: "user.email"
value: "etckeeper@{{ inventory_hostname }}"
become: yes
# Manjaro configuration
- name: Remove Manjaro's pamac
pacman:
name: pamac
state: absent
become: yes
when: arch_based and False # I'm trying to remember why I usually delete this thing
# Xorg configuration
- name: Check if there is nvidia-xrun is installed
stat:
path: /etc/X11/nvidia-xorg.conf
register: nvidia_xrun
when: display_server == 'x11'
- name: Add nvidia-xrun xorg config directory
set_fact:
xorg_common_config_dirs: "{{ xorg_default_config_dirs + xorg_nvidia_config_dirs }}"
vars:
xorg_default_config_dirs:
- /etc/X11/xorg.conf.d
xorg_nvidia_config_dirs: "{{ ['/etc/X11/nvidia-xorg.conf.d'] if nvidia_xrun.stat.exists else [] }}"
when: display_server == 'x11'
- name: Configure Xorg keyboard layout
copy:
src: xorg/keyboard.conf
dest: "{{ item }}/00-keyboard.conf"
become: yes
when: display_server == 'x11'
notify: etc changed
loop: "{{ xorg_common_config_dirs }}"
- name: Use Alt keys for numpad
patch:
src: us_qwert_alt_numpad.patch
dest: /usr/share/X11/xkb/symbols/us_qwerty-fr
become: yes
when: display_server == 'x11'
# This is not very nice but it's updated so infrequently that it's not worth
# the trouble
- name: Check if there is Intel backlight
stat:
path: /sys/class/backlight/intel_backlight
register: intel_backlight
when: display_server == 'x11'
- name: Install Intel video drivers (Arch based)
pacman:
name: xf86-video-intel
# state: "{{ intel_backlight.stat.exists }}"
state: present
become: yes
when: display_server == 'x11' and intel_backlight.stat.exists and arch_based
# TODO With software role? Would permit other distributions
- name: Configure Xorg Intel backlight
copy:
src: xorg/intel_backlight.conf
dest: "{{ item }}/20-intel_backlight.conf"
become: yes
when: display_server == 'x11' and intel_backlight.stat.exists
notify: etc changed
loop: "{{ xorg_common_config_dirs }}"
- name: Configure Xorg touchpad behaviour
copy:
src: xorg/touchpad.conf
dest: "{{ item }}/30-touchpad.conf"
become: yes
when: display_server == 'x11'
notify: etc changed
loop: "{{ xorg_common_config_dirs }}"
- name: Configure Xorg joystick behaviour
copy:
src: xorg/joystick.conf
dest: "{{ item }}/50-joystick.conf"
become: yes
when: display_server == 'x11'
notify: etc changed
loop: "{{ xorg_common_config_dirs }}"
# Numlock on boot
- name: set numlock on boot
copy:
src: getty.service
dest: /etc/systemd/system/getty@.service.d/override.conf
become: yes
notify:
- etc changed
- systemd changed
when: auto_numlock
- name: Unset numlock on boot
file:
path: /etc/systemd/system/getty@.service.d/override.conf
state: absent
become: yes
notify:
- etc changed
- systemd changed
when: not auto_numlock
# TLP configuration
- name: Start/enable TLP
systemd:
name: tlp
state: started
enabled: yes
become: yes
notify: etc changed
# Network configuration
- name: Start/enable dhcpcd
systemd:
name: dhcpcd
state: started
enabled: yes
become: yes
notify: etc changed
- name: Configure wpa_supplicant
template:
src: wpa_supplicant.conf.j2
dest: /etc/wpa_supplicant/wpa_supplicant.conf
notify:
- etc changed
- wpa_supplicant changed
become: yes
tags:
- wificonf
- name: Prepare directory for wpa_supplicant service override
file:
path: /etc/systemd/system/wpa_supplicant@.service.d
state: directory
mode: "u=rwx,g=rx,o=rx"
become: yes
- name: Make wpa_supplicant use a common configuration file
copy:
src: wpa_supplicant.service
dest: /etc/systemd/system/wpa_supplicant@.service.d/override.conf
become: yes
notify:
- etc changed
- systemd changed
- wifi setup changed
- name: Disable wpa_supplicant for networkmanager
systemd:
name: wpa_supplicant
enabled: no
become: yes
notify:
- etc changed
- wifi setup changed
- name: Start/enable wpa_supplicant for interface
systemd:
name: "wpa_supplicant@{{ item }}"
enabled: yes
become: yes
notify:
- etc changed
- wifi setup changed
loop: "{{ ansible_interfaces }}"
when: "item.startswith('wl')"
# Could probably use something better like
# listing /sys/class/ieee80211/*/device/net/
- name: Uninstall networkmanager
pacman:
name: networkmanager
state: absent
extra_args: "--cascade --recursive"
when: arch_based
become: yes
notify:
- wifi setup changed
# Time synchronisation
- name: Mask systemd-timesyncd
systemd:
name: systemd-timesyncd
state: stopped
enabled: no
masked: yes
become: yes
notify: etc changed
when: arch_based
- name: Configure chrony
copy:
src: chrony.conf
dest: /etc/chrony.conf
become: yes
notify:
- etc changed
- chrony reconfigured
# TODO More configuration, RTC configuration
- name: Enable chronyd
systemd:
name: chronyd
enabled: yes
become: yes
notify:
- etc changed
- chrony reconfigured
- name: Configure dhcpcd chrony hook
copy:
src: dhcpcd.exit-hook
dest: /etc/dhcpcd.exit-hook
become: yes
notify: etc changed
# TODO Hibernation, if that's relevant
# $ sudo blkid | grep 'TYPE="swap"'
# $ sudoedit /etc/default/grub
# Add resume=UUID=<UUID-of-swap-partition> to GRUB_CMDLINE_LINUX_DEFAULT
# $ sudo grub-mkconfig -o /boot/grub/grub.cfg