Giter Club home page Giter Club logo

dotfiles's Introduction

dotfiles

Personal configuration files. Tested on Ubuntu 14.04 LTS and managed using GNU Stow.

Summary

This repository contains configuration files for the following:

Dependencies

Some configuration files rely on external modules in order to work appropriately. For example, in order to use the suggested bash prompt, a set of support scripts and a set of themes have to be downloaded.

Additionally, in many cases, such as vim and bash prompt, nerd-fonts are used. The dependencies mentioned above are either listed as submodules or downloaded automatically using the install script explained below.

Installation

One-Liner (Experimental)

Clone with HTTPS:

curl -L https://raw.githubusercontent.com/mkofinas/dotfiles/master/download_install.sh | bash

Or, if you prefer, clone with SSH:

curl -L https://raw.githubusercontent.com/mkofinas/dotfiles/master/download_install.sh | bash /dev/stdin -s

You can also specify the directory you wish to install the dotfiles (e.g. .dotfiles):

curl -L https://raw.githubusercontent.com/mkofinas/dotfiles/master/download_install.sh | bash /dev/stdin -s .dotfiles

Manual Installation

Clone the repo to a directory of your choice and use the install.sh script in order to configure and install everything. Clone as .dotfiles if you want to make it hidden.

git clone --recursive https://github.com/mkofinas/dotfiles.git dotfiles
cd dotfiles
./install.sh

Implementation Details

To actually use the configuration files, install.sh creates a backup of the already existing dotfiles and then creates symbolic links to the right place using GNU Stow.

The installation script defines the packages to be installed using declarative arrays (i.e. dictionaries) as follows:

declare -A dotfiles_packages
# ...
dotfiles_packages["neovim"]=${XDG_CONFIG_HOME:-${HOME}/.config}
# ...

You might want to take a look at the packages to be installed and modify the installation script according to your needs, by simply commenting out or adding packages.

XDG Base Directory Specification

Whenever possible, I try to follow the XDG Base Directory Specification to organize my dotfiles, in order to avoid the pollution of my entire HOME directory. Towards the organization of software following XDG specification, I recommend taking a look at the Arch Linux wiki.

Adding new Neovim plugins

This repo uses Vim-Plug as a plugin manager for Neovim.

To manage plugins, simply add a vim-plug section to your ~/.config/nvim/init.vim:

  1. Begin the section with plug#begin()
  2. List the plugins with Plug commands
  3. plug#end() to update &runtimepath and initialize plugin system

Then, reload your configuration file and run :PlugInstall. To update existing plugins run :PlugUpdate.

To install from command line: nvim -c 'PlugInstall'

For more information, visit the Vim-Plug example.

dotfiles's People

Contributors

mkofinas avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

dotfiles's Issues

Comply to the XDG Base Directory Specification when possible

The XDG Base Directory Specification instructs that configuration files should be stored in $XDG_CONFIG_HOME, an environment variable that defaults to $HOME/.config. Additionally, user specific data files should be stored in $XDG_DATA_HOME which defaults to $HOME/.local/share. Finally, user specific non-essential data files should be stored in $XDG_CACHE_HOME which defaults to $HOME/.cache. The Arch Linux Wiki page https://wiki.archlinux.org/index.php/XDG_Base_Directory_support has a set of instructions for a great number of software.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.