Giter VIP home page Giter VIP logo

iyyel / dotfiles Goto Github PK

View Code? Open in Web Editor NEW
5.0 1.0 0.0 109.8 MB

๐Ÿ“š Linux configuration files

Home Page: https://iyyel.io

License: Other

Shell 98.65% Python 0.68% Vim Script 0.67%
linux dotfiles dotfiles-install dotfiles-resources scripts personal-dotfiles unix nix rice ricing symlinks stow configuration-management configuration-files dotfiles-linux dotfiles-automation stow-commands

dotfiles's Introduction

      _       _    __ _ _           
     | |     | |  / _(_) |          
   __| | ___ | |_| |_ _| | ___  ___ 
  / _` |/ _ \| __|  _| | |/ _ \/ __|
 | (_| | (_) | |_| | | | |  __/\__ \
  \__,_|\___/ \__|_| |_|_|\___||___/
                                    
  โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“
 โ–‘โ–“ about  โ–“ linux configuration files (dotfiles)
 โ–‘โ–“ author โ–“ iyyel <[email protected]>
 โ–‘โ–“ code   โ–“ https://github.com/iyyel/dotfiles
 โ–‘โ–“ mirror โ–“ https://git.iyyel.io/iyyel/dotfiles
 โ–‘โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“
 โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘

Table of Contents

Introduction

In the unix world programs are commonly configured in two different ways, via shell arguments or text based configuration files. Programs with many options like window managers or text editors are configured on a per-user basis with files in your home directory ~. In unix like operating systems any file or directory name that starts with a period or full stop character is considered hidden, and in a default view will not be displayed, thus the name dotfiles.

It's been said of every console user:

"you are your dotfiles".

since they dictate how your system will look and function. To many users (see ricers and beaners) these files are very important, and need to be backed up and shared. People who create custom themes have the added challenge of managing multiple versions of them. I have tried many organization techniques and just take my word for it when I say, keeping a git repository in the root of your home directory is a bad idea. I have written custom shell scripts for moving or symlinking files into place. There are even a few dotfile managers, but they all seem to have lots of dependencies. I knew there had to be a simple tool to help me.

Managing

I manage my dotfiles with gnu stow, a free, portable, lightweight symlink farm manager. This allows me to keep a versioned directory of all my config files that are virtually linked into place via a single command. This makes sharing these files among many users and computers super simple and does not clutter your home directory with version control files.

Installing

stow is available for all linux and most other unix-like distributions via your package manager.

  • sudo pacman -S stow
  • sudo xbps-install -S xstow
  • sudo apt-get install stow
  • brew install stow

or clone it from source and build it yourself.

How it works

By default the stow command will create symlinks for files in the parent directory of where you execute the command, so my dotfiles setup assumes this repo is located in the root of your home directory ~/dotfiles and all stow commands should be executed in that directory. Otherwise you'll need to use the -d flag with the repo directory location.

To install most of my configs you execute the install.sh script, which uses stow commands. Make sure to review and understand them before running the script.

sh install.sh

note: stow can only create a symlink if a config file does not already exist. If a default file was created upon program installation you must delete it first before you can install a new one with stow. This does not apply to directories, only files. install.sh overwrites existing config files by using the -R flag.

tl;dr

Navigate to your home directory

cd ~

Clone the repo:

git clone http://github.com/iyyel/dotfiles

Enter the dotfiles directory:

cd dotfiles

execute install script:

sh install.sh

My setup

  • Window Manager: dwm
  • Bar: dwmblocks
  • Terminal Emulator: st
  • Shell: zsh
  • Music Player: spotify-tui
  • Text Editor: nvim
  • Web Browser: firefox
  • Color theme: gruvbox

License

License: MIT

dotfiles's People

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

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.