Clone shirenn's configuration
This commit is contained in:
parent
527e776d62
commit
7af58a6dc7
39
ansible.cfg
39
ansible.cfg
@ -1,41 +1,14 @@
|
||||
# Ansible configuration
|
||||
|
||||
[defaults]
|
||||
|
||||
# Use true Python version
|
||||
interpreter_python = /usr/bin/python3
|
||||
|
||||
# Do not create .retry files
|
||||
retry_files_enabled = False
|
||||
|
||||
# Use inventory
|
||||
inventory = ./hosts
|
||||
|
||||
# Custom header in templates
|
||||
ansible_managed = Ansible managed, modified on %Y-%m-%d %H:%M:%S by {uid}
|
||||
|
||||
# Do not use cows (with cowsay)
|
||||
nocows = 1
|
||||
|
||||
# Do more parallelism
|
||||
forks = 15
|
||||
|
||||
# Some SSH connection will take time
|
||||
timeout = 60
|
||||
# ask_vault_pass = True
|
||||
|
||||
[privilege_escalation]
|
||||
|
||||
# Use sudo to get priviledge access
|
||||
become = True
|
||||
|
||||
# Ask for password
|
||||
become_ask_pass = True
|
||||
|
||||
[diff]
|
||||
|
||||
# TO know what changed
|
||||
always = yes
|
||||
|
||||
# become_ask_pass = True
|
||||
|
||||
[ssh_connection]
|
||||
pipelining = True
|
||||
retries = 3
|
||||
|
||||
[diff]
|
||||
always = yes
|
||||
|
29
base.yml
29
base.yml
@ -1,7 +1,32 @@
|
||||
#!/usr/bin/env ansible-playbook
|
||||
---
|
||||
# Put a common configuration on all servers
|
||||
|
||||
- hosts: all
|
||||
roles:
|
||||
- baseconfig
|
||||
- cli-utils
|
||||
- vim
|
||||
- ssh
|
||||
|
||||
- hosts: templier.adh.crans.org
|
||||
roles:
|
||||
- bind
|
||||
- docker
|
||||
become: yes
|
||||
|
||||
- hosts: perso
|
||||
roles:
|
||||
- sudo
|
||||
- systemd
|
||||
- ntp
|
||||
- texlive
|
||||
- xorg
|
||||
- i3
|
||||
- terminal
|
||||
- notification
|
||||
- mime
|
||||
- audio
|
||||
- multimedia
|
||||
- pass
|
||||
- communication
|
||||
- navigateur
|
||||
# - scripts
|
||||
|
22
group_vars/all.yml
Normal file
22
group_vars/all.yml
Normal file
@ -0,0 +1,22 @@
|
||||
---
|
||||
|
||||
pass:
|
||||
upstream: 'ssh://git@git.ynerant.fr:2222/ynerant/pass'
|
||||
dest: '.password-store/'
|
||||
|
||||
cliutils:
|
||||
bash:
|
||||
bogus_dirs: []
|
||||
git:
|
||||
email: ynerant@crans.org
|
||||
name: ynerant
|
||||
signingkey: 3A75C55819C8CF85
|
||||
|
||||
bind:
|
||||
domains:
|
||||
- name: ynerant.fr
|
||||
administrator: ynerant.crans.org
|
||||
ipv4: 185.230.78.178
|
||||
ipv6: 2a0c:700:12:0:f21f:afff:fee5:34ca
|
||||
slave: 51.15.199.212
|
||||
aliases: []
|
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/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
|
1
host_vars/localhost
Symbolic link
1
host_vars/localhost
Symbolic link
@ -0,0 +1 @@
|
||||
ynerant-thinkpad.wifi.sand.auro.re.yml
|
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
|
4
host_vars/templier.adh.crans.org.yml
Normal file
4
host_vars/templier.adh.crans.org.yml
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
user:
|
||||
name: ynerant
|
||||
root: yes
|
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
|
9
host_vars/ynerant-thinkpad.wifi.sand.auro.re.yml
Normal file
9
host_vars/ynerant-thinkpad.wifi.sand.auro.re.yml
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
user:
|
||||
name: ynerant
|
||||
root: yes
|
||||
|
||||
laptop:
|
||||
numpad: false
|
||||
resolution: 1080p
|
||||
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
|
16
hosts
16
hosts
@ -1,3 +1,17 @@
|
||||
[perso]
|
||||
[server]
|
||||
templier.adh.crans.org
|
||||
dt.adh.crans.org
|
||||
|
||||
[perso]
|
||||
ynerant-pc.fil.sand.auro.re
|
||||
ynerant-thinkpad.wifi.sand.auro.re
|
||||
localhost
|
||||
|
||||
[crans]
|
||||
odlyd.crans.org
|
||||
tealc.crans.org
|
||||
zamok.crans.org
|
||||
|
||||
[all:vars]
|
||||
# Force remote to use Python 3
|
||||
ansible_python_interpreter=/usr/bin/env python3
|
||||
|
12
roles/audio/tasks/main.yml
Normal file
12
roles/audio/tasks/main.yml
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
|
||||
- name: Queries package manager for audio installation
|
||||
package:
|
||||
name:
|
||||
- alsa-utils
|
||||
- pulseaudio
|
||||
- pulsemixer
|
||||
register: pkg_result
|
||||
retries: 3
|
||||
until: pkg_result is succeeded
|
||||
become: yes
|
File diff suppressed because it is too large
Load Diff
@ -1,326 +0,0 @@
|
||||
# Filename: /etc/skel/.zshrc
|
||||
# Purpose: config file for zsh (z shell)
|
||||
# Authors: (c) grml-team (grml.org)
|
||||
# Bug-Reports: see http://grml.org/bugs/
|
||||
# License: This file is licensed under the GPL v2 or any later version.
|
||||
################################################################################
|
||||
# Nowadays, grml's zsh setup lives in only *one* zshrc file.
|
||||
# That is the global one: /etc/zsh/zshrc (from grml-etc-core).
|
||||
# It is best to leave *this* file untouched and do personal changes to
|
||||
# your zsh setup via ${HOME}/.zshrc.local which is loaded at the end of
|
||||
# the global zshrc.
|
||||
#
|
||||
# That way, we enable people on other operating systems to use our
|
||||
# setup, too, just by copying our global zshrc to their ${HOME}/.zshrc.
|
||||
# Adjustments would still go to the .zshrc.local file.
|
||||
################################################################################
|
||||
|
||||
## Aurore host color and white user
|
||||
zstyle ':prompt:grml:left:items:host' pre '%B%F{red}'
|
||||
zstyle ':prompt:grml:left:items:host' post '%f%b'
|
||||
zstyle ':prompt:grml:left:items:user' pre '%B'
|
||||
zstyle ':prompt:grml:left:items:user' post '%b'
|
||||
|
||||
## Settings for umask
|
||||
#if (( EUID == 0 )); then
|
||||
# umask 002
|
||||
#else
|
||||
# umask 022
|
||||
#fi
|
||||
|
||||
## Now, we'll give a few examples of what you might want to use in your
|
||||
## .zshrc.local file (just copy'n'paste and uncomment it there):
|
||||
|
||||
## Prompt theme extension ##
|
||||
|
||||
# Virtualenv support
|
||||
|
||||
#function virtual_env_prompt () {
|
||||
# REPLY=${VIRTUAL_ENV+(${VIRTUAL_ENV:t}) }
|
||||
#}
|
||||
#grml_theme_add_token virtual-env -f virtual_env_prompt '%F{magenta}' '%f'
|
||||
#zstyle ':prompt:grml:left:setup' items rc virtual-env change-root user at host path vcs percent
|
||||
|
||||
## ZLE tweaks ##
|
||||
|
||||
## use the vi navigation keys (hjkl) besides cursor keys in menu completion
|
||||
#bindkey -M menuselect 'h' vi-backward-char # left
|
||||
#bindkey -M menuselect 'k' vi-up-line-or-history # up
|
||||
#bindkey -M menuselect 'l' vi-forward-char # right
|
||||
#bindkey -M menuselect 'j' vi-down-line-or-history # bottom
|
||||
|
||||
## set command prediction from history, see 'man 1 zshcontrib'
|
||||
#is4 && zrcautoload predict-on && \
|
||||
#zle -N predict-on && \
|
||||
#zle -N predict-off && \
|
||||
#bindkey "^X^Z" predict-on && \
|
||||
#bindkey "^Z" predict-off
|
||||
|
||||
## press ctrl-q to quote line:
|
||||
#mquote () {
|
||||
# zle beginning-of-line
|
||||
# zle forward-word
|
||||
# # RBUFFER="'$RBUFFER'"
|
||||
# RBUFFER=${(q)RBUFFER}
|
||||
# zle end-of-line
|
||||
#}
|
||||
#zle -N mquote && bindkey '^q' mquote
|
||||
|
||||
## define word separators (for stuff like backward-word, forward-word, backward-kill-word,..)
|
||||
#WORDCHARS='*?_-.[]~=/&;!#$%^(){}<>' # the default
|
||||
#WORDCHARS=.
|
||||
#WORDCHARS='*?_[]~=&;!#$%^(){}'
|
||||
#WORDCHARS='${WORDCHARS:s@/@}'
|
||||
|
||||
# just type '...' to get '../..'
|
||||
#rationalise-dot() {
|
||||
#local MATCH
|
||||
#if [[ $LBUFFER =~ '(^|/| | |'$'\n''|\||;|&)\.\.$' ]]; then
|
||||
# LBUFFER+=/
|
||||
# zle self-insert
|
||||
# zle self-insert
|
||||
#else
|
||||
# zle self-insert
|
||||
#fi
|
||||
#}
|
||||
#zle -N rationalise-dot
|
||||
#bindkey . rationalise-dot
|
||||
## without this, typing a . aborts incremental history search
|
||||
#bindkey -M isearch . self-insert
|
||||
|
||||
#bindkey '\eq' push-line-or-edit
|
||||
|
||||
## some popular options ##
|
||||
|
||||
## add `|' to output redirections in the history
|
||||
#setopt histallowclobber
|
||||
|
||||
## try to avoid the 'zsh: no matches found...'
|
||||
#setopt nonomatch
|
||||
|
||||
## warning if file exists ('cat /dev/null > ~/.zshrc')
|
||||
#setopt NO_clobber
|
||||
|
||||
## don't warn me about bg processes when exiting
|
||||
#setopt nocheckjobs
|
||||
|
||||
## alert me if something failed
|
||||
#setopt printexitvalue
|
||||
|
||||
## with spelling correction, assume dvorak kb
|
||||
#setopt dvorak
|
||||
|
||||
## Allow comments even in interactive shells
|
||||
#setopt interactivecomments
|
||||
|
||||
|
||||
## compsys related snippets ##
|
||||
|
||||
## changed completer settings
|
||||
#zstyle ':completion:*' completer _complete _correct _approximate
|
||||
#zstyle ':completion:*' expand prefix suffix
|
||||
|
||||
## another different completer setting: expand shell aliases
|
||||
#zstyle ':completion:*' completer _expand_alias _complete _approximate
|
||||
|
||||
## to have more convenient account completion, specify your logins:
|
||||
#my_accounts=(
|
||||
# {grml,grml1}@foo.invalid
|
||||
# grml-devel@bar.invalid
|
||||
#)
|
||||
#other_accounts=(
|
||||
# {fred,root}@foo.invalid
|
||||
# vera@bar.invalid
|
||||
#)
|
||||
#zstyle ':completion:*:my-accounts' users-hosts $my_accounts
|
||||
#zstyle ':completion:*:other-accounts' users-hosts $other_accounts
|
||||
|
||||
## add grml.org to your list of hosts
|
||||
#hosts+=(grml.org)
|
||||
#zstyle ':completion:*:hosts' hosts $hosts
|
||||
|
||||
## telnet on non-default ports? ...well:
|
||||
## specify specific port/service settings:
|
||||
#telnet_users_hosts_ports=(
|
||||
# user1@host1:
|
||||
# user2@host2:
|
||||
# @mail-server:{smtp,pop3}
|
||||
# @news-server:nntp
|
||||
# @proxy-server:8000
|
||||
#)
|
||||
#zstyle ':completion:*:*:telnet:*' users-hosts-ports $telnet_users_hosts_ports
|
||||
|
||||
## the default grml setup provides '..' as a completion. it does not provide
|
||||
## '.' though. If you want that too, use the following line:
|
||||
#zstyle ':completion:*' special-dirs true
|
||||
|
||||
## aliases ##
|
||||
|
||||
## translate
|
||||
#alias u='translate -i'
|
||||
|
||||
## ignore ~/.ssh/known_hosts entries
|
||||
#alias insecssh='ssh -o "StrictHostKeyChecking=no" -o "UserKnownHostsFile=/dev/null" -o "PreferredAuthentications=keyboard-interactive"'
|
||||
|
||||
|
||||
## global aliases (for those who like them) ##
|
||||
|
||||
#alias -g '...'='../..'
|
||||
#alias -g '....'='../../..'
|
||||
#alias -g BG='& exit'
|
||||
#alias -g C='|wc -l'
|
||||
#alias -g G='|grep'
|
||||
#alias -g H='|head'
|
||||
#alias -g Hl=' --help |& less -r'
|
||||
#alias -g K='|keep'
|
||||
#alias -g L='|less'
|
||||
#alias -g LL='|& less -r'
|
||||
#alias -g M='|most'
|
||||
#alias -g N='&>/dev/null'
|
||||
#alias -g R='| tr A-z N-za-m'
|
||||
#alias -g SL='| sort | less'
|
||||
#alias -g S='| sort'
|
||||
#alias -g T='|tail'
|
||||
#alias -g V='| vim -'
|
||||
|
||||
## instead of global aliase it might be better to use grmls $abk assoc array, whose contents are expanded after pressing ,.
|
||||
#$abk[SnL]="| sort -n | less"
|
||||
|
||||
## get top 10 shell commands:
|
||||
#alias top10='print -l ${(o)history%% *} | uniq -c | sort -nr | head -n 10'
|
||||
|
||||
## Execute \kbd{./configure}
|
||||
#alias CO="./configure"
|
||||
|
||||
## Execute \kbd{./configure --help}
|
||||
#alias CH="./configure --help"
|
||||
|
||||
## miscellaneous code ##
|
||||
|
||||
## Use a default width of 80 for manpages for more convenient reading
|
||||
#export MANWIDTH=${MANWIDTH:-80}
|
||||
|
||||
## Set a search path for the cd builtin
|
||||
#cdpath=(.. ~)
|
||||
|
||||
## variation of our manzsh() function; pick you poison:
|
||||
#manzsh() { /usr/bin/man zshall | most +/"$1" ; }
|
||||
|
||||
## Switching shell safely and efficiently? http://www.zsh.org/mla/workers/2001/msg02410.html
|
||||
#bash() {
|
||||
# NO_SWITCH="yes" command bash "$@"
|
||||
#}
|
||||
#restart () {
|
||||
# exec $SHELL $SHELL_ARGS "$@"
|
||||
#}
|
||||
|
||||
## Handy functions for use with the (e::) globbing qualifier (like nt)
|
||||
#contains() { grep -q "$*" $REPLY }
|
||||
#sameas() { diff -q "$*" $REPLY &>/dev/null }
|
||||
#ot () { [[ $REPLY -ot ${~1} ]] }
|
||||
|
||||
## get_ic() - queries imap servers for capabilities; real simple. no imaps
|
||||
#ic_get() {
|
||||
# emulate -L zsh
|
||||
# local port
|
||||
# if [[ ! -z $1 ]] ; then
|
||||
# port=${2:-143}
|
||||
# print "querying imap server on $1:${port}...\n";
|
||||
# print "a1 capability\na2 logout\n" | nc $1 ${port}
|
||||
# else
|
||||
# print "usage:\n $0 <imap-server> [port]"
|
||||
# fi
|
||||
#}
|
||||
|
||||
## List all occurrences of programm in current PATH
|
||||
#plap() {
|
||||
# emulate -L zsh
|
||||
# if [[ $# = 0 ]] ; then
|
||||
# echo "Usage: $0 program"
|
||||
# echo "Example: $0 zsh"
|
||||
# echo "Lists all occurrences of program in the current PATH."
|
||||
# else
|
||||
# ls -l ${^path}/*$1*(*N)
|
||||
# fi
|
||||
#}
|
||||
|
||||
## Find out which libs define a symbol
|
||||
#lcheck() {
|
||||
# if [[ -n "$1" ]] ; then
|
||||
# nm -go /usr/lib/lib*.a 2>/dev/null | grep ":[[:xdigit:]]\{8\} . .*$1"
|
||||
# else
|
||||
# echo "Usage: lcheck <function>" >&2
|
||||
# fi
|
||||
#}
|
||||
|
||||
## Download a file and display it locally
|
||||
#uopen() {
|
||||
# emulate -L zsh
|
||||
# if ! [[ -n "$1" ]] ; then
|
||||
# print "Usage: uopen \$URL/\$file">&2
|
||||
# return 1
|
||||
# else
|
||||
# FILE=$1
|
||||
# MIME=$(curl --head $FILE | \
|
||||
# grep Content-Type | \
|
||||
# cut -d ' ' -f 2 | \
|
||||
# cut -d\; -f 1)
|
||||
# MIME=${MIME%$'\r'}
|
||||
# curl $FILE | see ${MIME}:-
|
||||
# fi
|
||||
#}
|
||||
|
||||
## Memory overview
|
||||
#memusage() {
|
||||
# ps aux | awk '{if (NR > 1) print $5;
|
||||
# if (NR > 2) print "+"}
|
||||
# END { print "p" }' | dc
|
||||
#}
|
||||
|
||||
## print hex value of a number
|
||||
#hex() {
|
||||
# emulate -L zsh
|
||||
# if [[ -n "$1" ]]; then
|
||||
# printf "%x\n" $1
|
||||
# else
|
||||
# print 'Usage: hex <number-to-convert>'
|
||||
# return 1
|
||||
# fi
|
||||
#}
|
||||
|
||||
## log out? set timeout in seconds...
|
||||
## ...and do not log out in some specific terminals:
|
||||
#if [[ "${TERM}" == ([Exa]term*|rxvt|dtterm|screen*) ]] ; then
|
||||
# unset TMOUT
|
||||
#else
|
||||
# TMOUT=1800
|
||||
#fi
|
||||
|
||||
## associate types and extensions (be aware with perl scripts and anwanted behaviour!)
|
||||
#check_com zsh-mime-setup || { autoload zsh-mime-setup && zsh-mime-setup }
|
||||
#alias -s pl='perl -S'
|
||||
|
||||
## ctrl-s will no longer freeze the terminal.
|
||||
#stty erase "^?"
|
||||
|
||||
## you want to automatically use a bigger font on big terminals?
|
||||
#if [[ "$TERM" == "xterm" ]] && [[ "$LINES" -ge 50 ]] && [[ "$COLUMNS" -ge 100 ]] && [[ -z "$SSH_CONNECTION" ]] ; then
|
||||
# large
|
||||
#fi
|
||||
|
||||
## Some quick Perl-hacks aka /useful/ oneliner
|
||||
#bew() { perl -le 'print unpack "B*","'$1'"' }
|
||||
#web() { perl -le 'print pack "B*","'$1'"' }
|
||||
#hew() { perl -le 'print unpack "H*","'$1'"' }
|
||||
#weh() { perl -le 'print pack "H*","'$1'"' }
|
||||
#pversion() { perl -M$1 -le "print $1->VERSION" } # i. e."pversion LWP -> 5.79"
|
||||
#getlinks () { perl -ne 'while ( m/"((www|ftp|http):\/\/.*?)"/gc ) { print $1, "\n"; }' $* }
|
||||
#gethrefs () { perl -ne 'while ( m/href="([^"]*)"/gc ) { print $1, "\n"; }' $* }
|
||||
#getanames () { perl -ne 'while ( m/a name="([^"]*)"/gc ) { print $1, "\n"; }' $* }
|
||||
#getforms () { perl -ne 'while ( m:(\</?(input|form|select|option).*?\>):gic ) { print $1, "\n"; }' $* }
|
||||
#getstrings () { perl -ne 'while ( m/"(.*?)"/gc ) { print $1, "\n"; }' $*}
|
||||
#showINC () { perl -e 'for (@INC) { printf "%d %s\n", $i++, $_ }' }
|
||||
#vimpm () { vim `perldoc -l $1 | sed -e 's/pod$/pm/'` }
|
||||
#vimhelp () { vim -c "help $1" -c on -c "au! VimEnter *" }
|
||||
|
||||
## END OF FILE #################################################################
|
@ -1,39 +0,0 @@
|
||||
#!/bin/sh
|
||||
# {{ ansible_managed }}
|
||||
|
||||
# Pretty uptime
|
||||
upSeconds="$(/usr/bin/cut -d. -f1 /proc/uptime)"
|
||||
mins=$((${upSeconds}/60%60))
|
||||
hours=$((${upSeconds}/3600%24))
|
||||
days=$((${upSeconds}/86400))
|
||||
UPTIME=`printf "%d jours, %02dh%02dm" "$days" "$hours" "$mins"`
|
||||
|
||||
# RAM
|
||||
RAM=`free -m | awk 'NR==2{printf "%s/%sMB (%.2f%%)\n", $3,$2,$3*100/$2 }'`
|
||||
DISK=`df -h | awk '$NF=="/"{printf "%d/%dGB (%s)\n", $3,$2,$5}'`
|
||||
|
||||
# Text font
|
||||
bold=$(tput bold)
|
||||
normal=$(tput sgr0)
|
||||
|
||||
# Logo
|
||||
cat << EOF
|
||||
[49m[K[0m
|
||||
[0m [48;5;160m[38;5;160m [48;5;124m[38;5;124m [48;5;160m[38;5;160m [0m [49m ${bold}Uptime${normal} : ${UPTIME}
|
||||
[0m [48;5;160m[38;5;160m [0m [49m ${bold}Mémoire${normal} : ${RAM}
|
||||
[0m [48;5;160m[38;5;160m [0m [48;5;231m[38;5;232m [0m [48;5;160m[38;5;160m [0m [49m ${bold}Disque racine${normal} : ${DISK}
|
||||
[0m [48;5;160m[38;5;160m [0m [48;5;231m[38;5;232m [0m [48;5;160m[38;5;160m [0m [49m
|
||||
[0m [48;5;160m[38;5;160m [48;5;124m[38;5;124m [48;5;160m[38;5;160m [0m [48;5;231m[38;5;232m [0m [48;5;160m[38;5;160m [48;5;52m[38;5;196m [0m [49m
|
||||
[0m [48;5;124m[38;5;124m [0m [48;5;160m[38;5;160m [0m [48;5;231m[38;5;232m [0m [48;5;231m[38;5;232m [0m [48;5;160m[38;5;160m [0m [49m
|
||||
[0m [48;5;160m[38;5;160m [0m [48;5;231m[38;5;232m [0m [48;5;231m[38;5;232m [0m [48;5;160m[38;5;160m [0m [48;5;124m[38;5;124m [0m[49m
|
||||
[0m [48;5;124m[38;5;124m [48;5;160m[38;5;160m [0m [48;5;188m[38;5;188m [48;5;231m[38;5;232m [0m [48;5;231m[38;5;232m [0m [48;5;160m[38;5;160m [0m[49m
|
||||
[0m [48;5;160m[38;5;160m [0m [48;5;160m[38;5;160m [48;5;231m[38;5;232m [0m [48;5;160m[38;5;160m [0m[49m
|
||||
[0m [48;5;160m[38;5;160m [0m [48;5;160m[38;5;160m [48;5;231m[38;5;232m [0m [48;5;160m[38;5;160m [0m[49m
|
||||
[0m [48;5;160m[38;5;160m [0m [48;5;231m[38;5;232m [0m [48;5;231m[38;5;232m [0m [48;5;160m[38;5;160m [0m [49m
|
||||
[0m [48;5;160m[38;5;160m [0m [48;5;231m[38;5;232m [0m [48;5;231m[38;5;232m [0m [48;5;160m[38;5;160m [0m [49m
|
||||
[0m [48;5;160m[38;5;160m [0m [48;5;231m[38;5;232m [0m [48;5;231m[38;5;232m [0m [48;5;160m[38;5;160m [0m [49m
|
||||
[0m [48;5;124m[38;5;124m [0m [48;5;160m[38;5;160m [0m [48;5;231m[38;5;232m [0m [48;5;231m[38;5;232m [0m [48;5;160m[38;5;160m [0m [49m
|
||||
[0m [48;5;160m[38;5;160m [0m [48;5;231m[38;5;232m [0m [48;5;231m[38;5;232m [48;5;160m[38;5;160m [0m [49m
|
||||
[0m [48;5;160m[38;5;160m [0m ${bold}Aurore${normal} [48;5;231m[38;5;232m [48;5;160m[38;5;160m [0m [49m
|
||||
|
||||
EOF
|
@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
# {{ ansible_managed }}
|
||||
uname -snrvm
|
@ -1,4 +0,0 @@
|
||||
---
|
||||
# Reconfigure locales when conf changes
|
||||
- name: Reconfigure locales
|
||||
command: dpkg-reconfigure locales -f noninteractive
|
@ -1,52 +0,0 @@
|
||||
---
|
||||
- name: Install basic tools
|
||||
apt:
|
||||
name:
|
||||
- apt # better than apt-get
|
||||
- aptitude # nice to have for Ansible
|
||||
- bash-completion # because bash
|
||||
- curl # better than wget
|
||||
- git # code versioning
|
||||
- htop # better than top
|
||||
- less # i like cats
|
||||
- sudo # i am god
|
||||
- tmux # better than screen
|
||||
- tree # create a graphical tree of files
|
||||
- vim # better than nano
|
||||
- molly-guard # prevent reboot
|
||||
- ntp # network time sync
|
||||
- emacs-nox # for maman
|
||||
update_cache: true
|
||||
register: apt_result
|
||||
retries: 3
|
||||
until: apt_result is succeeded
|
||||
|
||||
# Pimp my server
|
||||
- name: Customize motd
|
||||
copy:
|
||||
src: "update-motd.d/{{ item }}"
|
||||
dest: "/etc/update-motd.d/{{ item }}"
|
||||
mode: 0755
|
||||
loop:
|
||||
- 00-logo
|
||||
- 10-uname
|
||||
|
||||
- name: Remove Debian warranty motd
|
||||
file:
|
||||
path: /etc/motd
|
||||
state: absent
|
||||
|
||||
# Patriotisme
|
||||
- name: Ensure French UTF-8 locale exists
|
||||
locale_gen:
|
||||
name: fr_FR.UTF-8
|
||||
state: present
|
||||
|
||||
# Fix LC_CTYPE="C"
|
||||
- name: Select default locale
|
||||
debconf:
|
||||
name: locales
|
||||
question: locales/default_environment_locale
|
||||
value: fr_FR.UTF-8
|
||||
vtype: select
|
||||
notify: Reconfigure locales
|
6
roles/bind/handlers/main.yml
Normal file
6
roles/bind/handlers/main.yml
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
|
||||
- name: Restart bind
|
||||
service:
|
||||
name: bind9
|
||||
state: restarted
|
23
roles/bind/tasks/main.yml
Normal file
23
roles/bind/tasks/main.yml
Normal file
@ -0,0 +1,23 @@
|
||||
---
|
||||
|
||||
- name: Queries apt to install bind9
|
||||
apt:
|
||||
name:
|
||||
- bind9
|
||||
register: pkg_result
|
||||
retries: 3
|
||||
until: pkg_result is succeeded
|
||||
notify: Restart bind
|
||||
|
||||
- name: Deploy named local configuration
|
||||
template:
|
||||
src: 'named.conf.local.j2'
|
||||
dest: '/etc/bind/named.conf.local'
|
||||
notify: Restart bind
|
||||
|
||||
- name: Deploy per-site configuration
|
||||
template:
|
||||
src: 'db.j2'
|
||||
dest: '/var/lib/bind/{{ item.name }}/db'
|
||||
with_items: '{{ bind.domains }}'
|
||||
notify: Restart bind
|
21
roles/bind/templates/db.j2
Normal file
21
roles/bind/templates/db.j2
Normal file
@ -0,0 +1,21 @@
|
||||
$TTL 3600
|
||||
@ IN SOA dns {{ item.administrator }}. (
|
||||
{{ '%Y%m%d%H' | strftime }} ;Serial
|
||||
3600 ;Refresh
|
||||
1800 ;Retry
|
||||
3600000 ;Expire
|
||||
172800 ;Minimum
|
||||
)
|
||||
|
||||
{{ item.name }}. IN NS dns
|
||||
{{ item.name }}. IN NS slave
|
||||
{{ item.name }}. IN A {{ item.ipv4 }}
|
||||
{{ item.name }}. IN AAAA {{ item.ipv6 }}
|
||||
|
||||
dns IN A {{ item.ipv4 }}
|
||||
dns IN AAAA {{ item.ipv6 }}
|
||||
slave IN A {{ item.slave }}
|
||||
|
||||
{% for alias in item.aliases %}
|
||||
{{ alias }} IN CNAME @
|
||||
{% endfor %}
|
16
roles/bind/templates/named.conf.local.j2
Normal file
16
roles/bind/templates/named.conf.local.j2
Normal file
@ -0,0 +1,16 @@
|
||||
//
|
||||
// Do any local configuration here
|
||||
//
|
||||
|
||||
// Consider adding the 1918 zones here, if they are not used in your
|
||||
// organization
|
||||
//include "/etc/bind/zones.rfc1918";
|
||||
|
||||
{% for domain in bind.domains %}
|
||||
zone "{{ domain.name }}" {
|
||||
type master;
|
||||
file "/var/lib/bind/{{ domain.name }}/db";
|
||||
notify yes;
|
||||
allow-transfer { {{ domain.slave }}; };
|
||||
};
|
||||
{% endfor %}
|
36
roles/cli-utils/tasks/main.yml
Normal file
36
roles/cli-utils/tasks/main.yml
Normal file
@ -0,0 +1,36 @@
|
||||
---
|
||||
- name: Install cli utilities
|
||||
package:
|
||||
name:
|
||||
- bash
|
||||
- bash-completion
|
||||
- bat
|
||||
- git
|
||||
- sl
|
||||
- htop
|
||||
- tmux
|
||||
- tree
|
||||
register: pkg_result
|
||||
retries: 3
|
||||
until: pkg_result is succeeded
|
||||
become: yes
|
||||
when: user.root
|
||||
|
||||
- name: Create directory hierarchy
|
||||
file:
|
||||
path: '.config/{{ item }}'
|
||||
state: directory
|
||||
with_items:
|
||||
- 'git/'
|
||||
- 'bash/'
|
||||
|
||||
- name: Deploying config files
|
||||
template:
|
||||
src: '{{ item.src }}'
|
||||
dest: '{{ item.dest }}'
|
||||
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 }
|
41
roles/cli-utils/templates/bash_aliases.j2
Normal file
41
roles/cli-utils/templates/bash_aliases.j2
Normal file
@ -0,0 +1,41 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 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'
|
||||
|
||||
alias toilet='toilet -f mono12 --rainbow'
|
||||
|
||||
alias startx='exec startx'
|
||||
|
||||
alias gst='git status -s'
|
||||
|
||||
alias proxy='ssh -q -C -N -D 8080'
|
||||
alias wip='watch -c ip -c'
|
||||
|
||||
alias vi=vim
|
||||
alias cat=bat
|
||||
|
||||
# Add some emoji aliases
|
||||
alias 🦇=bat
|
||||
alias 🐈=cat
|
||||
alias 🚆=sl
|
||||
alias 🚂=sl
|
||||
alias 🚅=sl
|
||||
alias 💿=cd
|
57
roles/cli-utils/templates/bashrc.j2
Normal file
57
roles/cli-utils/templates/bashrc.j2
Normal file
@ -0,0 +1,57 @@
|
||||
[ -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
|
||||
|
13
roles/cli-utils/templates/gitconfig.j2
Normal file
13
roles/cli-utils/templates/gitconfig.j2
Normal file
@ -0,0 +1,13 @@
|
||||
[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
|
1
roles/cli-utils/templates/inputrc.j2
Normal file
1
roles/cli-utils/templates/inputrc.j2
Normal file
@ -0,0 +1 @@
|
||||
set mark-symlinked-directories on
|
25
roles/cli-utils/templates/tmux.conf.j2
Normal file
25
roles/cli-utils/templates/tmux.conf.j2
Normal file
@ -0,0 +1,25 @@
|
||||
unbind r
|
||||
bind r source-file ~/.tmux.conf
|
||||
|
||||
set -g mouse on
|
||||
|
||||
|
||||
# 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
|
40
roles/communication/tasks/main.yml
Normal file
40
roles/communication/tasks/main.yml
Normal file
@ -0,0 +1,40 @@
|
||||
---
|
||||
- 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
|
||||
become: yes
|
||||
|
||||
- name: Create lxappearance directory hierarchy
|
||||
file:
|
||||
path: '{{ item }}'
|
||||
state: directory
|
||||
with_items:
|
||||
- '.config/gtk-3.0/'
|
||||
- '.icons/default/'
|
||||
|
||||
- name: Enable dark mode for evolution
|
||||
template:
|
||||
src: '{{ item.src }}'
|
||||
dest: '{{ item.dest }}'
|
||||
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'}
|
||||
|
||||
- name: Create evolution config and cache parent directories
|
||||
file:
|
||||
path: '{{ item }}'
|
||||
state: directory
|
||||
with_items:
|
||||
- '.config/'
|
||||
- '.local/share/'
|
19
roles/communication/templates/gtkrc.j2
Normal file
19
roles/communication/templates/gtkrc.j2
Normal file
@ -0,0 +1,19 @@
|
||||
# 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-font-name="Monospace 8"
|
||||
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"
|
4
roles/communication/templates/index.theme.j2
Normal file
4
roles/communication/templates/index.theme.j2
Normal file
@ -0,0 +1,4 @@
|
||||
[Icon Theme]
|
||||
Name=Default
|
||||
Comment=Default Cursor Theme
|
||||
Inherits=Adwaita
|
16
roles/communication/templates/settings.ini.j2
Normal file
16
roles/communication/templates/settings.ini.j2
Normal file
@ -0,0 +1,16 @@
|
||||
[Settings]
|
||||
gtk-theme-name=Adwaita-dark
|
||||
gtk-icon-theme-name=Adwaita
|
||||
gtk-font-name=Monospace 8
|
||||
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
|
28
roles/i3/tasks/main.yml
Normal file
28
roles/i3/tasks/main.yml
Normal file
@ -0,0 +1,28 @@
|
||||
---
|
||||
|
||||
- name: Queries package manager for graphical instalation
|
||||
package:
|
||||
name:
|
||||
- i3-wm
|
||||
- i3blocks
|
||||
- i3status
|
||||
register: pkg_result
|
||||
become: yes
|
||||
retries: 3
|
||||
until: pkg_result is succeeded
|
||||
|
||||
- name: Create i3 configuration folder hierarchy
|
||||
file:
|
||||
path: '.config/{{ item }}'
|
||||
state: directory
|
||||
with_items:
|
||||
- i3/
|
||||
- i3status/
|
||||
|
||||
- name: Copy i3 configuration files
|
||||
template:
|
||||
src: '{{ item }}.j2'
|
||||
dest: '.config/{{ item }}/config'
|
||||
with_items:
|
||||
- i3
|
||||
- i3status
|
230
roles/i3/templates/i3.j2
Normal file
230
roles/i3/templates/i3.j2
Normal file
@ -0,0 +1,230 @@
|
||||
# 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 10
|
||||
bindsym XF86MonBrightnessUp exec light -A 10
|
||||
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
|
||||
|
||||
{% 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
|
||||
|
||||
# Screenshots
|
||||
bindsym Print exec scrot 'Pictures/Screenshots/%Y-%m-%d-%s.jpg'
|
||||
bindsym --release Shift+Print exec scrot -s "Pictures/Screenshots/$(ls Pictures/Screenshots/ | dmenu)"
|
||||
|
||||
|
||||
# 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
|
||||
}
|
61
roles/i3/templates/i3status.j2
Normal file
61
roles/i3/templates/i3status.j2
Normal file
@ -0,0 +1,61 @@
|
||||
# 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"
|
||||
format_down = ""
|
||||
}
|
||||
|
||||
wireless _first_ {
|
||||
format_up = "W:%essid"
|
||||
format_down = ""
|
||||
}
|
||||
|
||||
ethernet _first_ {
|
||||
format_up = "E: %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"
|
||||
}
|
||||
|
||||
volume master {
|
||||
format = "♪: %volume"
|
||||
format_muted = "♪: muted (%volume)"
|
||||
device = "pulse"
|
||||
}
|
||||
|
||||
read_file mpd {
|
||||
path = "/tmp/mpd.current"
|
||||
color_good = "#00FF99"
|
||||
format_bad = ""
|
||||
}
|
19
roles/mime/tasks/main.yml
Normal file
19
roles/mime/tasks/main.yml
Normal file
@ -0,0 +1,19 @@
|
||||
---
|
||||
|
||||
- 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
|
||||
|
||||
- name: Install default applications configuration file
|
||||
template:
|
||||
src: 'mimeapps.list.j2'
|
||||
dest: '.config/mimeapps.list'
|
17
roles/mime/templates/mimeapps.list.j2
Normal file
17
roles/mime/templates/mimeapps.list.j2
Normal file
@ -0,0 +1,17 @@
|
||||
|
||||
[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
|
||||
|
||||
|
30
roles/multimedia/tasks/main.yml
Normal file
30
roles/multimedia/tasks/main.yml
Normal file
@ -0,0 +1,30 @@
|
||||
---
|
||||
|
||||
- name: Queries package manager for multimedia installation
|
||||
package:
|
||||
name:
|
||||
- feh
|
||||
- mpv
|
||||
- vlc
|
||||
- zathura
|
||||
- zathura-pdf-poppler
|
||||
register: pkg_result
|
||||
retries: 3
|
||||
until: pkg_result is succeeded
|
||||
become: yes
|
||||
|
||||
- name: Create multimedia folder hierarchy
|
||||
file:
|
||||
path: '.config/{{ item }}'
|
||||
state: directory
|
||||
with_items :
|
||||
- 'mpv/'
|
||||
- 'zathura/'
|
||||
|
||||
- name: Copy multimedia configuration files
|
||||
template:
|
||||
src: '{{ item.src }}'
|
||||
dest: '.config/{{ item.dest }}'
|
||||
with_items:
|
||||
- { src: 'zathurarc.j2', dest: 'zathura/zathurarc' }
|
||||
- { src: 'mpv.conf.j2', dest: 'mpv/mpv.conf' }
|
28
roles/multimedia/templates/mpv.conf.j2
Normal file
28
roles/multimedia/templates/mpv.conf.j2
Normal file
@ -0,0 +1,28 @@
|
||||
##################
|
||||
# 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 @@
|
||||
set selection-clipboard clipboard
|
||||
set recolor true
|
||||
set recolor-lightcolor "#121212"
|
9
roles/navigateur/tasks/main.yml
Normal file
9
roles/navigateur/tasks/main.yml
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
- name: Queries package manager for browser installation
|
||||
package:
|
||||
name:
|
||||
- firefox
|
||||
register: pkg_result
|
||||
retries: 3
|
||||
until: pkg_result is succeeded
|
||||
become: yes
|
24
roles/notification/tasks/main.yml
Normal file
24
roles/notification/tasks/main.yml
Normal file
@ -0,0 +1,24 @@
|
||||
---
|
||||
|
||||
- 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
|
||||
become: yes
|
||||
|
||||
- name: Create dunst config directory
|
||||
file:
|
||||
path: '.config/dunst/'
|
||||
state: directory
|
||||
|
||||
- name: Copy dunst configuration file
|
||||
template:
|
||||
src: 'dunstrc.j2'
|
||||
dest: '.config/dunst/dunstrc'
|
||||
|
292
roles/notification/templates/dunstrc.j2
Normal file
292
roles/notification/templates/dunstrc.j2
Normal file
@ -0,0 +1,292 @@
|
||||
[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/handlers/main.yml
Normal file
7
roles/ntp/handlers/main.yml
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
|
||||
- name: restart ntpd.service
|
||||
service:
|
||||
name: ntpd
|
||||
state: restarted
|
||||
become: true
|
23
roles/ntp/tasks/main.yml
Normal file
23
roles/ntp/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
|
||||
become: yes
|
||||
notify: restart ntpd.service
|
||||
|
||||
- name: Deploy ntp configuration
|
||||
template:
|
||||
src: 'ntp.conf.j2'
|
||||
dest: '/etc/ntp.conf'
|
||||
become: yes
|
||||
notify: restart ntpd.service
|
||||
|
||||
- name: Enable ntp service
|
||||
service:
|
||||
name: ntpd
|
||||
enabled: yes
|
||||
become: true
|
25
roles/ntp/templates/ntp.conf.j2
Normal file
25
roles/ntp/templates/ntp.conf.j2
Normal file
@ -0,0 +1,25 @@
|
||||
# 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
|
16
roles/pass/tasks/main.yml
Normal file
16
roles/pass/tasks/main.yml
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
|
||||
- name: Queries package manager to install pass
|
||||
package:
|
||||
name:
|
||||
- pass
|
||||
- git
|
||||
register: pkg_result
|
||||
retries: 3
|
||||
until: pkg_result is succeeded
|
||||
become: yes
|
||||
|
||||
- name: Clone git pass repository
|
||||
git:
|
||||
repo: '{{ pass.upstream }}'
|
||||
dest: '{{ pass.dest }}'
|
30
roles/scripts/tasks/main.yml
Normal file
30
roles/scripts/tasks/main.yml
Normal file
@ -0,0 +1,30 @@
|
||||
---
|
||||
- name: Queries package manager for graphical instalation
|
||||
package:
|
||||
name:
|
||||
- scrot
|
||||
- network-manager-applet
|
||||
- acpi
|
||||
register: pkg_result
|
||||
retries: 3
|
||||
until: pkg_result is succeeded
|
||||
become: yes
|
||||
|
||||
- name: Clone scripts git repo
|
||||
git:
|
||||
repo: '{{ scripts.git }}'
|
||||
dest: '.local/src/scripts'
|
||||
|
||||
- name: Find scripts
|
||||
find:
|
||||
path: '.local/src/scripts'
|
||||
pattern: "*"
|
||||
register: scripts
|
||||
|
||||
- name: Link scripts
|
||||
file:
|
||||
src: '/home/{{ user.name }}/{{ item.path }}'
|
||||
dest: '.local/bin/{{ item.path | basename }}'
|
||||
state: link
|
||||
force: yes
|
||||
with_items: '{{ scripts.files }}'
|
28
roles/ssh/tasks/main.yml
Normal file
28
roles/ssh/tasks/main.yml
Normal file
@ -0,0 +1,28 @@
|
||||
---
|
||||
|
||||
- name: Create ssh directory
|
||||
file:
|
||||
path: '.ssh'
|
||||
mode: 0700
|
||||
state: directory
|
||||
|
||||
- name: Create ssh configuration file directory
|
||||
file:
|
||||
path: '.ssh/config.d'
|
||||
mode: 0755
|
||||
state: directory
|
||||
|
||||
- name: Deploying config files
|
||||
template:
|
||||
src: 'config.d/{{ item }}.j2'
|
||||
dest: '.ssh/config.d/{{ item }}'
|
||||
loop:
|
||||
- aurore
|
||||
- crans
|
||||
- dptinfo
|
||||
- perso
|
||||
|
||||
- name: Include config files
|
||||
template:
|
||||
src: 'config.j2'
|
||||
dest: '.ssh/config'
|
3
roles/ssh/templates/config.d/aurore.j2
Normal file
3
roles/ssh/templates/config.d/aurore.j2
Normal file
@ -0,0 +1,3 @@
|
||||
Host *.adm.auro.re
|
||||
User ynerant
|
||||
ProxyJump camelot.auro.re
|
13
roles/ssh/templates/config.d/crans.j2
Normal file
13
roles/ssh/templates/config.d/crans.j2
Normal file
@ -0,0 +1,13 @@
|
||||
Host freebox.crans.org titanic.adm.crans.org soyouz.crans.org ssh.crans.org zamok.crans.org zamok.adm.crans.org *.adh.crans.org note*.crans.org
|
||||
User ynerant
|
||||
|
||||
Host odlyd.crans.org odlyd 10.231.136.4
|
||||
User ynerant
|
||||
Hostname 10.231.136.4
|
||||
ProxyJump zamok.crans.org
|
||||
|
||||
Host 172.16.10.* 185.230.79.* *.adm.crans.org *.crans.org
|
||||
User _ynerant
|
||||
|
||||
Host 172.16.10.* *.adm.crans.org *.crans.org ynerant.fr !hodaur.crans.org !odlyd.crans.org !note*.crans.org
|
||||
ProxyJump hodaur.crans.org
|
6
roles/ssh/templates/config.d/dptinfo.j2
Normal file
6
roles/ssh/templates/config.d/dptinfo.j2
Normal file
@ -0,0 +1,6 @@
|
||||
Host *.dptinfo.ens-cachan.fr !ssh.dptinfo.ens-cachan.fr
|
||||
User danello
|
||||
ProxyJump ssh.dptinfo.ens-cachan.fr
|
||||
|
||||
Host ssh.dptinfo.ens-cachan.fr
|
||||
User danello
|
4
roles/ssh/templates/config.d/perso.j2
Normal file
4
roles/ssh/templates/config.d/perso.j2
Normal file
@ -0,0 +1,4 @@
|
||||
Host main
|
||||
User ynerant
|
||||
Hostname ynerant-pc.fil.sand.auro.re
|
||||
ProxyJump camelot.auro.re
|
1
roles/ssh/templates/config.j2
Normal file
1
roles/ssh/templates/config.j2
Normal file
@ -0,0 +1 @@
|
||||
Include ~/.ssh/config.d/*
|
12
roles/sudo/tasks/main.yml
Normal file
12
roles/sudo/tasks/main.yml
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
|
||||
- name: Deploy sudoers configuration files
|
||||
template:
|
||||
src: '{{ item.src }}.j2'
|
||||
dest: '/etc/{{ item.src }}'
|
||||
mode: '{{ item.mode }}'
|
||||
with_items:
|
||||
- { src: 'sudoers', mode: '0440' }
|
||||
- { src: 'sudoers.lecture', mode: '0644' }
|
||||
become: yes
|
||||
|
101
roles/sudo/templates/sudoers.j2
Normal file
101
roles/sudo/templates/sudoers.j2
Normal file
@ -0,0 +1,101 @@
|
||||
## sudoers file.
|
||||
##
|
||||
## This file MUST be edited with the 'visudo' command as root.
|
||||
## Failure to use 'visudo' may result in syntax or file permission errors
|
||||
## that prevent sudo from running.
|
||||
##
|
||||
## See the sudoers man page for the details on how to write a sudoers file.
|
||||
##
|
||||
|
||||
##
|
||||
## Host alias specification
|
||||
##
|
||||
## Groups of machines. These may include host names (optionally with wildcards),
|
||||
## IP addresses, network numbers or netgroups.
|
||||
# Host_Alias WEBSERVERS = www1, www2, www3
|
||||
|
||||
##
|
||||
## User alias specification
|
||||
##
|
||||
## Groups of users. These may consist of user names, uids, Unix groups,
|
||||
## or netgroups.
|
||||
# User_Alias ADMINS = millert, dowdy, mikef
|
||||
|
||||
##
|
||||
## Cmnd alias specification
|
||||
##
|
||||
## Groups of commands. Often used to group related commands together.
|
||||
# Cmnd_Alias PROCESSES = /usr/bin/nice, /bin/kill, /usr/bin/renice, \
|
||||
# /usr/bin/pkill, /usr/bin/top
|
||||
# Cmnd_Alias REBOOT = /sbin/halt, /sbin/reboot, /sbin/poweroff
|
||||
|
||||
##
|
||||
## Defaults specification
|
||||
##
|
||||
## You may wish to keep some of the following environment variables
|
||||
## when running commands via sudo.
|
||||
##
|
||||
## Locale settings
|
||||
# Defaults env_keep += "LANG LANGUAGE LINGUAS LC_* _XKB_CHARSET"
|
||||
##
|
||||
## Run X applications through sudo; HOME is used to find the
|
||||
## .Xauthority file. Note that other programs use HOME to find
|
||||
## configuration files and this may lead to privilege escalation!
|
||||
# Defaults env_keep += "HOME"
|
||||
##
|
||||
## X11 resource path settings
|
||||
# Defaults env_keep += "XAPPLRESDIR XFILESEARCHPATH XUSERFILESEARCHPATH"
|
||||
##
|
||||
## Desktop path settings
|
||||
# Defaults env_keep += "QTDIR KDEDIR"
|
||||
##
|
||||
## Allow sudo-run commands to inherit the callers' ConsoleKit session
|
||||
# Defaults env_keep += "XDG_SESSION_COOKIE"
|
||||
##
|
||||
## Uncomment to enable special input methods. Care should be taken as
|
||||
## this may allow users to subvert the command being run via sudo.
|
||||
# Defaults env_keep += "XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER"
|
||||
##
|
||||
## Uncomment to use a hard-coded PATH instead of the user's to find commands
|
||||
# Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
||||
##
|
||||
## Uncomment to send mail if the user does not enter the correct password.
|
||||
# Defaults mail_badpass
|
||||
##
|
||||
## Uncomment to enable logging of a command's output, except for
|
||||
## sudoreplay and reboot. Use sudoreplay to play back logged sessions.
|
||||
# Defaults log_output
|
||||
# Defaults!/usr/bin/sudoreplay !log_output
|
||||
# Defaults!/usr/local/bin/sudoreplay !log_output
|
||||
# Defaults!REBOOT !log_output
|
||||
|
||||
##
|
||||
## Runas alias specification
|
||||
##
|
||||
|
||||
##
|
||||
## User privilege specification
|
||||
##
|
||||
root ALL=(ALL) ALL
|
||||
|
||||
## Uncomment to allow members of group wheel to execute any command
|
||||
%wheel ALL=(ALL) ALL
|
||||
|
||||
## Same thing without a password
|
||||
# %wheel ALL=(ALL) NOPASSWD: ALL
|
||||
|
||||
## Uncomment to allow members of group sudo to execute any command
|
||||
# %sudo ALL=(ALL) ALL
|
||||
|
||||
## Uncomment to allow any user to run sudo if they know the password
|
||||
## of the user they are running the command as (root by default).
|
||||
# Defaults targetpw # Ask for the password of the target user
|
||||
# ALL ALL=(ALL) ALL # WARNING: only use this together with 'Defaults targetpw'
|
||||
|
||||
Defaults lecture=always
|
||||
Defaults lecture_file=/etc/sudoers.lecture
|
||||
# toilet -f future --rainbow 'BE NICE' > sudoers.lecture.j2
|
||||
|
||||
## Read drop-in files from /etc/sudoers.d
|
||||
## (the '#' here does not indicate a comment)
|
||||
#includedir /etc/sudoers.d
|
3
roles/sudo/templates/sudoers.lecture.j2
Normal file
3
roles/sudo/templates/sudoers.lecture.j2
Normal file
@ -0,0 +1,3 @@
|
||||
[0;1;35;95m┏┓[0m [0;1;31;91m┏[0;1;33;93m━╸[0m [0;1;36;96m┏[0;1;34;94m┓╻[0;1;35;95m╻┏[0;1;31;91m━╸[0;1;33;93m┏━[0;1;32;92m╸[0m
|
||||
[0;1;31;91m┣┻[0;1;33;93m┓┣[0;1;32;92m╸[0m [0;1;34;94m┃[0;1;35;95m┗┫[0;1;31;91m┃┃[0m [0;1;32;92m┣╸[0m
|
||||
[0;1;33;93m┗━[0;1;32;92m┛┗[0;1;36;96m━╸[0m [0;1;35;95m╹[0m [0;1;31;91m╹[0;1;33;93m╹┗[0;1;32;92m━╸[0;1;36;96m┗━[0;1;34;94m╸[0m
|
19
roles/systemd/tasks/main.yml
Normal file
19
roles/systemd/tasks/main.yml
Normal file
@ -0,0 +1,19 @@
|
||||
---
|
||||
|
||||
- name: Deploy logind configuration
|
||||
template:
|
||||
src: 'logind.conf.j2'
|
||||
dest: '/etc/systemd/logind.conf'
|
||||
become: yes
|
||||
|
||||
- name: Create autologin directory on tty1
|
||||
file:
|
||||
path: '/etc/systemd/system/getty@tty1.service.d'
|
||||
state: directory
|
||||
become: yes
|
||||
|
||||
- name: Copy autologin template file
|
||||
template:
|
||||
src: 'override.conf.j2'
|
||||
dest: '/etc/systemd/system/getty@tty1.service.d/override.conf'
|
||||
become: yes
|
37
roles/systemd/templates/logind.conf.j2
Normal file
37
roles/systemd/templates/logind.conf.j2
Normal file
@ -0,0 +1,37 @@
|
||||
# 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
|
3
roles/systemd/templates/override.conf.j2
Normal file
3
roles/systemd/templates/override.conf.j2
Normal file
@ -0,0 +1,3 @@
|
||||
[Service]
|
||||
ExecStart=
|
||||
ExecStart=-/usr/bin/agetty --autologin {{ user.name }} --noclear %I $TERM
|
20
roles/terminal/tasks/main.yml
Normal file
20
roles/terminal/tasks/main.yml
Normal file
@ -0,0 +1,20 @@
|
||||
---
|
||||
|
||||
- name: Queries package manager for terminal installation
|
||||
package:
|
||||
name:
|
||||
- xfce4-terminal
|
||||
register: pkg_result
|
||||
retries: 3
|
||||
until: pkg_result is succeeded
|
||||
become: yes
|
||||
|
||||
- name: Create xfce4 terminal config directory
|
||||
file:
|
||||
path: '.config/xfce4/terminal/'
|
||||
state: directory
|
||||
|
||||
- name: Copy xfce4-terminal configuration file
|
||||
template:
|
||||
src: 'terminalrc.j2'
|
||||
dest: '.config/xfce4/terminal/terminalrc'
|
35
roles/terminal/templates/terminalrc.j2
Normal file
35
roles/terminal/templates/terminalrc.j2
Normal file
@ -0,0 +1,35 @@
|
||||
[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 8
|
||||
ShortcutsNoMnemonics=TRUE
|
||||
ShortcutsNoHelpkey=TRUE
|
||||
ScrollingOnOutput=FALSE
|
||||
|
9
roles/texlive/tasks/main.yml
Normal file
9
roles/texlive/tasks/main.yml
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
|
||||
- name: Queries package manager for texlive most
|
||||
package:
|
||||
name: texlive-most
|
||||
register: pkg_result
|
||||
retries: 3
|
||||
until: pkg_result is succeeded
|
||||
become: yes
|
16
roles/vim/tasks/main.yml
Normal file
16
roles/vim/tasks/main.yml
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
|
||||
- name: Queries package manager for vim installation
|
||||
package:
|
||||
name:
|
||||
- vim
|
||||
register: pkg_result
|
||||
retries: 3
|
||||
until: pkg_result is succeeded
|
||||
become: yes
|
||||
when: user.root
|
||||
|
||||
- name: Deploying config files
|
||||
template:
|
||||
src: 'vimrc.j2'
|
||||
dest: '.vimrc'
|
46
roles/vim/templates/vimrc.j2
Normal file
46
roles/vim/templates/vimrc.j2
Normal file
@ -0,0 +1,46 @@
|
||||
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\+$/
|
||||
|
||||
set tw=80
|
84
roles/xorg/tasks/main.yml
Normal file
84
roles/xorg/tasks/main.yml
Normal file
@ -0,0 +1,84 @@
|
||||
---
|
||||
- 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-server
|
||||
- xss-lock
|
||||
register: pkg_result
|
||||
retries: 3
|
||||
until: pkg_result is succeeded
|
||||
become: yes
|
||||
|
||||
- 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
|
||||
become: yes
|
||||
|
||||
- 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
|
||||
become: yes
|
||||
|
||||
- name: Copy user configuration files
|
||||
template:
|
||||
src: 'xinitrc.j2'
|
||||
dest: '.xinitrc'
|
||||
|
||||
- name: Copy touchpad configuration
|
||||
template:
|
||||
src: '30-touchpad.conf.j2'
|
||||
dest: '/etc/X11/xorg.conf.d/30-touchpad.conf'
|
||||
become: yes
|
||||
|
||||
- name: Change backlight property # doing some shifty things
|
||||
file:
|
||||
path: '/sys/class/backlight/intel_backlight/brightness'
|
||||
group: video
|
||||
mode: '0664'
|
||||
become: yes
|
||||
|
||||
- name: Gives user the good group
|
||||
user:
|
||||
name: ynerant
|
||||
groups: video
|
||||
append: yes
|
||||
become: yes
|
||||
|
||||
- name: Create autorandr configuration folder
|
||||
file:
|
||||
path: '~/.config/autorandr'
|
||||
state: directory
|
||||
|
||||
- name: Install autorandr postswitch configuration file
|
||||
template:
|
||||
src: 'postswitch.j2'
|
||||
dest: '~/.config/autorandr/postswitch'
|
||||
mode: '0755'
|
||||
|
||||
- name: Enable autorandr service
|
||||
service:
|
||||
name: autorandr
|
||||
enabled: yes
|
||||
become: true
|
6
roles/xorg/templates/30-touchpad.conf.j2
Normal file
6
roles/xorg/templates/30-touchpad.conf.j2
Normal file
@ -0,0 +1,6 @@
|
||||
Section "InputClass"
|
||||
Identifier "touchpad"
|
||||
Driver "libinput"
|
||||
MatchIsTouchpad "on"
|
||||
Option "Tapping" "on"
|
||||
EndSection
|
3
roles/xorg/templates/postswitch.j2
Normal file
3
roles/xorg/templates/postswitch.j2
Normal file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
~/.fehbg
|
13
roles/xorg/templates/xinitrc.j2
Normal file
13
roles/xorg/templates/xinitrc.j2
Normal file
@ -0,0 +1,13 @@
|
||||
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…
Reference in New Issue
Block a user