My personal dotfiles and an installer script to set them up. In this guide I reference my unix username tay and my Windows account folder name Taylor, so change them to your folder names accordingly.
- Dotfile Installation
- General Post-OS Install/Setup
- WSL Installation
- Arch Installation As a Dual Boot with Windows
git clone git@github.com:TaylorAbraham/dotfiles.git
cd dotfiles
./dot-install.sh
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y
sudo apt install -y zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
https://github.com/romkatv/powerlevel10k
build-essential installs make tools
sudo apt install -y tmux inotify-tools eza bat ruby-dev build-essential
vundle
npm i -g tldr
brew install fzf git-delta
sudo apt install -y lolcat cowsay fortune-mod
brew install hyfetch
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
https://github.com/nvm-sh/nvm#installing-and-updating
https://github.com/sindresorhus/guides/blob/master/npm-global-without-sudo.md
- Through the Microsoft Store, install Windows Terminal
- Follow in full: https://docs.microsoft.com/en-us/windows/wsl/wsl2-install
- Open Terminal settings and set Ubuntu to the default. Optionally, add a background.
"startingDirectory" : "//wsl$/Ubuntu/home/tay",
"backgroundImage": "C:\\Users\\Taylor\\OneDrive\\Pictures\\Backgrounds\\Wooloo.jpg",
"backgroundImageOpacity": 0.3
- Follow instructions above for installing Zsh + OhMyZsh
- Set up Windows ssh keys in a Powershell prompt, and add them to GitHub
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
cat C:\Users\Taylor\.ssh\id_rsa.pub | clip
- Set up WSL ssh keys and fix private key permissions (NOTE: cp is used instead of making a symlink because this allows file permissions of your private key to be fixed)
cp -r /mnt/c/Users/Taylor/.ssh ~
chmod 600 ~/.ssh/id_rsa
- Install dotfiles
cd ~
git clone git@github.com:TaylorAbraham/dotfiles.git
cd dotfiles && ./dot-install.sh
- Fix tmux re-prompting you for sudo password by disabling tty tickets. Open sudoers and add
Defaults:tay !tty_tickets
sudo update-alternatives --config editor
sudo su
visudo /etc/sudoers
- Install utilities listed above
- Fix firewall rules for inbound WSL connections. By default, the Windows Firewall will prevent any inbound connections to a server running on WSL 2. Fix WSL firewall rules with the script in this comment. Make sure to follow the instructions and tick off "Run with highest privilege" at the first screen of making the task. The command will be
powershellwith arguments something like-File C:\Users\ryan_\Scripts\wslbridge.ps1
Extra resources are available at https://nickymeuleman.netlify.com/blog/linux-on-windows-wsl2-zsh-docker and https://nickymeuleman.netlify.com/blog/gui-on-wsl2-cypress
Install complete!
Make a single empty partition in Windows for Arch but DO NOT format it.
https://wiki.archlinux.org/index.php/installation_guide
- Mounts are as follows:
- For your empty partition that will be Arch:
mount /dev/nvme0n1p6 /mnt - For your EFI partition:
mount /dev/nvme0n1p1 /mnt/boot/efi - For your main windows
filesystem: mount /dev/nvme0n1p3 /mnt/windows
- For your empty partition that will be Arch:
pacman -S vim ntfs-3g iwd
ntfs-3g allows Arch to mount the Windows filesystem once we reboot.
iwd gives access to iwctl and will let us get an internet connection if we need to troubleshoot later.
pacman -S sudo
useradd --createhome tay
passwd tay
usermod --append --groups wheel tay
visudo
Uncomment the %wheel ALL=(ALL) ALL line and test with su - tay, then whoami and sudo whoami.
pacman -S grub efibootmgr os-prober
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
We can verify that Windows is detected with os-prober
pacman -S xorg plasma plasma-wayland-session kde-applications
systemctl enable sddm.service
systemctl enable NetworkManager.service
Install Yay, then install Chrome
yay -Syu google-chrome
Shortcuts -> KWin
Also change the shortcut for "Maximize Window" to Meta + Up
And set "Capture Rectangular Region" to Print Screen
Only do this if you are booting into Windows semi-often, as this method relies on Windows keeping your system time up to date
timedatectl set-local-rtc 1 --adjust-system-clock
Edit /etc/default/grub, and in it add acpi_osi= to the end of the GRUB_CMDLINE_LINUX_DEFAULT boot parameters. If that doesn't work, consult https://wiki.archlinux.org/index.php/intel_graphics#Backlight_is_not_adjustable