Skip to content

Latest commit

 

History

History
97 lines (61 loc) · 4.9 KB

README.md

File metadata and controls

97 lines (61 loc) · 4.9 KB

Dotfiles Installation

In order to use the configurations in this repository, there are couple steps that needs to be done.

Table of Contents

Disclaimer

The configuration for my dotfiles is written in a way that most of the tools are installed locally under $HOME. While the setup of this approach is more complex compared to dumping everything to /usr/local/bin, it makes the host configuration a lot more maintainable and easier to understand.

However, there are some tools which had to be installed globally, such as zsh and tmux.

Before continuing with the setup, let me say that the intended usage of this repository is on a host without any pre-existing configurations. And since a local development environment varies from person to person, I would encourage you to automate your own local environment and consider this repository as a reference, instead of installing my dotfiles directly.

If you still want to try it out, do not forget to create a backup of your old configuration in case of conflicts.

Limitations

Unfortunately, there are some limitations regarding the supported operating systems and architectures.

  • Any Linux host with arm64 architecture is not supported for now. This is due to the fact that Neovim does not have an arm64 Linux binary.
  • In line with the previous point, any Linux host is considered to have amd64 architecture, and any Darwin host is considered to have arm64 architecture. If your host does not fall into either, then the installation won't work.

As a last point, currently the operating systems below are supported:

  • amd64 Ubuntu 24.04
  • arm64 MacOS

The closest support will be for Fedora, but the rest have to wait due to the current needs.

If you pass all these limitations, feel free to continue reading.

Required Tools

The setup of this dotfiles are written in Ansible, and tested on a Ubuntu 24.04 Vagrant VM. Therefore, you absolutely need to install Ansible before starting.

If you want to dive deep in to the main playbook and test it, you need to install Vagrant as well.

Clone the Repository

With the tools installed and ready to go, it's time to clone the repository.

This repository is designed to be under $HOME/.config, so ensure that the directory exists and clone the repository there:

mkdir ~/.config
git clone [email protected]:acikgozb/dotfiles.git ~/.config

The clone part is pretty standard, if the directory is empty it should work without any issues.

setup Directory

The main installation and configuration of your host happens under ~/.config/setup directory. This is the main place where our Ansible playbook lives, along with anything it needs.

If you have had an experience working with Ansible, this directory will feel familiar to you.

To start the setup process, simply cd into setup directory and run make setup:

cd ~/.config/setup
make setup

Some tasks need to be run via elevated privileges, therefore Ansible will ask the password of the $USER. Enter your password and then the installation starts.

List of Ansible Roles

If you wish to check out each role to understand how the installation work, here is a list of the roles used in Ansible setup playbook:

Post Installation

Once the installation has completed (no errors from Ansible playbook), simply restart your Terminal session and you are good to go.

I use Kitty as my main Terminal, so you can open that up as well if you wish!