Make sure you installed Fedora/Debian/Arch/Whatever with full disk encryption. You can configure locking when the screen goes off in Fedora in the privacy menu and the timeout for screen dimming in the power settings.
this tool installs packages that are "non-free". For that, you'll have to manually enable these repositories by downloading and installing the packages here: https://rpmfusion.org/Configuration/
After this, you can use Fedy (https://www.folkswithhats.org/) to do a bunch of installations / configurations for you!
sudo dnf install libreoffice-langpack-nl redhat-rpm-config rubygem-json ruby-devel vim htop php php-mcrypt php-json php-mysqli php-xdebug php-intl php-zip poedit meld exfat-utils encfs gimp mariadb postgresql zsh virt-manager gcc libcxx php-pcntl php-xml php-process php-mbstring openssl-devel yamllint httpd-tools php-soap ncdu php-gd smem
sudo dnf groupinstall 'Development Tools'
sudo dnf groupinstall "C Development Tools and Libraries"
- https://docs.docker.com/install/
 - https://developer.fedoraproject.org/tools.html
 - https://www.jetbrains.com/toolbox/app/
 - https://code.visualstudio.com/download
 - https://atom.io/
 - https://github.com/robbyrussell/oh-my-zsh
 - https://slack.com/downloads/linux
 - https://mitmproxy.org/
 - https://github.com/FiloSottile/mkcert
 - https://github.com/ryanoasis/nerd-fonts
 - https://github.com/powerline/fonts
 
a. NFS using UDP is disabled
On the developer.fedora portal they tell you to use tcp instead. I'd like to yolo my local packets and think that the TCP overhead is potentially killing for performance. Here's a guide how to enable UDP again on your nfs server: https://robertbasic.com/blog/enable-udp-for-nfs-on-fedora/
The solution is to edit /etc/sysconfig/nfs and add --udp to RPCNFSDARGS:
RPCNFSDARGS="--udp"
b. Passwordless vagrant up
The sudoers file is attached to this gist. Place it in /etc/sudoers.d.
c. Change your docker default network subnet by chaning the daemon.json in /etc/docker https://docs.docker.com/engine/userguide/networking/default_network/custom-docker0/ my config is atached in this gist.
d. configure your oh-my-zsh plugins my config:
plugins=(aws battery git dnf docker docker-compose encode64 history-substring-search fedora vagrant zsh-navigation-tools composer themes libvirt ssh symfony2 wp-cli sudo redis-cli node laravel5 man go golang python autojump emoji nmap python pyenv screen yarn npm)
e. Vagrant had some additional complaints about native ruby extensions missing.
I tried fixing it but it doesnt seem to work. Here's what i tried: Make sure gcc is installed (step 2) an build the ruby extensions like the example below.
Example warning: Ignoring json-2.0.3 because its extensions are not built. Try: gem pristine json --version 2.0.3 Ignoring nokogiri-1.6.8.1 because its extensions are not built. Try: gem pristine nokogiri --version 1.6.8.1
Example fix:
gem install json -v 2.0.3
gem install nokogiri -v 1.6.8.1
gem pristine json --version 2.0.3
gem pristine nokogiri --version 1.6.8.1
f. NPM should never escalate beyond your home directory
I'd rather install dependencies in my local home folder. here's why: npm/npm#19883
npm config set prefix '~/.npm-packages'
Make sure you update your path in the .zshrc or whatever you're using. A temporary fix is:
export PATH="$PATH:$HOME/.npm-packages/bin"
g. Some optional Android stuff
sudo dnf install zlib.i686 ncurses-libs.i686 bzip2-libs.i686 android-tools
And download the studio from here: https://developer.android.com/studio/install.html
h. Bump inotify watches
While 524288 is the maximum number of files that can be watched, if you're in an environment that is particularly memory constrained, you may wish to lower the number. Each file watch takes up 540 bytes (32-bit) or ~1kB (64-bit), so assuming that all 524288 watches are consumed that results in an upper bound of around 256MB (32-bit) or 512MB (64-bit).
Place the 20-inotify-watches.conf file in /etc/sysctl.d and make sure the file has his appropriate permissions.
i. ZSHRC
In case I do not r-sync a backup: there is a ZSHRC file attached to this gist.
j. Nvidia
On my current setup (GTX 850M), installing: xorg-x11-drv-nvidia-cuda works and this allows me to use "NVIDIA Hardware accelerated encoding".
sudo dnf install xorg-x11-drv-nvidia-cuda
R-sync your personal backup or settings back.
Here are some commands I use when backing up & restoring:
rsync -a --exclude-from=/run/media/nico/Backup\ Data/rsync-ignorelist --progress /home/nico /run/media/nico/Backup\ Data/lenovo_enrise_fedora_25
@todo: include rsync-ignorelist
You're good to go!