This project contains the dotfiles and custom shell scripts that I use on my workstations.
Why keep them at GitHub? It’s a way to share advanced shell tips with other developers, and more practically, a way to back up my configuration. I was tired of having a bunch of configurations across all my machines, especially when trying to keep all up to date. So I got fed up and threw them on GitHub. It's not perfect (yet!), but it's a great starting point for any Linux config.
Each folder is named after a package and contains every configuration file used by that application. Besides some noted exceptions, the files inside the folders are relative to home (e.g. the file vim/.vimrc goes to ~/.vimrc).
Every section here explains which settings and (if any) workarounds/fixes are used to obtain the described result.
For further reference, read carefully every section in this file, and copy only the configuration files relative to the parts you are trying to setup.
If none of these helped, feel free to open an issue here. Include your distro informations and the configuration values you are trying.
These scripts will be installed to ~/bin and added to your $PATH:
| Script | Description |
|---|---|
fs-cryptmount.sh |
Mounts a encFS filesystem where I keep personal data. |
myip.sh |
An script to obtain my real IP. |
- oh-my-zsh - framework for managing your zsh configuration. It includes autocompletion, themes, aliases, custom functions...
- powerlevel10k/powerlevel10k theme - emphasizes speed, flexibility and out-of-the-box experience.
- Plugins:
- aws
- colored-man-pages
- extract
- git
- pass
- zsh-autosuggestions - suggest commands as you type, based on command history
$EDITORisvim.umaskis077.- Configure private tokens from
$HOME/.env_private.
- Enable Bash-it framework. It includes autocompletion, themes, aliases, custom functions...
- Improved Bash history based on this post.
- Add useful aliases, like
ll,la... $EDITORisvim.umaskis077.- Configure private tokens from
$HOME/.env_private.
- Enables color output and line-ending checks.
- Shortens common commands:
br,ci,co,df,lg.
Remember to configure
user.name,user.emailanduser.signingkeyon.gitconfig.
- 4 spaced tabs
- Autocompletion always on
- Case insensitive search
- Global highlighting of search matches
- Numbered lines
- Trailing whitespace highlighting
- Tons of plugins through Vundle:
onedark,lightline,vim-ployglot. - One Dark theme
My personal backup solution for my $HOME folder (to local and external HD)
- Uses
rsyncto keep snapshots of your$HOMEfolder to a local folder or external HD. - You can configure the list of files & folders to exclude from the backup. See
~/.excludes_from_backup. - You can configure your destination folders. See
DESTINATIONvariable in the scripts.
| Script | Description |
|---|---|
daily.sh |
Do a daily backup (scheduled in the crontab) into a local folder. See DESTINATION. |
weekly.sh |
Do a weekly backup (scheduled in the crontab) of the latest folder create by daily.sh into a local folder. See DESTINATION. |
make_snapshot.sh |
Creates the snapshoot of the source folder and keep three older copies (rotated on each backup) |
do_backup.sh |
Do the backup to remote (mounted disk) using make_snapshot.sh. See DESTINATION. |
I've configured my workstation to use DNS Over TLS without any dependency, just systemd. It uses the AdGuard DNS, a reliable way to block ads on the Internet.
The installation allows you to configure it without any effort and a script to enable/disable it is provided. In order to connect to WiFi with captive portals you should disable DNS Over TLS first.
| Script | Description |
|---|---|
DNS_Over_TLS.sh |
Enable/disable DNS-Over-TLS. |
Choose a place to store the dotfiles, like ~/.dotfiles.
git clone https://github.com/pacoorozco/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./install.sh