Compare commits
No commits in common. "7cfd15a08f883c1c50e716443163fb1dd7eebefc" and "7f4f846408b0e0debee49e18789b5cef9a453e30" have entirely different histories.
7cfd15a08f
...
7f4f846408
@ -5,7 +5,7 @@ ansible_header: |
|
|||||||
+++++++++++++++++++++++++++++++++++++++++++++++++++
|
+++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
Ansible managed, don't modify the file locally.
|
Ansible managed, don't modify the file locally.
|
||||||
See https://git.yneran.fr/ynerant/templier-ansible.
|
See https://gitlab.crans.org/ynerant/templier-ansible.
|
||||||
{% if template_fullpath is defined %}{% set _, rpath = template_fullpath.split('roles/', 1) %}Commit: {% if dirty %}({{dirty}}) {% endif %}{{ lookup('pipe', 'git log -n 1 --pretty=format:%H -- ' + template_fullpath | quote) }}
|
{% if template_fullpath is defined %}{% set _, rpath = template_fullpath.split('roles/', 1) %}Commit: {% if dirty %}({{dirty}}) {% endif %}{{ lookup('pipe', 'git log -n 1 --pretty=format:%H -- ' + template_fullpath | quote) }}
|
||||||
{% if dirty %}Run by: {{ ansible_env.SUDO_USER }}
|
{% if dirty %}Run by: {{ ansible_env.SUDO_USER }}
|
||||||
{% else %}Author: {{ lookup('pipe', 'git log -n 1 --pretty=format:%an -- ' + template_fullpath | quote) }}
|
{% else %}Author: {{ lookup('pipe', 'git log -n 1 --pretty=format:%an -- ' + template_fullpath | quote) }}
|
||||||
@ -23,6 +23,18 @@ glob_ldap:
|
|||||||
base: 'dc=ynerant,dc=fr'
|
base: 'dc=ynerant,dc=fr'
|
||||||
|
|
||||||
|
|
||||||
|
pass:
|
||||||
|
upstream: 'ssh://git@git.ynerant.fr:2222/ynerant/pass.git'
|
||||||
|
dest: '.password-store/'
|
||||||
|
|
||||||
|
cliutils:
|
||||||
|
bash:
|
||||||
|
bogus_dirs: []
|
||||||
|
git:
|
||||||
|
email: ynerant@crans.org
|
||||||
|
name: Yohann D'ANELLO
|
||||||
|
signingkey: 3A75C55819C8CF85
|
||||||
|
|
||||||
bind:
|
bind:
|
||||||
domains:
|
domains:
|
||||||
- name: ynerant.fr
|
- name: ynerant.fr
|
||||||
|
4
group_vars/laptop.yml
Normal file
4
group_vars/laptop.yml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
user:
|
||||||
|
name: ynerant
|
||||||
|
root: yes
|
4
host_vars/an.adm.ynerant.fr.yml
Normal file
4
host_vars/an.adm.ynerant.fr.yml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
interfaces:
|
||||||
|
adm: ens18
|
||||||
|
srv_nat: ens19
|
4
host_vars/cemantix.adm.ynerant.fr.yml
Normal file
4
host_vars/cemantix.adm.ynerant.fr.yml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
interfaces:
|
||||||
|
adm: ens18
|
||||||
|
srv_nat: ens19
|
4
host_vars/dgac.adm.ynerant.fr.yml
Normal file
4
host_vars/dgac.adm.ynerant.fr.yml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
interfaces:
|
||||||
|
adm: ens18
|
||||||
|
srv_nat: ens19
|
4
host_vars/dt.adh.crans.org.yml
Normal file
4
host_vars/dt.adh.crans.org.yml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
user:
|
||||||
|
name: ynerant
|
||||||
|
root: yes
|
4
host_vars/excalidraw.adm.ynerant.fr.yml
Normal file
4
host_vars/excalidraw.adm.ynerant.fr.yml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
interfaces:
|
||||||
|
adm: ens18
|
||||||
|
srv_nat: ens19
|
1
host_vars/localhost
Symbolic link
1
host_vars/localhost
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
ynerant-thinkpad.wifi.sand.auro.re.yml
|
7
host_vars/synapse.adm.ynerant.fr.yml
Normal file
7
host_vars/synapse.adm.ynerant.fr.yml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
interfaces:
|
||||||
|
adm: eth0
|
||||||
|
srv_nat: eth1
|
||||||
|
|
||||||
|
loc_apt:
|
||||||
|
backports: true
|
4
host_vars/tealc.crans.org.yml
Normal file
4
host_vars/tealc.crans.org.yml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
user:
|
||||||
|
name: ynerant
|
||||||
|
root: no
|
@ -1,4 +1,8 @@
|
|||||||
---
|
---
|
||||||
|
user:
|
||||||
|
name: ynerant
|
||||||
|
root: yes
|
||||||
|
|
||||||
loc_certbot:
|
loc_certbot:
|
||||||
- dns_rfc2136_server: '172.16.42.103'
|
- dns_rfc2136_server: '172.16.42.103'
|
||||||
dns_rfc2136_name: certbot_challenge.
|
dns_rfc2136_name: certbot_challenge.
|
9
host_vars/ynerant-pc.fil.sand.auro.re.yml
Normal file
9
host_vars/ynerant-pc.fil.sand.auro.re.yml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
user:
|
||||||
|
name: ynerant
|
||||||
|
root: yes
|
||||||
|
|
||||||
|
laptop:
|
||||||
|
numpad: true
|
||||||
|
resolution: 1440p
|
||||||
|
gpu: true
|
10
host_vars/ynerant-thinkpad.wifi.sand.auro.re.yml
Normal file
10
host_vars/ynerant-thinkpad.wifi.sand.auro.re.yml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
user:
|
||||||
|
name: ynerant
|
||||||
|
root: yes
|
||||||
|
|
||||||
|
laptop:
|
||||||
|
numpad: false
|
||||||
|
resolution: 1080p
|
||||||
|
touchscreen: true
|
||||||
|
gpu: false
|
4
host_vars/zamok.crans.org.yml
Normal file
4
host_vars/zamok.crans.org.yml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
user:
|
||||||
|
name: ynerant
|
||||||
|
root: no
|
4
host_vars/zemour.adm.ynerant.fr.yml
Normal file
4
host_vars/zemour.adm.ynerant.fr.yml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
interfaces:
|
||||||
|
adm: ens18
|
||||||
|
adh: ens19
|
12
hosts
12
hosts
@ -1,3 +1,6 @@
|
|||||||
|
[archlinux:children]
|
||||||
|
perso
|
||||||
|
|
||||||
[blackbox]
|
[blackbox]
|
||||||
monitoring.adm.ynerant.fr
|
monitoring.adm.ynerant.fr
|
||||||
|
|
||||||
@ -21,6 +24,11 @@ reverseproxy
|
|||||||
[ntp_server]
|
[ntp_server]
|
||||||
routeur-templier.adm.ynerant.fr
|
routeur-templier.adm.ynerant.fr
|
||||||
|
|
||||||
|
[perso]
|
||||||
|
ynerant-pc.fil.sand.auro.re
|
||||||
|
ynerant-thinkpad.wifi.sand.auro.re
|
||||||
|
localhost
|
||||||
|
|
||||||
[postfix]
|
[postfix]
|
||||||
mailu.adm.ynerant.fr
|
mailu.adm.ynerant.fr
|
||||||
|
|
||||||
@ -41,13 +49,16 @@ vm
|
|||||||
templier.adm.ynerant.fr
|
templier.adm.ynerant.fr
|
||||||
|
|
||||||
[virtu]
|
[virtu]
|
||||||
|
# dt.adh.crans.org
|
||||||
templier.adm.ynerant.fr
|
templier.adm.ynerant.fr
|
||||||
|
|
||||||
[vm]
|
[vm]
|
||||||
|
an.adm.ynerant.fr
|
||||||
borg.adm.ynerant.fr
|
borg.adm.ynerant.fr
|
||||||
dendrite.adm.ynerant.fr
|
dendrite.adm.ynerant.fr
|
||||||
docker.adm.ynerant.fr
|
docker.adm.ynerant.fr
|
||||||
dns.adm.ynerant.fr
|
dns.adm.ynerant.fr
|
||||||
|
excalidraw.adm.ynerant.fr
|
||||||
fosscord.adm.ynerant.fr
|
fosscord.adm.ynerant.fr
|
||||||
gitea.adm.ynerant.fr
|
gitea.adm.ynerant.fr
|
||||||
mailu.adm.ynerant.fr
|
mailu.adm.ynerant.fr
|
||||||
@ -61,5 +72,6 @@ peertube.adm.ynerant.fr
|
|||||||
psql.adm.ynerant.fr
|
psql.adm.ynerant.fr
|
||||||
proxy.adm.ynerant.fr
|
proxy.adm.ynerant.fr
|
||||||
routeur-templier.adm.ynerant.fr
|
routeur-templier.adm.ynerant.fr
|
||||||
|
synapse.adm.ynerant.fr
|
||||||
testing.adm.ynerant.fr
|
testing.adm.ynerant.fr
|
||||||
wireguard.adm.ynerant.fr
|
wireguard.adm.ynerant.fr
|
||||||
|
@ -14,10 +14,34 @@
|
|||||||
roles:
|
roles:
|
||||||
- sudo
|
- sudo
|
||||||
- qemu-guest-agent
|
- qemu-guest-agent
|
||||||
|
|
||||||
|
- hosts: all
|
||||||
|
roles:
|
||||||
- cli-utils
|
- cli-utils
|
||||||
|
- vim
|
||||||
|
- ssh
|
||||||
|
|
||||||
#- hosts: templier.adh.crans.org
|
#- hosts: templier.adh.crans.org
|
||||||
# roles:
|
# roles:
|
||||||
# - bind
|
# - bind
|
||||||
# - docker
|
# - docker
|
||||||
# become: yes
|
# become: yes
|
||||||
|
|
||||||
|
- hosts: perso
|
||||||
|
roles:
|
||||||
|
# - sudo
|
||||||
|
- systemd
|
||||||
|
- pacman
|
||||||
|
- ntp-client-arch
|
||||||
|
- texlive
|
||||||
|
- xorg
|
||||||
|
- i3
|
||||||
|
- terminal
|
||||||
|
- notification
|
||||||
|
- mime
|
||||||
|
- audio
|
||||||
|
- multimedia
|
||||||
|
- pass
|
||||||
|
- communication
|
||||||
|
- browser
|
||||||
|
# - scripts
|
||||||
|
11
roles/audio/tasks/main.yml
Normal file
11
roles/audio/tasks/main.yml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Queries package manager for audio installation
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- alsa-utils
|
||||||
|
- pulseaudio
|
||||||
|
- pulsemixer
|
||||||
|
register: pkg_result
|
||||||
|
retries: 3
|
||||||
|
until: pkg_result is succeeded
|
9
roles/browser/tasks/main.yml
Normal file
9
roles/browser/tasks/main.yml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
- name: Queries package manager for browser installation
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- firefox
|
||||||
|
- firefox-i18n-fr
|
||||||
|
register: pkg_result
|
||||||
|
retries: 3
|
||||||
|
until: pkg_result is succeeded
|
@ -1,21 +1,20 @@
|
|||||||
---
|
---
|
||||||
- name: Install useful utilities
|
- name: Install cli utilities
|
||||||
package:
|
package:
|
||||||
name:
|
name:
|
||||||
- bash
|
- bash
|
||||||
- bash-completion
|
- bash-completion
|
||||||
- bat
|
- bat
|
||||||
- curl
|
- curl
|
||||||
- dnsutils
|
- "{% if ansible_os_family == 'Debian' %}dnsutils{% else %}bind-tools{% endif %}"
|
||||||
- git
|
- git
|
||||||
- htop
|
|
||||||
- man
|
- man
|
||||||
- molly-guard
|
- molly-guard
|
||||||
- mtr-tiny
|
|
||||||
- needrestart
|
- needrestart
|
||||||
- patch
|
- "mtr{% if ansible_os_family == 'Debian' %}-tiny{% endif %}"
|
||||||
- rsync
|
|
||||||
- sl
|
- sl
|
||||||
|
- htop
|
||||||
|
- patch
|
||||||
- sudo
|
- sudo
|
||||||
- tmux
|
- tmux
|
||||||
- traceroute
|
- traceroute
|
||||||
@ -25,3 +24,30 @@
|
|||||||
register: pkg_result
|
register: pkg_result
|
||||||
retries: 3
|
retries: 3
|
||||||
until: pkg_result is succeeded
|
until: pkg_result is succeeded
|
||||||
|
|
||||||
|
- name: Create directory hierarchy
|
||||||
|
file:
|
||||||
|
path: '.config/{{ item }}'
|
||||||
|
state: directory
|
||||||
|
owner: '{{ user.name }}'
|
||||||
|
group: '{{ user.name }}'
|
||||||
|
mode: 0755
|
||||||
|
with_items:
|
||||||
|
- 'git/'
|
||||||
|
- 'bash/'
|
||||||
|
become_user: "{{ user.name }}"
|
||||||
|
|
||||||
|
- name: Deploying config files
|
||||||
|
template:
|
||||||
|
src: '{{ item.src }}'
|
||||||
|
dest: '{{ item.dest }}'
|
||||||
|
owner: '{{ user.name }}'
|
||||||
|
group: '{{ user.name }}'
|
||||||
|
mode: 0644
|
||||||
|
with_items:
|
||||||
|
- { src: bashrc.j2, dest: .bashrc }
|
||||||
|
- { src: inputrc.j2, dest: .inputrc }
|
||||||
|
- { src: bash_aliases.j2, dest: .config/bash/bash_aliases }
|
||||||
|
- { src: gitconfig.j2, dest: .config/git/config }
|
||||||
|
- { src: tmux.conf.j2, dest: .tmux.conf }
|
||||||
|
become_user: '{{ user.name }}'
|
||||||
|
56
roles/cli-utils/templates/bash_aliases.j2
Normal file
56
roles/cli-utils/templates/bash_aliases.j2
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
{{ ansible_header | comment }}
|
||||||
|
|
||||||
|
# enable color support of ls and also add handy aliases
|
||||||
|
if [ -x /usr/bin/dircolors ]; then
|
||||||
|
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
||||||
|
alias ls='ls --color=auto'
|
||||||
|
|
||||||
|
alias grep='grep --color=always'
|
||||||
|
alias fgrep='fgrep --color=always'
|
||||||
|
alias egrep='egrep --color=always'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# some more ls aliases
|
||||||
|
alias ll='ls -alF'
|
||||||
|
alias la='ls -A'
|
||||||
|
alias l='ls -CF'
|
||||||
|
|
||||||
|
alias cd='cd -P'
|
||||||
|
alias ip='ip -c'
|
||||||
|
|
||||||
|
alias less='less -R'
|
||||||
|
{% if ansible_os_family == "Archlinux" -%}
|
||||||
|
|
||||||
|
alias startx='exec startx'
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
alias gst='git status -s'
|
||||||
|
|
||||||
|
alias proxy='ssh -q -C -N -D 8080'
|
||||||
|
alias wip='watch -c ip -c'
|
||||||
|
|
||||||
|
# Shortcuts to open ports
|
||||||
|
alias ldap_tealc="ssh -L 1636:tealc.adm.crans.org:636 tealc.adm.crans.org"
|
||||||
|
alias sam="ssh -L 8006:sam.adm.crans.org:8006 sam.adm.crans.org"
|
||||||
|
alias jack="ssh -L 8006:jack.adm.crans.org:8006 jack.adm.crans.org"
|
||||||
|
alias daniel="ssh -L 8006:daniel.adm.crans.org:8006 daniel.adm.crans.org"
|
||||||
|
|
||||||
|
alias vi=vim
|
||||||
|
{% if ansible_os_family == "Debian" -%}
|
||||||
|
alias bat=batcat
|
||||||
|
{% endif -%}
|
||||||
|
alias cat=bat
|
||||||
|
|
||||||
|
# Add some emoji aliases
|
||||||
|
alias 🦇=bat
|
||||||
|
alias 🐈=cat
|
||||||
|
alias 🚆=sl
|
||||||
|
alias 🚂=sl
|
||||||
|
alias 🚅=sl
|
||||||
|
alias 💿=cd
|
||||||
|
{% if ansible_os_family == "Archlinux" -%}
|
||||||
|
{# Personal computer #}
|
||||||
|
alias 🐿️="cd /home/ynerant/PycharmProjects/SquirrelBattle && venv/bin/python main.py"
|
||||||
|
{% endif -%}
|
59
roles/cli-utils/templates/bashrc.j2
Normal file
59
roles/cli-utils/templates/bashrc.j2
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
{{ ansible_header | comment }}
|
||||||
|
|
||||||
|
[ -z "$PS1" ] && return
|
||||||
|
|
||||||
|
HISTCONTROL=ignoredups:ignorespace
|
||||||
|
HISTFILE=/dev/null
|
||||||
|
|
||||||
|
# check the window size after each command and, if necessary,
|
||||||
|
# update the values of LINES and COLUMNS.
|
||||||
|
shopt -s checkwinsize
|
||||||
|
|
||||||
|
# make less more friendly for non-text input files, see lesspipe(1)
|
||||||
|
[ -x /usr/bin/lesspipe.sh ] && eval "$(SHELL=/bin/sh lesspipe.sh)"
|
||||||
|
|
||||||
|
|
||||||
|
PROMPT_COMMAND=__prompt
|
||||||
|
|
||||||
|
__prompt() {
|
||||||
|
retline=$?
|
||||||
|
gitline=$(git branch 2> /dev/null | grep '^*' | awk '{print $2}')
|
||||||
|
|
||||||
|
# COLORS
|
||||||
|
RED='\[\e[01;31m\]'
|
||||||
|
GREEN='\[\e[01;32m\]'
|
||||||
|
ORANGE='\[\e[01;33m\]'
|
||||||
|
BLUE='\[\e[01;34m\]'
|
||||||
|
NC='\[\e[0m\]'
|
||||||
|
|
||||||
|
PS1=""
|
||||||
|
PS1+="$GREEN\u@\h$NC" # user@host
|
||||||
|
PS1+=" $BLUE\W$NC" # pwd
|
||||||
|
[ -z $gitline ] || PS1+=" $ORANGE$gitline$NC"
|
||||||
|
PS1="[ $PS1 ]"
|
||||||
|
[ $retline -ne 0 ] && PS1+=" $RED$retline$NC "
|
||||||
|
PS1+="\$ "
|
||||||
|
return $ret
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -f ~/.config/bash/bash_aliases ]; then
|
||||||
|
. ~/.config/bash/bash_aliases
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf {{ cliutils.bash.bogus_dirs | join(" ") }}
|
||||||
|
|
||||||
|
|
||||||
|
if [ -f /usr/share/bash-completion/bash_completion ]; then
|
||||||
|
. /usr/share/bash-completion/bash_completion
|
||||||
|
fi
|
||||||
|
|
||||||
|
export XDG_CONFIG_HOME=~/.config/
|
||||||
|
grep -q '/\.local/bin'<<<$PATH || export PATH=$PATH:~/.local/bin/
|
||||||
|
|
||||||
|
## REMOVING LESSHST
|
||||||
|
LESSHISTFILE=/dev/null
|
||||||
|
|
||||||
|
export EDITOR='vim'
|
||||||
|
|
||||||
|
export PASSWORD_STORE_ENABLE_EXTENSIONS=true
|
||||||
|
|
15
roles/cli-utils/templates/gitconfig.j2
Normal file
15
roles/cli-utils/templates/gitconfig.j2
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{{ ansible_header | comment }}
|
||||||
|
|
||||||
|
[user]
|
||||||
|
email = {{ cliutils.git.email }}
|
||||||
|
name = {{ cliutils.git.name }}
|
||||||
|
signingkey = {{ cliutils.git.signingkey }}
|
||||||
|
[commit]
|
||||||
|
gpgsign = true
|
||||||
|
[core]
|
||||||
|
autocrlf = input
|
||||||
|
editor = vim
|
||||||
|
[format]
|
||||||
|
signoff = true
|
||||||
|
[pull]
|
||||||
|
ff = only
|
3
roles/cli-utils/templates/inputrc.j2
Normal file
3
roles/cli-utils/templates/inputrc.j2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{{ ansible_header | comment }}
|
||||||
|
|
||||||
|
set mark-symlinked-directories on
|
34
roles/cli-utils/templates/tmux.conf.j2
Normal file
34
roles/cli-utils/templates/tmux.conf.j2
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
{{ ansible_header | comment }}
|
||||||
|
|
||||||
|
unbind r
|
||||||
|
bind r source-file ~/.tmux.conf
|
||||||
|
|
||||||
|
set -g mouse on
|
||||||
|
|
||||||
|
## set the default TERM
|
||||||
|
set -g default-terminal screen
|
||||||
|
|
||||||
|
## update the TERM variable of terminal emulator when creating a new session or attaching a existing session
|
||||||
|
set -g update-environment 'DISPLAY SSH_ASKPASS SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY TERM'
|
||||||
|
## determine if we should enable 256-colour support
|
||||||
|
if "[[ ${TERM} =~ 256color || ${TERM} == fbterm ]]" 'set -g default-terminal screen-256color'
|
||||||
|
|
||||||
|
# use the vim motion keys to move between panes
|
||||||
|
bind h select-pane -L
|
||||||
|
bind j select-pane -D
|
||||||
|
bind k select-pane -U
|
||||||
|
bind l select-pane -R
|
||||||
|
|
||||||
|
setw -g mode-keys vi
|
||||||
|
bind < resize-pane -L 10
|
||||||
|
bind > resize-pane -R 10
|
||||||
|
bind - resize-pane -D 10
|
||||||
|
bind + resize-pane -U 10
|
||||||
|
|
||||||
|
bind-key -T copy-mode-vi 'v' send -X begin-selection;
|
||||||
|
bind-key -T copy-mode-vi 'V' send -X select-line;
|
||||||
|
bind-key -T copy-mode-vi 'r' send -X rectangle-toggle;
|
||||||
|
bind-key -T copy-mode-vi 'y' send -X copy-pipe-and-cancel 'xclip -in -selection clipboard'
|
||||||
|
|
||||||
|
set -g base-index 1
|
||||||
|
set -g status-bg colour41
|
51
roles/communication/tasks/main.yml
Normal file
51
roles/communication/tasks/main.yml
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
---
|
||||||
|
- name: Queries package manager for communication installation
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- discord
|
||||||
|
- element-desktop
|
||||||
|
- evolution
|
||||||
|
- gnome-keyring
|
||||||
|
- gnome-themes-extra
|
||||||
|
- lxappearance
|
||||||
|
- seahorse
|
||||||
|
register: pkg_result
|
||||||
|
retries: 3
|
||||||
|
until: pkg_result is succeeded
|
||||||
|
|
||||||
|
- name: Create lxappearance directory hierarchy
|
||||||
|
file:
|
||||||
|
path: '{{ item }}'
|
||||||
|
state: directory
|
||||||
|
owner: '{{ user.name }}'
|
||||||
|
group: '{{ user.name }}'
|
||||||
|
mode: 0700
|
||||||
|
with_items:
|
||||||
|
- '.config/gtk-3.0/'
|
||||||
|
- '.icons/default/'
|
||||||
|
become_user: '{{ user.name }}'
|
||||||
|
|
||||||
|
- name: Enable dark mode for evolution
|
||||||
|
template:
|
||||||
|
src: '{{ item.src }}'
|
||||||
|
dest: '{{ item.dest }}'
|
||||||
|
owner: '{{ user.name }}'
|
||||||
|
group: '{{ user.name }}'
|
||||||
|
mode: 0644
|
||||||
|
with_items:
|
||||||
|
- { src: 'gtkrc.j2', dest: '.gtkrc-2.0' }
|
||||||
|
- { src: 'settings.ini.j2', dest: '.config/gtk-3.0/settings.ini' }
|
||||||
|
- { src: 'index.theme.j2', dest: '.icons/default/index.theme'}
|
||||||
|
become_user: '{{ user.name }}'
|
||||||
|
|
||||||
|
- name: Create evolution config and cache parent directories
|
||||||
|
file:
|
||||||
|
path: '{{ item }}'
|
||||||
|
state: directory
|
||||||
|
owner: '{{ user.name }}'
|
||||||
|
group: '{{ user.name }}'
|
||||||
|
mode: 0700
|
||||||
|
with_items:
|
||||||
|
- '.config/'
|
||||||
|
- '.local/share/'
|
||||||
|
become_user: '{{ user.name }}'
|
20
roles/communication/templates/gtkrc.j2
Normal file
20
roles/communication/templates/gtkrc.j2
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{{ ansible_header | comment }}
|
||||||
|
|
||||||
|
# DO NOT EDIT! This file will be overwritten by LXAppearance.
|
||||||
|
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
|
||||||
|
|
||||||
|
include "/home/ynerant/.gtkrc-2.0.mine"
|
||||||
|
gtk-theme-name="Adwaita-dark"
|
||||||
|
gtk-icon-theme-name="Adwaita"
|
||||||
|
gtk-cursor-theme-name="Adwaita"
|
||||||
|
gtk-cursor-theme-size=0
|
||||||
|
gtk-toolbar-style=GTK_TOOLBAR_TEXT
|
||||||
|
gtk-toolbar-icon-size=GTK_ICON_SIZE_SMALL_TOOLBAR
|
||||||
|
gtk-button-images=0
|
||||||
|
gtk-menu-images=0
|
||||||
|
gtk-enable-event-sounds=0
|
||||||
|
gtk-enable-input-feedback-sounds=0
|
||||||
|
gtk-xft-antialias=1
|
||||||
|
gtk-xft-hinting=0
|
||||||
|
gtk-xft-hintstyle="hintnone"
|
||||||
|
gtk-xft-rgba="none"
|
6
roles/communication/templates/index.theme.j2
Normal file
6
roles/communication/templates/index.theme.j2
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{{ ansible_header | comment }}
|
||||||
|
|
||||||
|
[Icon Theme]
|
||||||
|
Name=Default
|
||||||
|
Comment=Default Cursor Theme
|
||||||
|
Inherits=Adwaita
|
17
roles/communication/templates/settings.ini.j2
Normal file
17
roles/communication/templates/settings.ini.j2
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{{ ansible_header | comment }}
|
||||||
|
|
||||||
|
[Settings]
|
||||||
|
gtk-theme-name=Adwaita
|
||||||
|
gtk-icon-theme-name=Adwaita
|
||||||
|
gtk-cursor-theme-name=Adwaita
|
||||||
|
gtk-cursor-theme-size=0
|
||||||
|
gtk-toolbar-style=GTK_TOOLBAR_TEXT
|
||||||
|
gtk-toolbar-icon-size=GTK_ICON_SIZE_SMALL_TOOLBAR
|
||||||
|
gtk-button-images=0
|
||||||
|
gtk-menu-images=0
|
||||||
|
gtk-enable-event-sounds=0
|
||||||
|
gtk-enable-input-feedback-sounds=0
|
||||||
|
gtk-xft-antialias=1
|
||||||
|
gtk-xft-hinting=0
|
||||||
|
gtk-xft-hintstyle=hintnone
|
||||||
|
gtk-xft-rgba=none
|
35
roles/i3/tasks/main.yml
Normal file
35
roles/i3/tasks/main.yml
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Queries package manager for graphical instalation
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- i3-wm
|
||||||
|
- i3blocks
|
||||||
|
- i3status
|
||||||
|
register: pkg_result
|
||||||
|
retries: 3
|
||||||
|
until: pkg_result is succeeded
|
||||||
|
|
||||||
|
- name: Create i3 configuration folder hierarchy
|
||||||
|
file:
|
||||||
|
path: '.config/{{ item }}'
|
||||||
|
state: directory
|
||||||
|
owner: '{{ user.name }}'
|
||||||
|
group: '{{ user.name }}'
|
||||||
|
mode: 0755
|
||||||
|
with_items:
|
||||||
|
- i3/
|
||||||
|
- i3status/
|
||||||
|
become_user: '{{ user.name }}'
|
||||||
|
|
||||||
|
- name: Copy i3 configuration files
|
||||||
|
template:
|
||||||
|
src: '{{ item }}.j2'
|
||||||
|
dest: '.config/{{ item }}/config'
|
||||||
|
owner: '{{ user.name }}'
|
||||||
|
group: '{{ user.name }}'
|
||||||
|
mode: 0755
|
||||||
|
with_items:
|
||||||
|
- i3
|
||||||
|
- i3status
|
||||||
|
become_user: '{{ user.name }}'
|
241
roles/i3/templates/i3.j2
Normal file
241
roles/i3/templates/i3.j2
Normal file
@ -0,0 +1,241 @@
|
|||||||
|
{{ ansible_header | comment }}
|
||||||
|
|
||||||
|
# This file has been auto-generated by i3-config-wizard(1).
|
||||||
|
# It will not be overwritten, so edit it as you like.
|
||||||
|
#
|
||||||
|
# Should you change your keyboard layout some time, delete
|
||||||
|
# this file and re-run i3-config-wizard(1).
|
||||||
|
#
|
||||||
|
|
||||||
|
# i3 config file (v4)
|
||||||
|
#
|
||||||
|
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
|
||||||
|
|
||||||
|
|
||||||
|
exec /home/ynerant/.fehbg
|
||||||
|
exec dunst
|
||||||
|
exec nm-applet
|
||||||
|
exec battery
|
||||||
|
exec mpd
|
||||||
|
exec mpd_reader
|
||||||
|
{% if laptop.numpad %}
|
||||||
|
exec numlockx
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
set $mod Mod4
|
||||||
|
set $refresh killall -SIGUSR1 i3status
|
||||||
|
floating_modifier $mod
|
||||||
|
|
||||||
|
# Font for window titles. Will also be used by the bar unless a different font
|
||||||
|
# is used in the bar {} block below.
|
||||||
|
font pango:monospace 8
|
||||||
|
|
||||||
|
# Center window title and remove edges from windows
|
||||||
|
title_align center
|
||||||
|
hide_edge_borders both
|
||||||
|
|
||||||
|
# Bindings for volume and light
|
||||||
|
bindsym XF86MonBrightnessDown exec light -U 1
|
||||||
|
bindsym XF86MonBrightnessUp exec light -A 1
|
||||||
|
bindsym XF86AudioRaiseVolume exec volume -A 5 && $refresh
|
||||||
|
bindsym XF86AudioLowerVolume exec volume -U 5 && $refresh
|
||||||
|
bindsym Shift+XF86MonBrightnessDown exec light -U 1
|
||||||
|
bindsym Shift+XF86MonBrightnessUp exec light -A 1
|
||||||
|
bindsym Shift+XF86AudioRaiseVolume exec volume -A 1 && $refresh
|
||||||
|
bindsym Shift+XF86AudioLowerVolume exec volume -U 1 && $refresh
|
||||||
|
bindsym XF86AudioMute exec volume -T && $refresh
|
||||||
|
bindsym XF86AudioMicMute exec volume -M && $refresh
|
||||||
|
|
||||||
|
{% if not laptop.numpad %}
|
||||||
|
# Binding for mpd
|
||||||
|
bindsym KP_Add exec mpc next && $refresh
|
||||||
|
bindsym KP_Subtract exec mpc prev && $refresh
|
||||||
|
bindsym KP_Multiply exec mpc toggle && $refresh
|
||||||
|
bindsym $mod+F3 exec mpc volume +5
|
||||||
|
bindsym $mod+F2 exec mpc volume -5
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
# Binding to toggle mouse tapping
|
||||||
|
bindsym XF86TouchpadToggle exec mouse_tap toggle
|
||||||
|
|
||||||
|
# start a terminal
|
||||||
|
bindsym $mod+Return exec xfce4-terminal -x tmux
|
||||||
|
bindsym $mod+Shift+Return exec xfce4-terminal
|
||||||
|
|
||||||
|
# kill focused window
|
||||||
|
bindsym $mod+Shift+q kill
|
||||||
|
|
||||||
|
# start dmenu (a program launcher)
|
||||||
|
bindsym $mod+d exec dmenu_run -l 1 -p '[ ynerant@morgoth ~ ]'
|
||||||
|
bindsym XF86Search exec dmenu_run -l 1
|
||||||
|
|
||||||
|
# Launch passmenu
|
||||||
|
bindsym $mod+t exec passmenu
|
||||||
|
|
||||||
|
# Screenshots
|
||||||
|
bindsym --release Print exec screenshot
|
||||||
|
bindsym --release Control+Print exec screenshot -c
|
||||||
|
bindsym --release Shift+Print exec screenshot -s
|
||||||
|
bindsym --release Control+Shift+Print exec screenshot -s -c
|
||||||
|
|
||||||
|
# Binding to lock screen
|
||||||
|
bindsym $mod+Escape exec physlock
|
||||||
|
|
||||||
|
# alternatively, you can use the cursor keys:
|
||||||
|
bindsym $mod+Left focus left
|
||||||
|
bindsym $mod+h focus left
|
||||||
|
bindsym $mod+Down focus down
|
||||||
|
bindsym $mod+Up focus up
|
||||||
|
bindsym $mod+Right focus right
|
||||||
|
bindsym $mod+l focus right
|
||||||
|
|
||||||
|
# Move through output
|
||||||
|
bindsym $mod+j focus output down
|
||||||
|
bindsym $mod+k focus output up
|
||||||
|
|
||||||
|
# alternatively, you can use the cursor keys:
|
||||||
|
bindsym $mod+Shift+Left move left
|
||||||
|
bindsym $mod+Shift+h move left
|
||||||
|
bindsym $mod+Shift+Down move down
|
||||||
|
bindsym $mod+Shift+Up move up
|
||||||
|
bindsym $mod+Shift+Right move right
|
||||||
|
bindsym $mod+Shift+l move right
|
||||||
|
|
||||||
|
# Move workspace between output
|
||||||
|
bindsym $mod+Shift+j move workspace to output down
|
||||||
|
bindsym $mod+Shift+k move workspace to output up
|
||||||
|
|
||||||
|
# split in horizontal orientation
|
||||||
|
bindsym $mod+s split h
|
||||||
|
|
||||||
|
# split in vertical orientation
|
||||||
|
bindsym $mod+v split v
|
||||||
|
|
||||||
|
# enter fullscreen mode for the focused container
|
||||||
|
bindsym $mod+f fullscreen toggle
|
||||||
|
|
||||||
|
# change container layout (stacked, tabbed, toggle split)
|
||||||
|
bindsym $mod+w layout tabbed
|
||||||
|
bindsym $mod+e layout toggle split
|
||||||
|
|
||||||
|
# focus the parent container
|
||||||
|
bindsym $mod+a focus parent
|
||||||
|
|
||||||
|
# focus the child container
|
||||||
|
bindsym $mod+y focus child
|
||||||
|
|
||||||
|
# Define names for default workspaces for which we configure key bindings later on.
|
||||||
|
# We use variables to avoid repeating the names in multiple places.
|
||||||
|
set $ws0 "0"
|
||||||
|
set $ws1 "1"
|
||||||
|
set $ws2 "2"
|
||||||
|
set $ws3 "3"
|
||||||
|
set $ws4 "4"
|
||||||
|
set $ws5 "5"
|
||||||
|
set $ws6 "6"
|
||||||
|
set $ws7 "7"
|
||||||
|
set $ws8 "8"
|
||||||
|
set $ws9 "9"
|
||||||
|
set $ws10 "10"
|
||||||
|
|
||||||
|
# Screen workspace
|
||||||
|
workspace $ws0 output eDP-1
|
||||||
|
workspace $ws1 output eDP-1
|
||||||
|
workspace $ws2 output eDP-1
|
||||||
|
workspace $ws3 output eDP-1
|
||||||
|
workspace $ws4 output eDP-1
|
||||||
|
workspace $ws5 output eDP-1
|
||||||
|
workspace $ws6 output eDP-1
|
||||||
|
workspace $ws7 output eDP-1
|
||||||
|
workspace $ws8 output eDP-1
|
||||||
|
workspace $ws9 output eDP-1
|
||||||
|
workspace $ws10 output eDP-1
|
||||||
|
|
||||||
|
# switch to workspace
|
||||||
|
bindsym $mod+0xb2 workspace $ws0
|
||||||
|
bindsym $mod+1 workspace $ws1
|
||||||
|
bindsym $mod+2 workspace $ws2
|
||||||
|
bindsym $mod+3 workspace $ws3
|
||||||
|
bindsym $mod+4 workspace $ws4
|
||||||
|
bindsym $mod+5 workspace $ws5
|
||||||
|
bindsym $mod+6 workspace $ws6
|
||||||
|
bindsym $mod+7 workspace $ws7
|
||||||
|
bindsym $mod+8 workspace $ws8
|
||||||
|
bindsym $mod+9 workspace $ws9
|
||||||
|
bindsym $mod+0 workspace $ws10
|
||||||
|
|
||||||
|
# move focused container to workspace
|
||||||
|
bindsym $mod+Shift+0xb2 move container to workspace $ws0
|
||||||
|
bindsym $mod+Shift+1 move container to workspace $ws1
|
||||||
|
bindsym $mod+Shift+2 move container to workspace $ws2
|
||||||
|
bindsym $mod+Shift+3 move container to workspace $ws3
|
||||||
|
bindsym $mod+Shift+4 move container to workspace $ws4
|
||||||
|
bindsym $mod+Shift+5 move container to workspace $ws5
|
||||||
|
bindsym $mod+Shift+6 move container to workspace $ws6
|
||||||
|
bindsym $mod+Shift+7 move container to workspace $ws7
|
||||||
|
bindsym $mod+Shift+8 move container to workspace $ws8
|
||||||
|
bindsym $mod+Shift+9 move container to workspace $ws9
|
||||||
|
bindsym $mod+Shift+0 move container to workspace $ws10
|
||||||
|
|
||||||
|
# Leave fullscreen on new window
|
||||||
|
popup_during_fullscreen leave_fullscreen
|
||||||
|
|
||||||
|
# Cycle through workspace
|
||||||
|
bindsym $mod+Tab workspace next_on_output
|
||||||
|
bindsym $mod+Shift+Tab workspace prev_on_output
|
||||||
|
|
||||||
|
# Dont focus discord (for thunderbird passwd)
|
||||||
|
no_focus [class="(?i)discord"]
|
||||||
|
|
||||||
|
# reload the configuration file
|
||||||
|
bindsym $mod+Shift+c reload
|
||||||
|
|
||||||
|
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||||
|
bindsym $mod+Shift+r restart
|
||||||
|
|
||||||
|
# exit i3 (logs you out of your X session)
|
||||||
|
bindsym $mod+Shift+e exec "i3-msg exit"
|
||||||
|
|
||||||
|
# resize window (you can also use the mouse for that)
|
||||||
|
mode "resize" {
|
||||||
|
bindsym Left resize shrink width 1 px or 1 ppt
|
||||||
|
bindsym Down resize grow height 1 px or 1 ppt
|
||||||
|
bindsym Up resize shrink height 1 px or 1 ppt
|
||||||
|
bindsym Right resize grow width 1 px or 1 ppt
|
||||||
|
|
||||||
|
# back to normal: Enter or Escape or $mod+r
|
||||||
|
bindsym Return mode "default"
|
||||||
|
bindsym Escape mode "default"
|
||||||
|
bindsym $mod+r mode "default"
|
||||||
|
}
|
||||||
|
|
||||||
|
bindsym $mod+r mode "resize"
|
||||||
|
|
||||||
|
# Window thickness
|
||||||
|
new_window 1pixel
|
||||||
|
|
||||||
|
# Toogle bar-1 visibility
|
||||||
|
bindsym $mod+x bar mode invisible bar-1
|
||||||
|
bindsym $mod+Shift+x bar mode toggle bar-1
|
||||||
|
|
||||||
|
|
||||||
|
# Start i3bar to display a workspace bar (plus the system information i3status
|
||||||
|
# finds out, if available)
|
||||||
|
bar {
|
||||||
|
output eDP-1
|
||||||
|
tray_output eDP-1
|
||||||
|
mode hide
|
||||||
|
status_command i3status
|
||||||
|
strip_workspace_numbers yes
|
||||||
|
}
|
||||||
|
|
||||||
|
bar {
|
||||||
|
output HDMI-2
|
||||||
|
mode hide
|
||||||
|
status_command i3status
|
||||||
|
strip_workspace_numbers yes
|
||||||
|
}
|
||||||
|
|
||||||
|
{% if laptop.touchscreen %}
|
||||||
|
exec xinput --set-prop 14 "libinput Natural Scrolling Enabled" 1
|
||||||
|
{% endif %}
|
63
roles/i3/templates/i3status.j2
Normal file
63
roles/i3/templates/i3status.j2
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
{{ ansible_header | comment }}
|
||||||
|
|
||||||
|
# i3status configuration file.
|
||||||
|
# see "man i3status" for documentation.
|
||||||
|
|
||||||
|
# It is important that this file is edited as UTF-8.
|
||||||
|
# The following line should contain a sharp s:
|
||||||
|
# ß
|
||||||
|
# If the above line is not correctly displayed, fix your editor first!
|
||||||
|
|
||||||
|
general {
|
||||||
|
output_format="i3bar"
|
||||||
|
colors = true
|
||||||
|
interval = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# order += "ipv6"
|
||||||
|
order += "read_file mpd"
|
||||||
|
order += "volume master"
|
||||||
|
order+= "ipv6"
|
||||||
|
order += "wireless _first_"
|
||||||
|
order += "ethernet _first_"
|
||||||
|
order += "battery all"
|
||||||
|
order += "tztime local"
|
||||||
|
|
||||||
|
|
||||||
|
ipv6 {
|
||||||
|
format_up = "IPV6: %ip"
|
||||||
|
format_down = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
wireless _first_ {
|
||||||
|
format_up = "W:%essid, %ip"
|
||||||
|
format_down = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
ethernet _first_ {
|
||||||
|
format_up = "E: %ip, %speed"
|
||||||
|
format_down = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
battery all {
|
||||||
|
format = "%status %percentage %remaining"
|
||||||
|
last_full_capacity = true
|
||||||
|
color_good="#00FFFF"
|
||||||
|
color_bad="#00FFFF"
|
||||||
|
}
|
||||||
|
|
||||||
|
tztime local {
|
||||||
|
format = "%d-%m %H:%M:%S"
|
||||||
|
}
|
||||||
|
|
||||||
|
volume master {
|
||||||
|
format = "♪: %volume"
|
||||||
|
format_muted = "♪: muted (%volume)"
|
||||||
|
device = "pulse"
|
||||||
|
}
|
||||||
|
|
||||||
|
read_file mpd {
|
||||||
|
path = "/tmp/mpd.current"
|
||||||
|
color_good = "#00FF99"
|
||||||
|
format_bad = ""
|
||||||
|
}
|
27
roles/mime/tasks/main.yml
Normal file
27
roles/mime/tasks/main.yml
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Queries package manager to install xdg
|
||||||
|
package:
|
||||||
|
name: xdg-utils
|
||||||
|
register: pkg_result
|
||||||
|
retries: 3
|
||||||
|
until: pkg_result is succeeded
|
||||||
|
become: yes
|
||||||
|
|
||||||
|
- name: Create default applications config folder
|
||||||
|
file:
|
||||||
|
path: '.config/'
|
||||||
|
state: directory
|
||||||
|
owner: '{{ user.name }}'
|
||||||
|
group: '{{ user.name }}'
|
||||||
|
mode: 0700
|
||||||
|
become_user: '{{ user.name }}'
|
||||||
|
|
||||||
|
- name: Install default applications configuration file
|
||||||
|
template:
|
||||||
|
src: 'mimeapps.list.j2'
|
||||||
|
dest: '.config/mimeapps.list'
|
||||||
|
owner: '{{ user.name }}'
|
||||||
|
group: '{{ user.name }}'
|
||||||
|
mode: 0644
|
||||||
|
become_user: '{{ user.name }}'
|
17
roles/mime/templates/mimeapps.list.j2
Normal file
17
roles/mime/templates/mimeapps.list.j2
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{{ ansible_header | comment }}
|
||||||
|
|
||||||
|
[Default Applications]
|
||||||
|
text/html=firefox.desktop
|
||||||
|
x-scheme-handler/http=firefox.desktop
|
||||||
|
x-scheme-handler/https=firefox.desktop
|
||||||
|
x-scheme-handler/ftp=firefox.desktop
|
||||||
|
x-scheme-handler/about=firefox.desktop
|
||||||
|
x-scheme-handler/unknown=firefox.desktop
|
||||||
|
application/x-extension-htm=firefox.desktop
|
||||||
|
application/x-extension-html=firefox.desktop
|
||||||
|
application/x-extension-shtml=firefox.desktop
|
||||||
|
application/xhtml+xml=firefox.desktop
|
||||||
|
application/x-extension-xhtml=firefox.desktop
|
||||||
|
application/x-extension-xht=firefox.desktop
|
||||||
|
application/pdf=org.pwmt.zathura.desktop
|
||||||
|
|
38
roles/multimedia/tasks/main.yml
Normal file
38
roles/multimedia/tasks/main.yml
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Queries package manager for multimedia installation
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- feh
|
||||||
|
- mpv
|
||||||
|
- obs-studio
|
||||||
|
- vlc
|
||||||
|
- zathura
|
||||||
|
- zathura-pdf-poppler
|
||||||
|
register: pkg_result
|
||||||
|
retries: 3
|
||||||
|
until: pkg_result is succeeded
|
||||||
|
|
||||||
|
- name: Create multimedia folder hierarchy
|
||||||
|
file:
|
||||||
|
path: '.config/{{ item }}'
|
||||||
|
state: directory
|
||||||
|
owner: '{{ user.name }}'
|
||||||
|
group: '{{ user.name }}'
|
||||||
|
mode: 0700
|
||||||
|
with_items :
|
||||||
|
- 'mpv/'
|
||||||
|
- 'zathura/'
|
||||||
|
become_user: '{{ user.name }}'
|
||||||
|
|
||||||
|
- name: Copy multimedia configuration files
|
||||||
|
template:
|
||||||
|
src: '{{ item.src }}'
|
||||||
|
dest: '.config/{{ item.dest }}'
|
||||||
|
owner: '{{ user.name }}'
|
||||||
|
group: '{{ user.name }}'
|
||||||
|
mode: 0644
|
||||||
|
with_items:
|
||||||
|
- { src: 'zathurarc.j2', dest: 'zathura/zathurarc' }
|
||||||
|
- { src: 'mpv.conf.j2', dest: 'mpv/mpv.conf' }
|
||||||
|
become_user: '{{ user.name }}'
|
30
roles/multimedia/templates/mpv.conf.j2
Normal file
30
roles/multimedia/templates/mpv.conf.j2
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{{ ansible_header | comment }}
|
||||||
|
|
||||||
|
##################
|
||||||
|
# video settings #
|
||||||
|
##################
|
||||||
|
|
||||||
|
# force starting with centered window
|
||||||
|
geometry=50%:50%
|
||||||
|
|
||||||
|
# no window title bar
|
||||||
|
no-border
|
||||||
|
|
||||||
|
##################
|
||||||
|
# audio settings #
|
||||||
|
##################
|
||||||
|
|
||||||
|
# Specify pulse audio as audio output
|
||||||
|
ao=pulse
|
||||||
|
|
||||||
|
##################
|
||||||
|
# other settings #
|
||||||
|
##################
|
||||||
|
|
||||||
|
# Display English subtitles if available.
|
||||||
|
slang=fr,en
|
||||||
|
|
||||||
|
# Play Finnish audio if available, fall back to English otherwise.
|
||||||
|
alang=fr,en
|
||||||
|
|
||||||
|
force-window=yes
|
3
roles/multimedia/templates/zathurarc.j2
Normal file
3
roles/multimedia/templates/zathurarc.j2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{{ ansible_header | comment }}
|
||||||
|
|
||||||
|
set selection-clipboard clipboard
|
30
roles/notification/tasks/main.yml
Normal file
30
roles/notification/tasks/main.yml
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Queries package manager for notification installation
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- dunst
|
||||||
|
- gnome-icon-theme
|
||||||
|
- gnome-icon-theme-extras
|
||||||
|
- gnome-icon-theme-symbolic
|
||||||
|
register: pkg_result
|
||||||
|
retries: 3
|
||||||
|
until: pkg_result is succeeded
|
||||||
|
|
||||||
|
- name: Create dunst config directory
|
||||||
|
file:
|
||||||
|
path: '.config/dunst/'
|
||||||
|
state: directory
|
||||||
|
owner: '{{ user.name }}'
|
||||||
|
group: '{{ user.name }}'
|
||||||
|
mode: 0755
|
||||||
|
become_user: '{{ user.name }}'
|
||||||
|
|
||||||
|
- name: Copy dunst configuration file
|
||||||
|
template:
|
||||||
|
src: 'dunstrc.j2'
|
||||||
|
dest: '.config/dunst/dunstrc'
|
||||||
|
owner: '{{ user.name }}'
|
||||||
|
group: '{{ user.name }}'
|
||||||
|
mode: 0644
|
||||||
|
become_user: '{{ user.name }}'
|
294
roles/notification/templates/dunstrc.j2
Normal file
294
roles/notification/templates/dunstrc.j2
Normal file
@ -0,0 +1,294 @@
|
|||||||
|
{{ ansible_header | comment }}
|
||||||
|
|
||||||
|
[global]
|
||||||
|
### Display ###
|
||||||
|
|
||||||
|
# Which monitor should the notifications be displayed on.
|
||||||
|
monitor = 0
|
||||||
|
|
||||||
|
# Display notification on focused monitor. Possible modes are:
|
||||||
|
# mouse: follow mouse pointer
|
||||||
|
# keyboard: follow window with keyboard focus
|
||||||
|
# none: don't follow anything
|
||||||
|
#
|
||||||
|
# "keyboard" needs a window manager that exports the
|
||||||
|
# _NET_ACTIVE_WINDOW property.
|
||||||
|
# This should be the case for almost all modern window managers.
|
||||||
|
#
|
||||||
|
# If this option is set to mouse or keyboard, the monitor option
|
||||||
|
# will be ignored.
|
||||||
|
follow = none
|
||||||
|
|
||||||
|
# The geometry of the window:
|
||||||
|
# [{width}]x{height}[+/-{x}+/-{y}]
|
||||||
|
# The geometry of the message window.
|
||||||
|
# The height is measured in number of notifications everything else
|
||||||
|
# in pixels. If the width is omitted but the height is given
|
||||||
|
# ("-geometry x2"), the message window expands over the whole screen
|
||||||
|
# (dmenu-like). If width is 0, the window expands to the longest
|
||||||
|
# message displayed. A positive x is measured from the left, a
|
||||||
|
# negative from the right side of the screen. Y is measured from
|
||||||
|
# the top and down respectively.
|
||||||
|
# The width can be negative. In this case the actual width is the
|
||||||
|
# screen width minus the width defined in within the geometry option.
|
||||||
|
geometry = "300x5-30+20"
|
||||||
|
|
||||||
|
# Show how many messages are currently hidden (because of geometry).
|
||||||
|
indicate_hidden = yes
|
||||||
|
|
||||||
|
# Shrink window if it's smaller than the width. Will be ignored if
|
||||||
|
# width is 0.
|
||||||
|
shrink = no
|
||||||
|
|
||||||
|
# The transparency of the window. Range: [0; 100].
|
||||||
|
# This option will only work if a compositing window manager is
|
||||||
|
# present (e.g. xcompmgr, compiz, etc.).
|
||||||
|
transparency = 0
|
||||||
|
|
||||||
|
# The height of the entire notification. If the height is smaller
|
||||||
|
# than the font height and padding combined, it will be raised
|
||||||
|
# to the font height and padding.
|
||||||
|
notification_height = 0
|
||||||
|
|
||||||
|
# Draw a line of "separator_height" pixel height between two
|
||||||
|
# notifications.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
separator_height = 2
|
||||||
|
|
||||||
|
# Padding between text and separator.
|
||||||
|
padding = 8
|
||||||
|
|
||||||
|
# Horizontal padding.
|
||||||
|
horizontal_padding = 8
|
||||||
|
|
||||||
|
# Defines width in pixels of frame around the notification window.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
frame_width = 3
|
||||||
|
|
||||||
|
# Defines color of the frame around the notification window.
|
||||||
|
frame_color = "#aaaaaa"
|
||||||
|
|
||||||
|
# Define a color for the separator.
|
||||||
|
# possible values are:
|
||||||
|
# * auto: dunst tries to find a color fitting to the background;
|
||||||
|
# * foreground: use the same color as the foreground;
|
||||||
|
# * frame: use the same color as the frame;
|
||||||
|
# * anything else will be interpreted as a X color.
|
||||||
|
separator_color = frame
|
||||||
|
|
||||||
|
# Sort messages by urgency.
|
||||||
|
sort = yes
|
||||||
|
|
||||||
|
# Don't remove messages, if the user is idle (no mouse or keyboard input)
|
||||||
|
# for longer than idle_threshold seconds.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
# A client can set the 'transient' hint to bypass this. See the rules
|
||||||
|
# section for how to disable this if necessary
|
||||||
|
idle_threshold = 120
|
||||||
|
|
||||||
|
### Text ###
|
||||||
|
|
||||||
|
font = Monospace 9
|
||||||
|
|
||||||
|
# The spacing between lines. If the height is smaller than the
|
||||||
|
# font height, it will get raised to the font height.
|
||||||
|
line_height = 0
|
||||||
|
|
||||||
|
# Possible values are:
|
||||||
|
# full: Allow a small subset of html markup in notifications:
|
||||||
|
# <b>bold</b>
|
||||||
|
# <i>italic</i>
|
||||||
|
# <s>strikethrough</s>
|
||||||
|
# <u>underline</u>
|
||||||
|
#
|
||||||
|
# For a complete reference see
|
||||||
|
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
|
||||||
|
#
|
||||||
|
# strip: This setting is provided for compatibility with some broken
|
||||||
|
# clients that send markup even though it's not enabled on the
|
||||||
|
# server. Dunst will try to strip the markup but the parsing is
|
||||||
|
# simplistic so using this option outside of matching rules for
|
||||||
|
# specific applications *IS GREATLY DISCOURAGED*.
|
||||||
|
#
|
||||||
|
# no: Disable markup parsing, incoming notifications will be treated as
|
||||||
|
# plain text. Dunst will not advertise that it has the body-markup
|
||||||
|
# capability if this is set as a global setting.
|
||||||
|
#
|
||||||
|
# It's important to note that markup inside the format option will be parsed
|
||||||
|
# regardless of what this is set to.
|
||||||
|
markup = full
|
||||||
|
|
||||||
|
# The format of the message. Possible variables are:
|
||||||
|
# %a appname
|
||||||
|
# %s summary
|
||||||
|
# %b body
|
||||||
|
# %i iconname (including its path)
|
||||||
|
# %I iconname (without its path)
|
||||||
|
# %p progress value if set ([ 0%] to [100%]) or nothing
|
||||||
|
# %n progress value if set without any extra characters
|
||||||
|
# %% Literal %
|
||||||
|
# Markup is allowed
|
||||||
|
format = "<b>%s</b>\n%b"
|
||||||
|
|
||||||
|
# Alignment of message text.
|
||||||
|
# Possible values are "left", "center" and "right".
|
||||||
|
alignment = left
|
||||||
|
|
||||||
|
# Show age of message if message is older than show_age_threshold
|
||||||
|
# seconds.
|
||||||
|
# Set to -1 to disable.
|
||||||
|
show_age_threshold = 60
|
||||||
|
|
||||||
|
# Split notifications into multiple lines if they don't fit into
|
||||||
|
# geometry.
|
||||||
|
word_wrap = yes
|
||||||
|
|
||||||
|
# When word_wrap is set to no, specify where to make an ellipsis in long lines.
|
||||||
|
# Possible values are "start", "middle" and "end".
|
||||||
|
ellipsize = middle
|
||||||
|
|
||||||
|
# Ignore newlines '\n' in notifications.
|
||||||
|
ignore_newline = no
|
||||||
|
|
||||||
|
# Stack together notifications with the same content
|
||||||
|
stack_duplicates = true
|
||||||
|
|
||||||
|
# Hide the count of stacked notifications with the same content
|
||||||
|
hide_duplicate_count = false
|
||||||
|
|
||||||
|
# Display indicators for URLs (U) and actions (A).
|
||||||
|
show_indicators = yes
|
||||||
|
|
||||||
|
### Icons ###
|
||||||
|
|
||||||
|
# Align icons left/right/off
|
||||||
|
icon_position = left
|
||||||
|
|
||||||
|
# Scale larger icons down to this size, set to 0 to disable
|
||||||
|
max_icon_size = 32
|
||||||
|
|
||||||
|
# Paths to default icons.
|
||||||
|
icon_path = /usr/share/icons/gnome/32x32/status/:/usr/share/icons/gnome/32x32/devices/
|
||||||
|
|
||||||
|
### History ###
|
||||||
|
|
||||||
|
# Should a notification popped up from history be sticky or timeout
|
||||||
|
# as if it would normally do.
|
||||||
|
sticky_history = yes
|
||||||
|
|
||||||
|
# Maximum amount of notifications kept in history
|
||||||
|
history_length = 20
|
||||||
|
|
||||||
|
### Misc/Advanced ###
|
||||||
|
|
||||||
|
# dmenu path.
|
||||||
|
dmenu = /usr/bin/dmenu -p dunst:
|
||||||
|
|
||||||
|
# Browser for opening urls in context menu.
|
||||||
|
browser = /usr/bin/firefox -new-tab
|
||||||
|
|
||||||
|
# Always run rule-defined scripts, even if the notification is suppressed
|
||||||
|
always_run_script = true
|
||||||
|
|
||||||
|
# Define the title of the windows spawned by dunst
|
||||||
|
title = Dunst
|
||||||
|
|
||||||
|
# Define the class of the windows spawned by dunst
|
||||||
|
class = Dunst
|
||||||
|
|
||||||
|
# Print a notification on startup.
|
||||||
|
# This is mainly for error detection, since dbus (re-)starts dunst
|
||||||
|
# automatically after a crash.
|
||||||
|
startup_notification = false
|
||||||
|
|
||||||
|
# Manage dunst's desire for talking
|
||||||
|
# Can be one of the following values:
|
||||||
|
# crit: Critical features. Dunst aborts
|
||||||
|
# warn: Only non-fatal warnings
|
||||||
|
# mesg: Important Messages
|
||||||
|
# info: all unimportant stuff
|
||||||
|
# debug: all less than unimportant stuff
|
||||||
|
verbosity = mesg
|
||||||
|
|
||||||
|
# Define the corner radius of the notification window
|
||||||
|
# in pixel size. If the radius is 0, you have no rounded
|
||||||
|
# corners.
|
||||||
|
# The radius will be automatically lowered if it exceeds half of the
|
||||||
|
# notification height to avoid clipping text and/or icons.
|
||||||
|
corner_radius = 0
|
||||||
|
|
||||||
|
### Legacy
|
||||||
|
|
||||||
|
# Use the Xinerama extension instead of RandR for multi-monitor support.
|
||||||
|
# This setting is provided for compatibility with older nVidia drivers that
|
||||||
|
# do not support RandR and using it on systems that support RandR is highly
|
||||||
|
# discouraged.
|
||||||
|
#
|
||||||
|
# By enabling this setting dunst will not be able to detect when a monitor
|
||||||
|
# is connected or disconnected which might break follow mode if the screen
|
||||||
|
# layout changes.
|
||||||
|
force_xinerama = false
|
||||||
|
|
||||||
|
### mouse
|
||||||
|
|
||||||
|
# Defines action of mouse event
|
||||||
|
# Possible values are:
|
||||||
|
# * none: Don't do anything.
|
||||||
|
# * do_action: If the notification has exactly one action, or one is marked as default,
|
||||||
|
# invoke it. If there are multiple and no default, open the context menu.
|
||||||
|
# * close_current: Close current notification.
|
||||||
|
# * close_all: Close all notifications.
|
||||||
|
mouse_left_click = close_current
|
||||||
|
mouse_middle_click = do_action
|
||||||
|
mouse_right_click = close_all
|
||||||
|
|
||||||
|
# Experimental features that may or may not work correctly. Do not expect them
|
||||||
|
# to have a consistent behaviour across releases.
|
||||||
|
[experimental]
|
||||||
|
# Calculate the dpi to use on a per-monitor basis.
|
||||||
|
# If this setting is enabled the Xft.dpi value will be ignored and instead
|
||||||
|
# dunst will attempt to calculate an appropriate dpi value for each monitor
|
||||||
|
# using the resolution and physical size. This might be useful in setups
|
||||||
|
# where there are multiple screens with very different dpi values.
|
||||||
|
per_monitor_dpi = false
|
||||||
|
|
||||||
|
[shortcuts]
|
||||||
|
|
||||||
|
# Shortcuts are specified as [modifier+][modifier+]...key
|
||||||
|
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
|
||||||
|
# "mod3" and "mod4" (windows-key).
|
||||||
|
# Xev might be helpful to find names for keys.
|
||||||
|
|
||||||
|
# Close notification.
|
||||||
|
close = ctrl+space
|
||||||
|
|
||||||
|
# Close all notifications.
|
||||||
|
close_all = ctrl+shift+space
|
||||||
|
|
||||||
|
# Context menu.
|
||||||
|
context = ctrl+shift+period
|
||||||
|
|
||||||
|
[urgency_low]
|
||||||
|
# IMPORTANT: colors have to be defined in quotation marks.
|
||||||
|
# Otherwise the "#" and following would be interpreted as a comment.
|
||||||
|
background = "#222222"
|
||||||
|
foreground = "#888888"
|
||||||
|
timeout = 10
|
||||||
|
# Icon for notifications with low urgency, uncomment to enable
|
||||||
|
#icon = /path/to/icon
|
||||||
|
|
||||||
|
[urgency_normal]
|
||||||
|
background = "#0091FF"
|
||||||
|
foreground = "#ffffff"
|
||||||
|
timeout = 10
|
||||||
|
# Icon for notifications with normal urgency, uncomment to enable
|
||||||
|
#icon = /path/to/icon
|
||||||
|
|
||||||
|
[urgency_critical]
|
||||||
|
background = "#900000"
|
||||||
|
foreground = "#ffffff"
|
||||||
|
frame_color = "#ff0000"
|
||||||
|
timeout = 0
|
||||||
|
# Icon for notifications with critical urgency, uncomment to enable
|
||||||
|
#icon = /path/to/icon
|
||||||
|
|
7
roles/ntp-client-arch/handlers/main.yml
Normal file
7
roles/ntp-client-arch/handlers/main.yml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: restart ntpd.service
|
||||||
|
service:
|
||||||
|
name: ntpd
|
||||||
|
state: restarted
|
||||||
|
become: true
|
23
roles/ntp-client-arch/tasks/main.yml
Normal file
23
roles/ntp-client-arch/tasks/main.yml
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Queries package manager for ntp installation
|
||||||
|
package:
|
||||||
|
name: ntp
|
||||||
|
register: pkg_result
|
||||||
|
retries: 3
|
||||||
|
until: pkg_result is succeeded
|
||||||
|
notify: restart ntpd.service
|
||||||
|
|
||||||
|
- name: Deploy ntp configuration
|
||||||
|
template:
|
||||||
|
src: 'ntp.conf.j2'
|
||||||
|
dest: '/etc/ntp.conf'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
||||||
|
notify: restart ntpd.service
|
||||||
|
|
||||||
|
- name: Enable ntp service
|
||||||
|
service:
|
||||||
|
name: ntpd
|
||||||
|
enabled: yes
|
27
roles/ntp-client-arch/templates/ntp.conf.j2
Normal file
27
roles/ntp-client-arch/templates/ntp.conf.j2
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{{ ansible_header | comment }}
|
||||||
|
|
||||||
|
# Please consider joining the pool:
|
||||||
|
#
|
||||||
|
# http://www.pool.ntp.org/join.html
|
||||||
|
#
|
||||||
|
# For additional information see:
|
||||||
|
# - https://wiki.archlinux.org/index.php/Network_Time_Protocol_daemon
|
||||||
|
# - http://support.ntp.org/bin/view/Support/GettingStarted
|
||||||
|
# - the ntp.conf man page
|
||||||
|
|
||||||
|
# Associate to Arch's NTP pool
|
||||||
|
server charybde.crans.org
|
||||||
|
server 0.fr.pool.ntp.org
|
||||||
|
server 1.fr.pool.ntp.org
|
||||||
|
server 2.fr.pool.ntp.org
|
||||||
|
server 3.fr.pool.ntp.org
|
||||||
|
|
||||||
|
# By default, the server allows:
|
||||||
|
# - all queries from the local host
|
||||||
|
# - only time queries from remote hosts, protected by rate limiting and kod
|
||||||
|
restrict default kod limited nomodify nopeer noquery notrap
|
||||||
|
restrict 127.0.0.1
|
||||||
|
restrict ::1
|
||||||
|
|
||||||
|
# Location of drift file
|
||||||
|
driftfile /var/lib/ntp/ntp.drift
|
28
roles/pacman/tasks/main.yml
Normal file
28
roles/pacman/tasks/main.yml
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
---
|
||||||
|
- name: Ensure pacman is installed
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- pacman
|
||||||
|
register: pkg_result
|
||||||
|
retries: 3
|
||||||
|
until: pkg_result is succeeded
|
||||||
|
|
||||||
|
- name: Use Crans mirror
|
||||||
|
template:
|
||||||
|
src: pacman.d/mirrorlist.j2
|
||||||
|
dest: /etc/pacman.d/mirrorlist
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
||||||
|
|
||||||
|
- name: Enable colors and sugar
|
||||||
|
lineinfile:
|
||||||
|
regex: "{{ item }}"
|
||||||
|
line: "{{ item }}"
|
||||||
|
insertafter: "[options]"
|
||||||
|
path: /etc/pacman.conf
|
||||||
|
loop:
|
||||||
|
- Color
|
||||||
|
- TotalDownload
|
||||||
|
- CheckSpace
|
||||||
|
- ILoveCandy
|
4
roles/pacman/templates/pacman.d/mirrorlist.j2
Normal file
4
roles/pacman/templates/pacman.d/mirrorlist.j2
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{{ ansible_header | comment }}
|
||||||
|
|
||||||
|
Server = https://ftps.crans.org/archlinux/$repo/os/$arch
|
||||||
|
Server = http://mirror.crans.org/archlinux/$repo/os/$arch
|
18
roles/pass/tasks/main.yml
Normal file
18
roles/pass/tasks/main.yml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Queries package manager to install pass
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- jq
|
||||||
|
- git
|
||||||
|
- pass
|
||||||
|
register: pkg_result
|
||||||
|
retries: 3
|
||||||
|
until: pkg_result is succeeded
|
||||||
|
|
||||||
|
- name: Clone git pass repository
|
||||||
|
git:
|
||||||
|
repo: '{{ pass.upstream }}'
|
||||||
|
dest: '{{ pass.dest }}'
|
||||||
|
umask: '0066'
|
||||||
|
become_user: '{{ user.name }}'
|
35
roles/scripts/tasks/main.yml
Normal file
35
roles/scripts/tasks/main.yml
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
---
|
||||||
|
- name: Queries package manager for graphical instalation
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- scrot
|
||||||
|
- network-manager-applet
|
||||||
|
- acpi
|
||||||
|
register: pkg_result
|
||||||
|
retries: 3
|
||||||
|
until: pkg_result is succeeded
|
||||||
|
|
||||||
|
- name: Clone scripts git repo
|
||||||
|
git:
|
||||||
|
repo: '{{ scripts.git }}'
|
||||||
|
dest: '.local/src/scripts'
|
||||||
|
owner: '{{ user.name }}'
|
||||||
|
group: '{{ user.name }}'
|
||||||
|
umask: 0022
|
||||||
|
become_user: '{{ user.name }}'
|
||||||
|
|
||||||
|
- name: Find scripts
|
||||||
|
find:
|
||||||
|
path: '.local/src/scripts'
|
||||||
|
pattern: "*"
|
||||||
|
register: scripts
|
||||||
|
become_user: user.name
|
||||||
|
|
||||||
|
- name: Link scripts
|
||||||
|
file:
|
||||||
|
src: '/home/{{ user.name }}/{{ item.path }}'
|
||||||
|
dest: '.local/bin/{{ item.path | basename }}'
|
||||||
|
state: link
|
||||||
|
force: yes
|
||||||
|
with_items: '{{ scripts.files }}'
|
||||||
|
become_user: '{{ user.name }}'
|
25
roles/systemd/tasks/main.yml
Normal file
25
roles/systemd/tasks/main.yml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Deploy logind configuration
|
||||||
|
template:
|
||||||
|
src: 'logind.conf.j2'
|
||||||
|
dest: '/etc/systemd/logind.conf'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
||||||
|
|
||||||
|
- name: Create autologin directory on tty1
|
||||||
|
file:
|
||||||
|
path: '/etc/systemd/system/getty@tty1.service.d'
|
||||||
|
state: directory
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0755
|
||||||
|
|
||||||
|
- name: Copy autologin template file
|
||||||
|
template:
|
||||||
|
src: 'override.conf.j2'
|
||||||
|
dest: '/etc/systemd/system/getty@tty1.service.d/override.conf'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
39
roles/systemd/templates/logind.conf.j2
Normal file
39
roles/systemd/templates/logind.conf.j2
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
{{ ansible_header | comment }}
|
||||||
|
|
||||||
|
# This file is part of systemd.
|
||||||
|
#
|
||||||
|
# systemd is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU Lesser General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# Entries in this file show the compile time defaults.
|
||||||
|
# You can change settings by editing this file.
|
||||||
|
# Defaults can be restored by simply deleting this file.
|
||||||
|
#
|
||||||
|
# See logind.conf(5) for details.
|
||||||
|
|
||||||
|
[Login]
|
||||||
|
#NAutoVTs=6
|
||||||
|
#ReserveVT=6
|
||||||
|
#KillUserProcesses=no
|
||||||
|
#KillOnlyUsers=
|
||||||
|
#KillExcludeUsers=root
|
||||||
|
#InhibitDelayMaxSec=5
|
||||||
|
HandlePowerKey=ignore
|
||||||
|
#HandleSuspendKey=suspend
|
||||||
|
#HandleHibernateKey=hibernate
|
||||||
|
#HandleLidSwitch=suspend
|
||||||
|
#HandleLidSwitchExternalPower=suspend
|
||||||
|
#HandleLidSwitchDocked=ignore
|
||||||
|
#PowerKeyIgnoreInhibited=no
|
||||||
|
#SuspendKeyIgnoreInhibited=no
|
||||||
|
#HibernateKeyIgnoreInhibited=no
|
||||||
|
#LidSwitchIgnoreInhibited=yes
|
||||||
|
#HoldoffTimeoutSec=30s
|
||||||
|
#IdleAction=ignore
|
||||||
|
#IdleActionSec=30min
|
||||||
|
#RuntimeDirectorySize=10%
|
||||||
|
#RemoveIPC=yes
|
||||||
|
#InhibitorsMax=8192
|
||||||
|
#SessionsMax=8192
|
5
roles/systemd/templates/override.conf.j2
Normal file
5
roles/systemd/templates/override.conf.j2
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{{ ansible_header | comment }}
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=
|
||||||
|
ExecStart=-/usr/bin/agetty --autologin {{ user.name }} --noclear %I $TERM
|
27
roles/terminal/tasks/main.yml
Normal file
27
roles/terminal/tasks/main.yml
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Queries package manager for terminal installation
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- xfce4-terminal
|
||||||
|
register: pkg_result
|
||||||
|
retries: 3
|
||||||
|
until: pkg_result is succeeded
|
||||||
|
|
||||||
|
- name: Create xfce4 terminal config directory
|
||||||
|
file:
|
||||||
|
path: '.config/xfce4/terminal/'
|
||||||
|
state: directory
|
||||||
|
owner: '{{ user.name }}'
|
||||||
|
group: '{{ user.name }}'
|
||||||
|
mode: 0700
|
||||||
|
become_user: '{{ user.name }}'
|
||||||
|
|
||||||
|
- name: Copy xfce4-terminal configuration file
|
||||||
|
template:
|
||||||
|
src: 'terminalrc.j2'
|
||||||
|
dest: '.config/xfce4/terminal/terminalrc'
|
||||||
|
owner: '{{ user.name }}'
|
||||||
|
group: '{{ user.name }}'
|
||||||
|
mode: 0644
|
||||||
|
become_user: '{{ user.name }}'
|
37
roles/terminal/templates/terminalrc.j2
Normal file
37
roles/terminal/templates/terminalrc.j2
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
{{ ansible_header | comment }}
|
||||||
|
|
||||||
|
[Configuration]
|
||||||
|
MiscAlwaysShowTabs=FALSE
|
||||||
|
MiscBell=TRUE
|
||||||
|
MiscBellUrgent=TRUE
|
||||||
|
MiscBordersDefault=FALSE
|
||||||
|
MiscCursorBlinks=FALSE
|
||||||
|
MiscCursorShape=TERMINAL_CURSOR_SHAPE_BLOCK
|
||||||
|
MiscDefaultGeometry=90x24
|
||||||
|
MiscInheritGeometry=FALSE
|
||||||
|
MiscMenubarDefault=FALSE
|
||||||
|
MiscMouseAutohide=TRUE
|
||||||
|
MiscMouseWheelZoom=TRUE
|
||||||
|
MiscToolbarDefault=FALSE
|
||||||
|
MiscConfirmClose=TRUE
|
||||||
|
MiscCycleTabs=TRUE
|
||||||
|
MiscTabCloseButtons=TRUE
|
||||||
|
MiscTabCloseMiddleClick=TRUE
|
||||||
|
MiscTabPosition=GTK_POS_TOP
|
||||||
|
MiscHighlightUrls=TRUE
|
||||||
|
MiscMiddleClickOpensUri=FALSE
|
||||||
|
MiscCopyOnSelect=TRUE
|
||||||
|
MiscShowRelaunchDialog=TRUE
|
||||||
|
MiscRewrapOnResize=TRUE
|
||||||
|
MiscUseShiftArrowsToScroll=FALSE
|
||||||
|
MiscSlimTabs=TRUE
|
||||||
|
MiscNewTabAdjacent=FALSE
|
||||||
|
MiscSearchDialogOpacity=100
|
||||||
|
MiscShowUnsafePasteDialog=FALSE
|
||||||
|
TitleMode=TERMINAL_TITLE_HIDE
|
||||||
|
ScrollingBar=TERMINAL_SCROLLBAR_NONE
|
||||||
|
FontName=Monospace 12
|
||||||
|
ShortcutsNoMnemonics=TRUE
|
||||||
|
ShortcutsNoHelpkey=TRUE
|
||||||
|
ScrollingOnOutput=FALSE
|
||||||
|
|
8
roles/texlive/tasks/main.yml
Normal file
8
roles/texlive/tasks/main.yml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Queries package manager for texlive most
|
||||||
|
package:
|
||||||
|
name: texlive-most
|
||||||
|
register: pkg_result
|
||||||
|
retries: 3
|
||||||
|
until: pkg_result is succeeded
|
18
roles/vim/tasks/main.yml
Normal file
18
roles/vim/tasks/main.yml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Queries package manager for vim installation
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- vim
|
||||||
|
register: pkg_result
|
||||||
|
retries: 3
|
||||||
|
until: pkg_result is succeeded
|
||||||
|
|
||||||
|
- name: Deploying config files
|
||||||
|
template:
|
||||||
|
src: 'vimrc.j2'
|
||||||
|
dest: '.vimrc'
|
||||||
|
owner: '{{ user.name }}'
|
||||||
|
group: '{{ user.name }}'
|
||||||
|
mode: 0644
|
||||||
|
become_user: '{{ user.name }}'
|
46
roles/vim/templates/vimrc.j2
Normal file
46
roles/vim/templates/vimrc.j2
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
{{ ansible_header | comment(decoration='"') }}
|
||||||
|
|
||||||
|
if has('autocmd')
|
||||||
|
filetype plugin indent on
|
||||||
|
endif
|
||||||
|
if has('syntax') && !exists('g:syntax_on')
|
||||||
|
syntax enable
|
||||||
|
endif
|
||||||
|
|
||||||
|
set viminfo=
|
||||||
|
|
||||||
|
set autoindent
|
||||||
|
set backspace=indent,eol,start
|
||||||
|
set complete-=i
|
||||||
|
set smarttab
|
||||||
|
set tabstop=2
|
||||||
|
set shiftwidth=2
|
||||||
|
set expandtab
|
||||||
|
|
||||||
|
set laststatus=2
|
||||||
|
set ruler
|
||||||
|
set showcmd
|
||||||
|
set wildmenu
|
||||||
|
|
||||||
|
set incsearch
|
||||||
|
|
||||||
|
set encoding=utf-8
|
||||||
|
|
||||||
|
if &listchars ==# 'eol:$'
|
||||||
|
set listchars=tab:>\ ,trail:-,extends:>,precedes:<,nbsp:+
|
||||||
|
endif
|
||||||
|
|
||||||
|
set formatoptions+=j
|
||||||
|
|
||||||
|
set autoread
|
||||||
|
|
||||||
|
if &tabpagemax < 50
|
||||||
|
set tabpagemax=50
|
||||||
|
endif
|
||||||
|
|
||||||
|
set whichwrap+=<,>,h,l,[,]
|
||||||
|
|
||||||
|
|
||||||
|
colorscheme elflord
|
||||||
|
highlight ExtraWhitespace ctermbg=lightgreen guibg=lightgreen
|
||||||
|
match ExtraWhitespace /\s\+$/
|
93
roles/xorg/tasks/main.yml
Normal file
93
roles/xorg/tasks/main.yml
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
---
|
||||||
|
- name: Queries package manager for graphical instalation
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- autorandr
|
||||||
|
- font-bh-ttf
|
||||||
|
- gsfonts
|
||||||
|
- light
|
||||||
|
- noto-fonts-emoji
|
||||||
|
- physlock
|
||||||
|
- sdl_ttf
|
||||||
|
- ttf-bitstream-vera
|
||||||
|
- ttf-dejavu
|
||||||
|
- ttf-liberation
|
||||||
|
- xorg-fonts-type1
|
||||||
|
- xorg-xinit
|
||||||
|
- xorg-xinput
|
||||||
|
- xorg-server
|
||||||
|
- xss-lock
|
||||||
|
register: pkg_result
|
||||||
|
retries: 3
|
||||||
|
until: pkg_result is succeeded
|
||||||
|
|
||||||
|
- name: Queries package manager for graphical instalation specific to abyme installation
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- nvidia
|
||||||
|
register: pkg_result
|
||||||
|
retries: 3
|
||||||
|
until: pkg_result is succeeded
|
||||||
|
when: laptop.gpu
|
||||||
|
|
||||||
|
- name: Queries package manager for graphical instalation specific to abyme installation
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- numlockx
|
||||||
|
register: pkg_result
|
||||||
|
retries: 3
|
||||||
|
until: pkg_result is succeeded
|
||||||
|
when: laptop.numpad
|
||||||
|
|
||||||
|
- name: Copy user configuration files
|
||||||
|
template:
|
||||||
|
src: 'xinitrc.j2'
|
||||||
|
dest: '.xinitrc'
|
||||||
|
owner: '{{ user.name }}'
|
||||||
|
group: '{{ user.name }}'
|
||||||
|
mode: 0644
|
||||||
|
become_user: '{{ user.name }}'
|
||||||
|
|
||||||
|
- name: Copy touchpad configuration
|
||||||
|
template:
|
||||||
|
src: '30-touchpad.conf.j2'
|
||||||
|
dest: '/etc/X11/xorg.conf.d/30-touchpad.conf'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
||||||
|
|
||||||
|
- name: Change backlight property # doing some shifty things
|
||||||
|
file:
|
||||||
|
path: '/sys/class/backlight/intel_backlight/brightness'
|
||||||
|
owner: root
|
||||||
|
group: video
|
||||||
|
mode: '0664'
|
||||||
|
|
||||||
|
- name: Gives user the good group
|
||||||
|
user:
|
||||||
|
name: '{{ user.name }}'
|
||||||
|
groups: video
|
||||||
|
append: yes
|
||||||
|
|
||||||
|
- name: Create autorandr configuration folder
|
||||||
|
file:
|
||||||
|
path: '~/.config/autorandr'
|
||||||
|
state: directory
|
||||||
|
owner: '{{ user.name }}'
|
||||||
|
group: '{{ user.name }}'
|
||||||
|
mode: 0755
|
||||||
|
become_user: '{{ user.name }}'
|
||||||
|
|
||||||
|
- name: Install autorandr postswitch configuration file
|
||||||
|
template:
|
||||||
|
src: 'postswitch.j2'
|
||||||
|
dest: '~/.config/autorandr/postswitch'
|
||||||
|
owner: '{{ user.name }}'
|
||||||
|
group: '{{ user.name }}'
|
||||||
|
mode: 0755
|
||||||
|
become_user: '{{ user.name }}'
|
||||||
|
|
||||||
|
- name: Enable autorandr service
|
||||||
|
service:
|
||||||
|
name: autorandr
|
||||||
|
enabled: yes
|
8
roles/xorg/templates/30-touchpad.conf.j2
Normal file
8
roles/xorg/templates/30-touchpad.conf.j2
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{{ ansible_header | comment }}
|
||||||
|
|
||||||
|
Section "InputClass"
|
||||||
|
Identifier "touchpad"
|
||||||
|
Driver "libinput"
|
||||||
|
MatchIsTouchpad "on"
|
||||||
|
Option "Tapping" "on"
|
||||||
|
EndSection
|
5
roles/xorg/templates/postswitch.j2
Normal file
5
roles/xorg/templates/postswitch.j2
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
{{ ansible_header | comment }}
|
||||||
|
|
||||||
|
~/.fehbg
|
14
roles/xorg/templates/xinitrc.j2
Normal file
14
roles/xorg/templates/xinitrc.j2
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{{ ansible_header | comment }}
|
||||||
|
|
||||||
|
eval $(/usr/bin/gnome-keyring-daemon --start --components=gpg,pkcs11,secrets,ssh)
|
||||||
|
export $(gnome-keyring-daemon --start --components=pkcs11,secrets,ssh,gpg)
|
||||||
|
dbus-update-activation-environment --systemd DISPLAY
|
||||||
|
|
||||||
|
setxkbmap fr oss
|
||||||
|
xss-lock -- physlock -d &
|
||||||
|
autorandr --change
|
||||||
|
{% if laptop.gpu %}
|
||||||
|
exec prime-run i3
|
||||||
|
{% else %}
|
||||||
|
exec i3
|
||||||
|
{% endif %}
|
Loading…
x
Reference in New Issue
Block a user