Description¶
Ansible role to apply the ultimate madvillain configuration.
This is capable of:
- Upgrade the system.
- Add apt repository sources.
- Update the apt cache.
- Uninstall apt packages.
- Install apt packages.
- Install yarn packages.
- Install pip packages.
- Apply system-wide configuration using git.
- Stop services and disable them.
- Enable services and restart them.
- Create users.
- Add users to groups.
- Apply user-wide configuration using git.
- Run custom user tasks.
By default this role applies the following configuration:
- Installs the base software:
- apt-transport-https
- bzip2
- ca-certificates
- curl
- sudo
- unrar-free
- unzip
- vim
- wget
- xz-utils
- Install the desktop software:
- audacity
- easytag
- ffmpeg
- gedit
- gimp
- gnome
- gparted
- inkscape
- kdenlive
- keepassx
- obs-studio
- rhythmbox
- vlc
- Installs the base developer software:
- bats
- bchunks
- build-essential
- emacs
- flac
- git
- libtext-csv-perl
- make
- meld
- retext
- ssh-askpass
- texlive-bibtex-extra
- texlive-latex-base
- texlive-latex-extra
- tree
- Installs the python developer software:
- Via apt:
- direnv
- python3
- python3-pip
- python3-pytest
- python3-venv
- python3-virtualenv
- tox
- Via pip:
- ansible-lint
- autopep8
- flake8
- jedi
- poetry
- sphinx
- sphinx_rtd_theme
- rope
- yapf
- Installs the microcontroller developer software:
- Via apt:
- clang
- fritzing
- fritzing-data
- fritzing-parts
- python3
- python3-pip
- Via pip:
- platformio
- Installs the madvillain software:
- docker
- docker.io
- docker-compose
- qemu-kvm
- virt-manager
- Configures the base software:
- vim
- Creates a .vimrc configuration file on each user home directory.
- Enable syntax highlight.
- Set two spaces instead of tabs.
- Configures the desktop software:
- emacs
- Creates a .emacs.d configuration folder on each user home directory.
- Enable line numbers.
- Set themes folder.
- Set wintermute theme.
- Use spaces instead of tabs.
- Configures the base developer software:
- emacs
- Creates a .emacs.d configuration folder on each user home directory.
- Enable line numbers.
- Set themes folder.
- Set wintermute theme.
- Use spaces instead of tabs.
- Configures the python developer software:
- direnv
- Enable direnv command on ~/.bashrc file.
- emacs
- C-c C-c: Evaluates the current script.
- C-RET (Enter): Evaluates the curren statement (current line plus the
- following nested line).
- C-c C-z: Switches between your script and the interactive shell.
- C-c C-d: Displays documentation for the thing under cursor (function or module). The documentation will pop in a different buffer, can be closed with q.
- C-c C-t: Run pytest tests.
- M-x tox-current-test: Run tox tests for current test.
- M-x tox-current-class: Run tox tests for current class.
- M-x pdb: Run PDB on a new window.
- C-x: Set breakpoint on current line.
- poetry
- Add poetry path to the ~/.profile file to maintain dependecies isolated.
- Enable elpy virtual enviroments on the ~/.bashrc file.
- Configures the microcontroller developer software:
- emacs
- Set platformio plugin plugin.
- Set keybindings:
- C-c i b: Build the project without auto-uploading.
- C-c i c: Clean compiled objects.
- C-c i u: Build and upload.
- groups - Adds users to the groups:
- dialout.
- udev - Adds the rules file /etc/udev/rules.d/99-platformio-udev.rules.
- Configures the madvillain software:
- ~/.bashrc
- Adds the changes bash alias to quickly visualize repositories that were modified.
- Adds the runit bash alias to quickly run an Ansible playbook.
- Adds the gic bash alias to quickly make a git commit and push (lazy lazy villain).
- Adds the fixit bash alias to quickly set monitors display.
- gdm3
- Disables the Wayland protocol.
- gnome
- Sets the dock to include the launchers:
- emacs
- firefox.
- libre-office writer.
- nautilus
- rhythmbox
- terminal.
- nautilus
- Adds the following folder bookmarks:
- little-lab
- repos
- virt
- Adds each user to the following groups:
- libvirt
- libvirt-qemu
- kvm
- Creates the following home directory layout:
home/ ├── little-lab ├── repos ├── .emacs.d │ ├── config │ │ ├── base.el │ │ ├── org.el │ │ └── python.el │ ├── init.el │ └── themes │ └── wintermute-theme.el └── .vimrc
- Modifies the following files:
home/ ├── .bashrc ├── .config/gtk-3.0/bookmarks └── .profile