Skip to content

davidmogar/mr-meeseeks

Repository files navigation

An Ansible playbook to configure a Fedora workstation

UsageRolesThemingLicense

This Ansible playbook installs and maintain all the packages and dotfiles I use in my development environment. It is based on roles and prepared to work over a fresh Fedora minimal installation.

Usage

The following command is all you need to have it ready to roll:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/davidmogar/mr-meeseeks/main/mr-meeseeks.sh)"

And in case of using wget:

sh -c "$(wget -O- https://raw.githubusercontent.com/davidmogar/mr-meeseeks/main/mr-meeseeks.sh)"

Applying a specific profile and/or tag

A specific profile can be applied by setting the PROFILE variable before the bootstraping commands. The definition of these profiles can be found in the host_vars directory. If no profile is specified, the generic profile will be applied. The following example shows how to use this variable:

PROFILE=zoidberg sh -c "$(curl -fsSL https://raw.githubusercontent.com/davidmogar/mr-meeseeks/main/mr-meeseeks.sh)"

It is also possible to run only specifc parts by using the --tags options. For example, the following command will only run the bootstrap tasks, which will prepare the repositories and install some required packages:

PROFILE=zoidberg TAGS=bootstrap sh -c "$(curl -fsSL https://raw.githubusercontent.com/mr-meeseeks/main/mr-meeseeks.sh)"

Running the playbook manually

Once the system has been bootstrapped, a copy of the git repository will be placed in ${HOME}/.ansible/dotfiles. To apply the playbook manually from that repository, execute the following commands:

cd ~/.ansible/dotfiles
git pull origin main
ansible-playbook -i inventory playbook.yml --diff [--limit PROFILE] [--tags TAGS] --ask-become-pass

Note that both, limit and tags, are optional arguments.

Roles

Name Description
alacritty Installs Alacritty.
bluetooth Configures bluetooth.
bspwm Installs bspwm and set up the wallpaper by using feh.
chrome Installs Chrome.
cli-utilities Installs a curated list of CLI utilities.
dunst Configures system notifications to use dunst. The flag enable-native-notifications is required to get native notifications with Chrome.
feh Installs feh. This roles provides an script to set the theme wallpapers. The script is used by bspwm.
fonts Installs a curated list of fonts.
irssi Installs irssi.
neovim Installs Neovim.
picom Installs picom compositor.
polybar Installs polybar.
rofi Installs rofi.
sound Installs pipewire and configure Alsa.
sdkman Installs sdkman
sudo Configures sudoers file.
sxhkd Installs sxhkd and sets key bindings.
vscode Installs VS Code.
xdg-user-dirs Configures default directories, allowing to point them to external volumes.
xorg Installs Xorg.
wifi Install wifi related packages.
zsh Installs zsh along with autosuggestions and syntax-highlighting plugins.

Theming

Some of the roles defined above allow to change their theme, affecting the look of the installed applications. This theme can be selected by defining an existing value for the theme_name variable:

theme_name: redhat

The list of available themes can be checked by listing the files inside the files/themes directory in any customizable role such as alacritty.

License

This project is under the GNU General Public License v3.0. Check LICENSE file to see the full text full text.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published