ββ ββββ ββ ββββ
ββ ββ βββββ ββ ββββ
βββββββ ββββββ βββββββ βββββββ ββββ ββ ββββββ ββββββββ
βββ βββ βββ βββ ββ ββ ββ ββ ββββββββ ββββββ β
ββ ββ ββ ββ ββ ββ ββ ββ ββββββββ βββββββ
ββββββββ ββββββββ βββββ ββ ββββββββ βββββ ββββββββ ββββββββ
βββ ββ ββββ ββββ ββ ββββββββ ββββ βββββ ββββββ
In my odyssey to have the perfect dotfiles I have come across the profiles of many other people with the same objective and these two summaries of "what are dotfiles" are the ones I liked the most
In Xero's words:
- In the *nix 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."
In Ayekat's words:
-
This is my collection of user/application settings ("dotfiles") and personal scripts. They are mostly adapted to my personal needs, and some scripts make a few assumptions about the environment that may not necessarily be considered "standard", so it's not recommended to just copy-paste them as-is.
-
Nevertheless, I try to keep them as clean and non-WTF as possible, and people are invited to take a look at them, get ideas for their own dotfiles, and drop comments, suggestions, questions and bug reports if something seems odd.
You must already have a basic idea of what dotfiles are, so I won't focus on explaining what they are but how they differ from other dotfiles:
- My dotfiles are characterized by the fact that I try to be as minimalist and non-bloated as possible, this can be confirmed by seeing with which tools I work on a daily basis (Neovim, i3, bspwm, Arch Linux, ncmpcpp, aurutils, rofi, zathura, pass, st (simple/suckless terminal), etc.) and the fact of how I use them and how I configure them to my liking. Clearly, there are going to be some exceptions to this rule (Firefox, SystemD, PulseAudio etc.) but I do what I can to also be as comfortable as possible. So, you can think of this repository as a little guide to build your own minimalist workflow (if you're one of those people who likes this), and if you're one of those people who hates minimalism, you might find something really useful if you know how to look.
Software | What i use | Link to the project | Link to my own configuration files (dotfiles) of that software |
---|---|---|---|
Shell prompt | bash and zsh with zplug |
bash - zsh - Zplug | zsh - bash |
Bar | polybar |
Polybar | Polybar |
Window Compositor | compton |
Compton | Compton |
VCS | git |
git | git |
Launcher | rofi |
Rofi | Rofi |
Music Player | ncmpcpp with mpc and mpd |
ncmpcpp - mpd - mpc | ncmpcpp - mpd |
Notification Daemon | dunst |
dunst | dunst |
PDF Viewer | zathura |
Zathura | Zathura |
Text Editor | neovim - leafpad |
Neovim - Leafpad | Neovim |
Terminal Emulator | urxvt and st |
urxvt - st | urxvt - st |
Window Manager | i3-gaps - bspwm |
i3-gaps - bspwm | i3-gaps - bspwm |
AUR Helper | aurutils |
aurutils | |
Screenshooter | scrot |
Scrot | |
Display Manager | lightdm |
LightDM | |
Browser | firefox |
Firefox | |
File Manager | ranger and pcmanfm |
Ranger - PCManFM | |
Terminal Font | hack |
Hack | |
Video Player | mpv |
Mpv | |
Image Viewer | feh - viewnior |
Feh - Viewnior | |
Password manager | pass |
pass: The Standard Unix Password Manager |
- For desktop blurrying: Ganifladi's excellent
blurme
β Blurme - To have icons in
polybar
:ttf-font-awesome-4
β Font Awesome 4 Font Awesome 5 does not work properly with Polybar. Or at least it doesn't work like Font Awesome 4. - To vote for all your packages downloaded from the AUR:
aurvote
β AURvote Use it this way:$ aurvote -v $(pacman -Qqm)
- Only for Arch Linux users. - To retrieve and filter the latest Pacman mirror list and the best servers available:
reflector
β Reflector - Only for Arch Linux users.
Before installing, be sure to read useful cowboy gently-worded note and this excellent article by Anish Athalye: Dotfiles are NOT meant to be forked. That said, let's go with the installation:
- Install GNU Stow: GNU Stow is available for all GNU+Linux distros and most other unix-like distributions via your package manager.
sudo pacman -S stow
sudo apt-get install stow
brew install stow
- Clone this repo:
$ git clone https://github.com/davidarrieta/dotfiles.git ~/dotfiles && cd ~/dotfiles
- Symlink with GNU Stow all the folders you want to your home: To install most of my dotfiles you execute
stow
with the folder name as the only argument. For example, to install myi3
and myzshrc
config use the command:
$ stow i3
$ stow zsh
$ stow whatever-dotfile-you-want
This will symlink files to ~/.config/i3/
~/.zshrc
and various other places.
- If you have an existing dotfiles repo and you want to make your own dotfiles stow-compatible you must learn how to arrange your files right so that
stow
can link them correctly, here are some helpful links: Using GNU Stow to manage your dotfiles - Managing dotfiles with GNU stow
Current workflow - Click here to see my post in /r/unixporn, Almost 450 upvotes!
cava and colorblocks
A bit of my i3 configuration, neofetch and mpv playing this song
Here you will find A LOT of other people's dotfiles:
This repository is strongly inspired by the work of some people, and would not have existed if it were not for:
- Xero
- Mohabaks
- Samuel Walladge
- Addy aka The King of Ricing
- All the ricers who inspired me from unixporn.
- And all the people i might have stolen scripts or configs π
Copyright (C) 2018 - Claudio D. Arrieta <[email protected]>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
This repository contains both original and third party content. Content can be assumed to be original unless stated otherwise. Original content is copyright Β© 2018 Claudio D. Arrieta , and can be used and distributed under the terms of the GPLv3. All third party content is copyright their respective authors and bound by their original licenses.
All attempts have been made to identify third party content within the repository, with sources and attribution given where necessary. Please contact me if any issues are discovered.