This repository is a collection of scripts I use for a quick configuration of my develpment system.
I'm a fullstack web developer, so the tools I use are very opinionated. Feel free to use this respository as is or as a starting point for creating your own.
cd ~
git clone --recursive [email protected]:fabio-ivona/.dotfiles.git
cd .dotfiles
bash bootstrap
Powerful shell
- zsh shell with custom configurations
- oh-my-zsh (documentation)
- zsh autosuggestions (documentation)
- darkula theme: enabled by default (documentation)
- powerlevel10k theme: not enabled by default (documentation)
Global gitignore file
the installation script will create (and set as excludefile in git globals) a .global-gitignore file in your home directory which will add global gitignore rules:
- .idea
- nohup.out
- node_modules
- npm-debug.log
- yarn-error.log
- vendor
- .env
- wp-config.php
- error.log
- access.log
Personal fonts directory
a .fonts folder will be added to the home directory, containin some useful fonts
- MeslogLGS (useful for a nice display of powerlevel10k zsh theme)
Personal .ssh/config file
during the installation process, you will be (optionally) asked for your ssh config git repository, in order to clone it in your ~/.dotfiles/shell/ssh/config
folder and add a link to it from ~/.ssh/config
this will allow the user to keep track of your personal ssh configurations
Extra
dotfiles adds some extra system configuration:
- larger bash history (32768 entries)
- larger bash history file size (32768 entries)
- lgnores duplicate commands in bash history
- ignores commands which start with a space in bash history
- ignores frequent commands both in history and in history file
- ll
- l
- la
- ls
- cd
- cd -
- pwd
- exit
- date
- --help commands
Commands
a number of aliases and functions will be defined for the zsh shell:
phpunit
executes phpunit tests from current directory (phpunit must be present in composer.json file)pest
executes pestphp tests from current directory (pest must be present in composer.json file)dusk
executes dusk tests from current directory (dusk must be present in composer.json file)artisan
executes artisan commands without the need to type php artisan
sudo
allows to call sudo before aliasesphpstorm
opens a PhpStorm project in current folderhostfile
opens a text editor for /etc/hosts filesshconfig
opens a text editor for ~/.ssh/config filedock
runs a php dock command (for dock info, see its documentation)
glog
show current project's git commits log in a readable way
ll
shortcut for ls -lFl
shortcut for ls -lFla
shortcut for ls -lFAgrep
colorize grep resultspublicip
shows current public IPlocalip
shows current local IPsmkd
creates a folder and move into itarchive
create a zip archive of a folder
Custom local dotfiles
along with default dotfiles (.aliases, .functions, .exports), user may add a ~/.dotfiles-custom/shell directory with additional .exports, .aliases, .functions, .zshrc files that will bel loaded after the default ones
these files will not be put under VCS
Albert
Albert (see documentation) is a useful launcher for ubuntu inspired by mac's Alfred. During the installation process you will be prompted to optionally install it
Dev Environment
a Web Development environment will be set up, with the following tools:
- Php 8.0 cli (along with some extensions: xml, mbstring, intl)
- Composer
- Npm
- Docker (and docker-compose)
- PhpStorm
- Sublime Text
- Android Studio
PhpStorm URL Handler
dotfiles creates a .desktop entry to handle phpstorm://open?file=xxx links.
NOTE: Laravel Ignition links may not work in a dockerized development environment. In this case, the local path should be mapped in Laravel's configuration. This can be done locally in .env file by adding this entry:
IGNITION_LOCAL_SITES_PATH=/home/projects/example/src
Other Tools
some other everyday tools will be installed:
- Thunderbird
- Telegram Desktop
- Whatsdesk
- Libreoffice
- htop
- copyq
Inspired by (and forked from) Freek Murze's dotfiles