--- - name: Ensure directories for desktop applications are present ansible.builtin.file: state: directory path: "{{ ansible_user_dir }}/{{ item }}" mode: u=rwx,g=rx,o=rx with_items: - .config/Xresources - .config/rofi - .local/bin - .local/share/fonts - .config/qutebrowser - .config/tridactyl/themes # Download fonts - name: Download Nerd fonts ansible.builtin.get_url: url: https://raw.githubusercontent.com/ryanoasis/nerd-fonts/704336735f576781b2a57b12a0c723e3316cbdec/patched-fonts/DejaVuSansMono/{{ item.folder }}/complete/{{ item.filename | urlencode }} dest: "{{ ansible_user_dir }}/.local/share/fonts/{{ item.filename }}" mode: u=rw,g=r,o=r loop: - filename: DejaVu Sans Mono Bold Nerd Font Complete Mono.ttf folder: Bold - filename: DejaVu Sans Mono Bold Oblique Nerd Font Complete Mono.ttf folder: Bold-Italic - filename: DejaVu Sans Mono Nerd Font Complete Mono.ttf folder: Regular - filename: DejaVu Sans Mono Oblique Nerd Font Complete Mono.ttf folder: Italic - name: Download icon fonts ansible.builtin.get_url: url: https://raw.githubusercontent.com/FortAwesome/Font-Awesome/a8386aae19e200ddb0f6845b5feeee5eb7013687/fonts/fontawesome-webfont.ttf dest: "{{ ansible_user_dir }}/.local/share/fonts/fontawesome-webfont.ttf" mode: u=rw,g=r,o=r # TODO Either replace with ForkAwesome or Nerd Fonts - name: Install python dependencies for lemonbar ansible.builtin.pip: requirements: "{{ ansible_user_dir }}/.dotfiles/config/lemonbar/requirements.txt" extra_args: --break-system-packages # It's fine, it's local anyways # Build a single color scheme and template and assign it to a variable - base16_builder: scheme: "{{ base16_scheme }}" template: # This requires https://github.com/mnussbaum/base16-builder-ansible/pull/6 - i3 - xresources - rofi - alacritty - shell - fzf - vim - qutebrowser - tridactyl - dunst register: base16_schemes tags: - color - i3 - name: Configure Alacritty ansible.builtin.template: src: "{{ ansible_env.HOME }}/.config/alacritty/alacritty.yml.j2" dest: "{{ ansible_env.HOME }}/.config/alacritty/alacritty.yml" mode: u=rw,g=r,o=r # Alacritty has live config reload, so no command to execute # However, it doesn't work with yaml includes, hence the template tags: - color - name: Set base16 theme for Xresources ansible.builtin.copy: content: "{{ base16_schemes['schemes'][base16_scheme]['xresources']['xresources']['base16-' + base16_scheme + '-256.Xresources'] }}" dest: "{{ ansible_env.HOME }}/.config/Xresources/theme" mode: u=rw,g=r,o=r notify: - xrdb-reload tags: - color when: display_server == 'x11' - name: Download base16 theme for qutebrowser ansible.builtin.copy: content: "{{ base16_schemes['schemes'][base16_scheme]['qutebrowser']['themes/minimal']['base16-' + base16_scheme + '.config.py'] }}" dest: "{{ ansible_env.HOME }}/.config/qutebrowser/theme.py" mode: u=rw,g=r,o=r notify: - qutebrowser-reload tags: - color - name: Download base16 theme for Tridactyl ansible.builtin.copy: content: "{{ base16_schemes['schemes'][base16_scheme]['tridactyl']['base16-' + base16_scheme + '.config.py'] }}" # url: "https://raw.githubusercontent.com/bezmi/base16-tridactyl/master/base16-{{ base16_scheme }}.css" dest: "{{ ansible_env.HOME }}/.config/tridactyl/themes/theme.css" mode: u=rw,g=r,o=r when: false # Not currently used tags: - color - name: Configure i3 ansible.builtin.template: src: "{{ ansible_env.HOME }}/.config/i3/config.j2" dest: "{{ ansible_env.HOME }}/.config/i3/config" mode: u=rw,g=r,o=r notify: - i3-reload tags: - color - i3 when: display_server == 'x11' - name: Set base16 theme for rofi ansible.builtin.copy: content: "{{ base16_schemes['schemes'][base16_scheme]['rofi']['themes']['base16-' + base16_scheme + '.' + item] }}" dest: "{{ ansible_env.HOME }}/.config/rofi/theme.{{ item }}" mode: u=rw,g=r,o=r tags: - color loop: - config - rasi - name: Configure Dunst ansible.builtin.template: src: "{{ ansible_env.HOME }}/.config/dunst/dunstrc.j2" dest: "{{ ansible_env.HOME }}/.config/dunst/dunstrc" mode: u=rw,g=r,o=r tags: - color when: display_server == 'x11' - name: Download base16 theme for fzf ansible.builtin.copy: content: "{{ base16_schemes['schemes'][base16_scheme]['fzf']['bash']['base16-' + base16_scheme + '.config'] }}" dest: "{{ ansible_env.HOME }}/.local/bin/colorSchemeApplyFzf" mode: u=rw,g=r,o=r notify: - fzf-reload tags: - color - name: Download base16 theme for shell ansible.builtin.copy: content: "{{ base16_schemes['schemes'][base16_scheme]['shell']['script']['base16-' + base16_scheme + '.sh'] }}" dest: "{{ ansible_env.HOME }}/.local/bin/colorSchemeApply" mode: u=rwx,g=rx,o=rx notify: - shell-reload when: false # Not currently used tags: - color - name: Set used base16 theme for vim ansible.builtin.copy: path: "{{ ansible_env.HOME }}/.config/vim/colorscheme.vim" mode: u=rw,g=r,o=r content: colorscheme base16-{{ base16_scheme }} when: false # Not currently used tags: - color - name: Enable user services ansible.builtin.systemd: name: "{{ item }}" state: started enabled: true scope: user loop: - pulseaudio - mpd when: has_systemd # TODO bar (might change bar in the future, so...) # TODO highlight (there IS a template but the colors look different from vim and mostly the same from when there's no config) # TODO https://github.com/makuto/auto-base16-theme ? :P