I break things. A lot. Between local web developement, virtual machines, and my habit of acting first, thinking later, I got really tired of setting up new OS installs. So I decided to make it easier on myself with this repository.
This is a very, very, very much work-in-progress thing. I've Frankenstein'd a bunch of snippets from other people's .dotfiles to create these. So many, in fact, that I'm not even sure of my sources, soooo if you see something you want to be credited for, let me know.
- Enable WSL
- (Optional) Windows Terminal
- (Optional) VSCode and WSL2
- Ubuntu Scripts
- Auto Install
- Manual Install
- Xfce4 and xRDP
- Fonts
- Helpful Links
- To-Do
- License
I use Ubuntu | WSL2 running on Windows 10. Some of these scripts and options may not work out of the box for you. Sorry.
If you need to install WSL2 (or upgrade from WSL1), start here.
Enable WSL 2 and update the linux kernel (Source)
# Open PowerShell as Administrator
# Enable WSL and VirtualMachinePlatform features
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# Download and install the Linux kernel update package
$wslUpdateInstallerUrl = "https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi"
$downloadFolderPath = (New-Object -ComObject Shell.Application).NameSpace('shell:Downloads').Self.Path
$wslUpdateInstallerFilePath = "$downloadFolderPath/wsl_update_x64.msi"
$wc = New-Object System.Net.WebClient
$wc.DownloadFile($wslUpdateInstallerUrl, $wslUpdateInstallerFilePath)
Start-Process -Filepath "$wslUpdateInstallerFilePath"
# Set WSL default version to 2
wsl --set-default-version 2
Boot the Ubuntu app you just installed and follow any instructions to setup your Ubuntu user profile.
Update Ubuntu deps with: sudo apt-get update && sudo apt-get upgrade
If you installed more than one version of Ubuntu, or you plan on installing others in the future, go ahead and set the default distro you want being used.
# Open PowerShell as Administrator
# wsl --set-version <Distro> <WSL Version>
wsl --set-version Ubuntu-20.04 2
# Validate the correct WSL version is being used:
wsl --list --verbose
Windows Terminal development on GitHub
Microsoft's Terminal app is a modern terminal app designed for seamless integration between Windows and WSL, including support for different shells, custom themes, tabs and unicode (read emoji).
VSCode remote server development on GitHub
With VSCode's remote server feature, it has native support for WSL. You can run code .
(or code-insiders .
if you're using the Insiders version) from within a folder in any terminal, and VSCode makes the magic happen. See the docs for further information.
At this point, you should have WSL2 working and an Ubunto distro installed. If your Ubuntu user is set up and your terminal is ready to go, follow the rest of the guide below.
Items installed in the following scripts include:
fresh-install.sh
Git
✰ Github Cli
✰ Python 2 & 3
✰ SSH
✰ NVM
✰ NodeJS
✰ Yarn
✰ PostgreSQL
✰ Docker
✰ Heroku
✰ AWS Cli
✰ NGINX
✰ Powerline Fonts
✰ Figlet
✰ LOLcat
If you like things easy, but possibly broken, start here
-
Clone the repository into the
home
directory:cd ~ && git clone https://github.com/Grimmstar/.dotfiles ~/.dotfiles
-
Run the
fresh-install.sh
script:~/.dotfiles/fresh-install.sh
Don't want to break things? Here is a safe place to start
- Open
fresh-install.sh
and copy/paste the commands you wish to use from top to bottom. I mean, that's the simplest way I can put it.
To access a Linux GUI from Windows with Xfce4 and xRDP, follow the instructions below
In a WSL terminal, run the following command:
# This is going to take *awhile*. Patience is a virtue.
sudo apt-get -y install xfce4 && sudo apt-get -y install xubuntu-desktop
# xRDP
sudo apt-get -y install xrdp
# configure
echo xfce4-session > ~/.xsession
# restart
sudo service xrdp restart
ifconfig | grep inet
At this point, you should be able to open an RDP session from Windows 10.
- Open a
cmd
prompt and runmstsc
- Provide the WSL IP address
- (Optional) Provide your login info
- Connect the remote desktop
Free, monospaced fonts
- [Microsoft's Cascadia Code with Powerlines](https://github.com/microsoft/cascadia-code): mono, ligatures, free - [JetBrains Mono](https://www.jetbrains.com/lp/mono/#how-to-install): mono, ligatures, free - [Fira Code](https://github.com/tonsky/FiraCode): mono, ligatures, free - [Anomaly Mono](https://github.com/benbusby/anomaly-mono): mono, free - [Hack](https://github.com/source-foundry/Hack): mono, free - [Source Code Pro](https://www.1001fonts.com/source-code-pro-font.html): mono, ligatures, free - [Anonymous Pro](https://www.1001fonts.com/anonymous-pro-font.html): mono, ligatures, free - [Software Tester 7](https://www.1001fonts.com/software-tester-7-font.html): mono, free - [NovaMono](https://www.1001fonts.com/novamono-font.html): mono, ligatures, freeSee Credits
- Clean up dotfiles (
.bashrc
,.profile
,.bash_profile
, etc) to remove uneeded/unused/duplicate things - Better way to auto-start services
- Dracula color theme for LS
- Better way to source dotfiles