d0tfiles

*nix dotfiles for arch linux setup
Log | Files | Refs | README | LICENSE

README.md (9175B)


      1 ```
      2       ██            ██     ████ ██  ██                
      3      ░██           ░██    ░██░ ░░  ░██                
      4      ░██  ██████  ██████ ██████ ██ ░██  █████   ██████
      5   ██████ ██░░░░██░░░██░ ░░░██░ ░██ ░██ ██░░░██ ██░░░░ 
      6  ██░░░██░██   ░██  ░██    ░██  ░██ ░██░███████░░█████ 
      7 ░██  ░██░██   ░██  ░██    ░██  ░██ ░██░██░░░░  ░░░░░██
      8 ░░██████░░██████   ░░██   ░██  ░██ ███░░██████ ██████ 
      9  ░░░░░░  ░░░░░░     ░░    ░░   ░░ ░░░  ░░░░░░ ░░░░░░  
     10  
     11   ▓▓▓▓▓▓▓▓▓▓
     12  ░▓ about  ▓ Linux config files
     13  ░▓ author ▓ underd0g <underd0g>
     14  ░▓ code   ▓ https://github.com/underd0g1/
     15  ░▓ mirror ▓ http://www.underd0g.co
     16  ░▓▓▓▓▓▓▓▓▓▓
     17  ░░░░░░░░░░
     18 
     19  2bwm           > fast floating wm
     20  bin            > system automation scripts
     21  compton        > minimal composite config for opacity
     22  figlet         > custom 3d font
     23  fonts          > configs for gohu and other bitmap fonts
     24  fun            > term color, sys info, and other misc scripts
     25  git            > global git config and aliases
     26  interrobang    > a lightweight application launcher
     27  irssi          > neon gold irc theme
     28  mpd            > music player daemon setup
     29  mutt           > minimal mutt setup
     30  ncmpcpp        > ncurses mpc++ ui/color settings
     31  pacman         > pacman colors and progress bar animations
     32 
     33  pygments       > add syntax highlighting to cat and less commands
     34  ranger         > file manager with image previews and z3bra theme
     35  ryu-login      > ryu ansi art for /etc/issue tty login
     36  ssh            > remote ssh server keep alive
     37  stalonetray    > stand alone tray for daemons
     38  themes         > mod of the cathexis dark theme for gtk/qt/xfce
     39  tmux           > terminal multiplexer with custom status bar
     40  urxvt          > sourcerer terminal colors and keyboard settings
     41  vim            > wizard status bar and sourcerer color scheme
     42  wallpaper      > the cool desktop background images i use
     43  zsh            > zshell settings, aliases, and custom prompts
     44 ```
     45 
     46 ## table of contents
     47  - [introduction](#dotfiles)
     48  - [managing](#managing)
     49  - [installing](#installing)
     50  - [how it works](#how-it-works)
     51  - [tl;dr](#tldr)
     52  - [my shell](#my-shell)
     53  - [vim](#vim)
     54  - [previews](#previews)
     55 
     56 # dotfiles
     57 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. 
     58 
     59 it's been said of every console user: 
     60 > _"you are your dotfiles"_.
     61 
     62 since they dictate how your system will look and function. to many users (see [ricers](http://unixporn.net) and [beaners](http://nixers.net)) 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 repo in the root of your home directory is a bad idea. i've 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.
     63 
     64 # managing
     65 i manage mine with [gnu stow](http://www.gnu.org/software/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 (root) and computers super simple. and does not clutter your home directory with version control files.
     66 
     67 # installing
     68 stow is available for all linux and most other unix like distributions via your package manager.
     69 
     70 - `sudo pacman -S stow`
     71 - `sudo apt-get install stow`
     72 - `brew install stow`
     73 
     74 or clone it [from source](https://savannah.gnu.org/git/?group=stow) and [build it](http://git.savannah.gnu.org/cgit/stow.git/tree/INSTALL) yourself.
     75 
     76 # how it works
     77 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.
     78 
     79 to install most of my configs you execute the stow command with the folder name as the only argument. 
     80 
     81 to install my **herbstluft** theme _greybeard_ use the command:
     82 
     83 `stow herbstluftwm`
     84 
     85 this will symlink files to `~/.config/herbstluftwm` and various other places.
     86 
     87 but you can override the default behavior and symlink files to another location with the `-t` (target) argument flag. 
     88 
     89 to install the **ryu-login** you need to execute the command:
     90 
     91 `stow -t / ryu-login` 
     92 
     93 this will symlink the file to `/etc/issue`.
     94 
     95 **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.
     96 
     97 # tl;dr
     98 navigate to your home directory
     99 
    100 `cd ~`
    101 
    102 clone the repo:
    103 
    104 `git clone http://git.underdog1/.nix~.git`
    105 
    106 enter the dotfiles directory
    107 
    108 `cd dotfiles`
    109 
    110 install the zsh settings
    111 
    112 `stow zsh`
    113 
    114 install zsh settings for the root user
    115 
    116 `sudo stow zsh -t /root`
    117 
    118 install awesomewm theme
    119 
    120 `stow awesome`
    121 
    122 uninstall awesome theme
    123 
    124 `stow -D awesome`
    125 
    126 install herbstluftwm
    127 
    128 `stow herbstluftwm`
    129 
    130 etc, etc, etc...
    131 
    132 #my shell
    133 i prefer a minimal setup, and choose to interact with my operating system via the so-called "terminal" or "command line", (read that quoting sarcastically) over a gui interface 2 times out of 3. with the web browser and video player among the noted outliers. in my opinion, using your computer should be a very personal experience. your colors, aliases, key-bindings, etc meticulously crafted to your exacting specifications. so for me, the unix shell is the most important part of my environment.
    134 
    135 ![term](https://github.com/underd0g1/.nix-/blob/master/zsh.gif)
    136 
    137 my terminal emulator of choice is the lightweight, unicode, 256 color [urxvt](http://linux.die.net/man/1/urxvt). i use [zsh](http://linux.die.net/man/1/zsh) as my interactive shell. it's an extensible, bash like shell with awesome completion and correction engines. i manage multiple shell sessions with [tmux](http://linux.die.net/man/1/tmux). it's a feature packed terminal multiplexer with support for buffers, split windows, detached local and remote sessions, etc. i'm a member of the cult of [vim](http://linux.die.net/man/1/vim). sing phrases to the third reincarnation of the glorious ed! lel. [mpd](http://linux.die.net/man/1/mpd) is my music server and i use [ncmpcpp](http://ncmpcpp.rybczak.net/) as it's frontend. my configs for [urxvt](http://git.io/.urxvt), [zsh](http://git.io/.zsh), [tmux](http://git.io/.tmux), [vim](http://git.io/.vim), [mpd](http://git.io/.mpd) and [ncmpcpp](http://git.io/.ncmpcpp) shown above feature my [sourcerer](http://sourcerer.xero.nu) color scheme.
    138 
    139 # vim
    140 with it's tight integration to the unix shell, [vim](http://www.vim.org) has quickly become my editor of choice. once you start to master the movements and operators you quickly begin manipulating, not just editing source code files.
    141 
    142 when you learn vim it's best to use a more vanilla config. if helps you focus on learning the editor and not the plugins. vim's vast and powerful plugin system can add many great features. i try to keep my editor slim and fast, but i find myself loving these plugins:
    143 
    144 - [vundle](https://github.com/gmarik/vundle.vim) - to manage other plugins
    145 - [vim completes me](https://github.com/ajh17/VimCompletesMe) - super lightweight completion system
    146 - [colorizer](https://github.com/lilydjwg/colorizer) - display color codes as their colors inline
    147 - [syntastic](https://github.com/scrooloose/syntastic) - syntax linting
    148 - [git gutter](https://github.com/airblade/vim-gitgutter) - git diff in the gutter
    149 - [match it](https://github.com/isa/vim-matchit) - extended word and regex matching
    150 - [lightline](https://github.com/itchyny/lightline.vim) - custom status line (for much rice)
    151 - [fugitive](https://github.com/tpope/vim-fugitive) - fast git integration
    152 
    153 
    154 ![vim](https://github.com/underd0g1/.nix-/blob/master/vim.gif)
    155 # Web 
    156 
    157  >> it's a bird, its a plane, no its.... [underd0g](http://www.underd0g.co)