+
Skip to content
This repository was archived by the owner on Mar 9, 2024. It is now read-only.

aneveux/dotfiles

Repository files navigation

.files / environment bootstrap

Hi there! This whole repository contains all the resources I'm using in order to install and configure my development environment.

There's basically nothing too fancy, but I'm glad it helps in case you're searching to do something a bit similar. Otherwise, it'll help me at least ;)

1. Installing Operating System

I'm using Manjaro, a Linux distribution based on Arch.

It's fairly easy to install, and you'll get all the information from their Download Page.

2. Cloning dotfiles

In case you don't have git installed already, you can simply install it quickly from pacman through sudo pacman -S git, but it should be present by default I believe.

Then, the only thing you want to do is to clone that project in your HOME folder (basically ~/, which means something like /home/<your username>).

You can do that with git clone git@github.com:aneveux/dotfiles.git

3. Installing software

From the dotfiles directory, you can execute the following script: ./install_software.sh which will rely on pacman and yaourt in order to install all the software I'm using on my Linux installation (or most of it at least).

Among lots of others, it'll take care of installing i3, the Window Manager I'm using. It'll also change the shell to Fish Shell.

Do not hesitate to have a look at the script to see all the things which will be installed.

4. Customizing some configuration

There are a few things you can customize easily from this repository:

  • Update the me file to match with your user id, it's used only for zsh though, which I'm not using that much.
  • Create a local folder in the dotfiles repository, it's ignored by git, and will allow you to store some local configuration values.
  • Create a gitconfig_user file in that local folder, in which you can store the user section of your ~/.gitconfig file. It allows you to keep that local. (the gitconfig file will be generated later on).
  • Create a monitor_configuration file in the local folder, in which you can specify xrandr commands to be executed by i3 while starting up to configure your monitors.
  • Create a sshconfig file in the local folder, in which you can add any personal SSH configuration you'd have.

As an example, here's how the gitconfig_user could look:

[user]
    name = <Your Name Here>
    email = <Your Mail Here>

5. Provisionning dotfiles (and a bit more)

I'm relying on dotbot for that. You can have a look at install.conf.yaml for more information on what's done.

It'll basically install some stuff (a few fonts, zsh, vim plugins, sdkman, etc.), and then create symlinks to all the dotfiles which are required to configure those tools.

The gitconfig file will be generated during that step as well.

In order to actually perform this step, simply run ./install.sh from the dotfiles folder.

6. Configuring SSH (additional steps)

In order to load automatically my SSH keys in a running agent, and to share those with all the software I'm using, you'll need a small additional SSH configuration. Some files will be populated by dotbot, and then you'll need to execute:

$ systemctl --user enable ssh-agent.service
$ systemctl --user start ssh-agent.service

You can verify that it's working properly by executing:

$ systemctl --user status ssh-agent.service

Your ~/.ssh/config file will be generated by the provisioning, and will contain some configuration allowing to remember the keys you're using. You can complete your SSH config with a local file, see information above for more information.

All of this will allow to start an SSH agent while your environment is starting up, and then store the keys which are loaded in that agent when they're used for the first time.

7. Installing SDKs

I'm relying on SDKMan for installing all the SDKs I need. It'll be installed directly by dotbot, so now you only need to use it for installing what you need.

On my side, I'm using it for:

$ sdk install java
$ sdk install kotlin
$ sdk install groovy
$ sdk install maven
$ sdk install gradle

Note that it'll also take care of managing all the required environment variables such as JAVA_HOME and so on.

8. Installing omf plugins

I'm using Oh My Fish! for some fish themes and plugins. The installation is managed by the dotfiles provisioning, but you'll have to run omf install in order to download all the plugins and themes. All the configuration is already set up by the dotfiles.

9. Installing Sublime

My main text editor is Sublime (even if I'm using Atom or vim sometimes). Here are the steps to follow to install and configure it:

  1. Download it from here: Sublime Text 3
  2. Extract the archive content in ~/tools: tar jxf sublime_text_3_....tar.bz2 -C ~/tools/sublime_text_3
  3. Install Package Control for Sublime Text 3 from here: Package Control
  4. Packages I install from Package Control:
  • A File Icon
  • AceJump
  • Ansible
  • Ansible Vault
  • Ayu
  • Color Highlighter
  • ColorPicker
  • fish-shell
  • Git
  • Git Config
  • i3 wm
  • JavaScript Ultimate
  • MarkDown Preview
  • Origami
  • Pretty YAML
  • Shell Exec

Then the whole configuration is made by the dotfiles.

10. Installing IntelliJ IDEA

I'm using IntelliJ IDEA as my IDE. Download it directly from the JetBrains website.

I'm not using the version available in AUR cause I like to update it as soon as possible and always use the latest version possible, which is delayed a bit by the AUR packaging.

Here's a list of all the IDEA plugins I'm installing:

  • AceJump
  • BashSupport
  • CheckMate
  • Docker Integration
  • Error-Prone compiler integration
  • FindBugs-IDEA
  • GitToolBox
  • .ignore
  • GitLab Projects
  • Ansible Support
  • Java8 Generators
  • Kotlin
  • Scala
  • Lombok
  • Markdown Support
  • Maven Helper
  • Presentation Assistant
  • Upsource Integration

All my configuration is available in a separate github repository though: https://github.com/aneveux/idea-settings. Which is used directly by IntelliJ settings manager in order to synchronize my configuration across all the installation I have.

11. Contributing local fish functions

From the ~/dotfiles/local directory, you can create a fish folder containing as much functions as you'd like, and those we'll be loaded while your shell is starting. This means you can have some local functions that you're not sharing on the repository.

An example would be something like: ~/dotfiles/local/fish/validate.fish which would let you run validate from your shell without sharing the actual file. Useful when writing some pretty personal commands :)

Updates

For updating the submodules, use this command: git submodule update --remote dotbot. You can replace dotbot by the name of the submodule you want to update.

If you modify the files which are already symlinked, you have nothing to do for updating your environment.

If you add more files, simply run again that ./install.sh script and it'll set up the links for you.

Resources

Here are links towards really interesting tools/resources I'm using:

And some useless, but absolutely necessary resources:

Thanks!

I really wanted to thank all those really nice projects/people for the great help/inspiration:

As well as all the really nice tools I already mentionned before :)

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载