My Dotfiles is a collection of configurations for various applications and tools I use on my workstation. This repository contains my personal dotfiles, which can be used as a starting point for setting up a new workstation.
- Introduction
- Less Bloated Windows Install
- Prerequisites
- Installation Steps
- GitHub SSH Setup for PowerShell and WSL
- Terminal Settings JSON
- CLI Tools
- Problems When Upgrading Ubuntu
- Academic Resources
- Contributing
- License
Welcome to my Dotfiles repository! Setting up a new workstation is often a daunting and time-consuming task, especially for developers and researchers who require a highly personalized and efficient working environment. This collection of dotfiles is designed to streamline that process, offering pre-configured settings and tools that I've refined over time to enhance productivity and ease the setup of new machines.
Whether you're setting up a system for coding, writing, or research, these configurations can serve as a solid foundation or inspiration for your own setup. They are the result of countless hours of tweaking and optimizing, aimed at creating a seamless development experience across various platforms.
By using these dotfiles, you'll be able to quickly replicate my setup on your own machine, saving you the hassle of manual configuration while also introducing you to best practices and tools that you might not have been aware of. Let's dive into making your workstation setup as painless and efficient as possible!
To achieve a cleaner and more streamlined Windows 11 experience, follow these steps:
- Begin by installing Windows using the ISO from Microsoft's official site.
- During installation, select English (World) as your language to avoid pre-installed regional-specific programs (e.g., Amazon Prime). You can switch to a regional English variant later in settings for Windows Store access.
- After installation, right-click the Windows button on the taskbar and open Terminal as an administrator.
- Execute the following command in the Terminal to launch Chris Titus's install program, which provides a GUI for installing various programs and programming languages:
irm christitus.com/win | iex
- Important: Avoid using this GUI to install programming languages if you plan to access them primarily through Linux environments. We will cover language installation on Linux in a later step.
- Use the GUI to install your preferred web browser.
- Navigate to the Tweaks tab within the GUI, and select the "Desktop Recommended Selections" for optimal system tweaks.
- Additionally, select "Remove Cortana" from the tweaks list.
- Apply the tweaks by clicking the "Run Tweaks" button.
- Restart your computer to ensure all changes take effect.
- Optional: Consider purchasing and installing Start11 to enhance the Windows start menu with features like custom grouping for pinned programs.
- Optional: Install Rectifier11 to refine the aesthetics of the control panel and other legacy components of Windows 11. For the best dark mode experience, choose Micah Alt during setup.
Before diving into the setup process, ensure you meet the following prerequisites to ensure a smooth installation:
-
Windows Subsystem for Linux (WSL) and Virtual Machine Platform: These features must be enabled to allow for Linux and virtualization support on Windows. To enable them:
- Open the Control Panel.
- Navigate to Programs > Turn Windows features on or off.
- Check the boxes next to Windows Subsystem for Linux and Virtual Machine Platform.
-
PowerShell: Install the latest version of PowerShell on Windows to ensure compatibility with modern scripts and tools.
-
Git for Windows: Essential for version control and managing code repositories. Download and install from Git for Windows.
-
Nerd Fonts: Enhance your terminal's appearance with customizable fonts. JetBrainsMono Nerd Font is recommended, but any Nerd Font will do. Installation options include:
- Easiest Method: Download your preferred font directly from the Nerd Fonts Download Page and install it on your system.
- Via Git: If you prefer to have access to a wide variety of fonts, clone the Nerd Fonts repository with the following command in PowerShell (run as administrator):
git clone --filter=blob:none --sparse [email protected]:ryanoasis/nerd-fonts
- For more options, visit the Nerd Fonts GitHub Repository.
-
Ubuntu and Windows Terminal: Install both from the Microsoft Store to ensure a seamless development environment across Windows and Linux.
-
Visual Studio Code (VSCode): A powerful and versatile code editor that supports a wide range of programming languages and tools. Download and install from VSCode's official site.
-
VSCode Extensions: Enhance your coding experience by installing the following extensions in VSCode:
- Remote - WSL for seamless integration with WSL.
- GitLens for enhanced Git capabilities.
- Python for comprehensive Python development support.
Follow the steps below to set up a new workstation:
- add WSL, Git, python extensions for VSCODE.
- Replace JSON file in the Terminal applications settings with JSON content contained below
Follow these steps to efficiently set up your new workstation:
- Add WSL, Git, and Python extensions for VSCode.
- Replace the JSON file in the Terminal application's settings with the JSON content provided below.
This section is divided into enhancements for PowerShell and WSL Terminal. These improvements include better formatting, autocomplete, and a customizable prompt, ensuring a more efficient and pleasant command-line experience.
- Optional (For PowerShell users): If you plan to use both PowerShell and WSL Terminal and wish to manage Conda environments in PowerShell, install Anaconda Navigator on Windows. Then, open
Anaconda Prompt
and initialize Conda for PowerShell:This allows PowerShell to run all Conda commands, makingconda init powershell
Anaconda Prompt
unnecessary for future use.
Installing Starship in PowerShell:
-
Install Starship using Chocolatey: If you've followed the earlier steps, you should already have Chocolatey installed. If not, install Chocolatey by following the instructions on Chocolatey's Installation Page. Once Chocolatey is installed, install Starship by running:
choco install starship
-
Configure Starship in PowerShell: To have Starship run automatically when you open PowerShell, you need to add its initialization script to your PowerShell profile.
First, check if you have a profile set up by running:
Test-Path $PROFILE
If this returns
False
, create a new profile by running:New-Item -path $PROFILE -type file -force
Next, open your profile for editing. You can do this with any text editor; for example, to open it with Notepad, run:
notepad $PROFILE
Add the following line to the end of your PowerShell profile:
Invoke-Expression (&starship init powershell)
Note: If you encounter an error stating that scripts cannot be run because the execution policy is restricted, you can change the execution policy to allow scripts to run by executing the following command in PowerShell as an administrator:
Set-ExecutionPolicy RemoteSigned
This command allows scripts downloaded from the internet with a trusted signature to run on your system, as well as scripts created locally.
Download the
starship.toml
from the.config
folder of this GitHub repository and put it inC:\Users\USERNAME\.starship
. This file sets up a bunch of the Starship configuration for you. To locate or create this directory, you can use File Explorer or run the following in a Command Prompt:cmd mkdir %USERPROFILE%\.starship
These steps will install Starship using Chocolatey and configure it to run automatically, enhancing your PowerShell prompt with Starship's features. Remember to restart your PowerShell terminal to see the changes take effect.
The following steps are intended for setting up the WSL Terminal environment. They focus on installing Zsh, Oh My Zsh, plugins, and Starship for a rich terminal experience.
-
Install Zsh (WSL Terminal):
sudo apt install zsh
-
Retrieve and apply my dotfiles (WSL Terminal):
git clone https://github.com/JDLanctot/dotfiles.git cd dotfiles && mv {.,}* .. && cd .. rm -rf .git dotfiles
-
Install Oh My Zsh (WSL Terminal):
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
-
Install zsh-autosuggestions (WSL Terminal):
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
-
Add
zsh-autosuggestions
to the plugins list in.zshrc
(WSL Terminal). -
Install zsh-completions (WSL Terminal):
git clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions
fpath+=${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions/src
-
Ensure
.zshrc
and.zshenv
from my GitHub are correctly applied (WSL Terminal). This setup allows for easy switching betweenbash
andzsh
, both customized. To switch, typebash
orzsh
accordingly. If aliases or settings don't work, source the configuration files:source ~/.bashrc # For bash source ~/.zshrc # For zsh
-
Install Starship for a customizable prompt (WSL Terminal):
curl -sS https://starship.rs/install.sh | sh
-
Install Unzip, a utility for extracting compressed files (WSL Terminal):
sudo apt-get install unzip
-
Install Eza, a modern replacement for 'ls' (WSL Terminal):
sudo apt-get update sudo apt-get -y install eza
-
Install Anaconda (WSL only). This step is specific to WSL as Anaconda should already be installed and initialized in PowerShell from a previous step (
conda init powershell
). For WSL, follow the comprehensive guide by Kauffmanes here to install Anaconda. -
Setup for Python projects (Terminal Agnostic). To start with a Python project, pull from a git repo or create a new directory and
cd
into it. Include a file namedenvironment.devenv.yml
with necessary dependencies. Here are two examples of what the contents might look like:name: assignments channels: - conda-forge - defaults dependencies: - ipdb - ipython - matplotlib - numpy - openpyxl - pandas - pip - python - pyyaml - tqdm - pip: - more-itertools - simple-parsing
name: netrl channels: - pytorch - rusty1s - nvidia - conda-forge - defaults dependencies: - cudatoolkit =11.1 - ipdb - ipython - matplotlib - networkx >=2.0 - numpy - pip - python >=3.8 - pytorch =1.8 - pytorch-geometric <=1.7.2 - pytorch-scatter - pytorch-sparse - pyyaml - tensorboard - tqdm - pip: - abstractcp - gym - more-itertools - simple-parsing - wurlitzer
-
Create and activate an environment (Terminal Agnostic). Use the following commands to create and activate the specified environment:
conda env create --name name --file=environment.devenv.yml conda activate name
To view all available environments:
conda env list
-
Install the current folder as a package (Terminal Agnostic). This allows for Python imports from scripts within the same directory:
pip install -e .
-
Run Python scripts (Terminal Agnostic). Execute any script in the current directory using Python. If zsh configurations from my dotfiles are applied,
p
can be used as an alias forpython3
:python3 filename.py # Or using the alias: p filename.py
WSL Installation:
- Install Julia on WSL by downloading and extracting the binary:
Note: My dotfiles setup includes a
curl -O https://julialang-s3.julialang.org/bin/linux/x64/1.8/julia-1.8.5-linux-x86_64.tar.gz tar -xvzf julia-1.8.5-linux-x86_64.tar.gz
.julia/config/startup.jl
file which should now be in your home folder.
Windows Installation:
-
Download Julia for Windows from the official Julia website. Choose the Windows installer and follow the installation instructions.
-
Configure
startup.jl
for Julia on Windows. If you're setting up Julia on Windows, ensure the.julia/config/startup.jl
file from my dotfiles is placed inC:\Users\USERNAME\.julia\config\startup.jl
. This file enhances Julia's startup configuration for an optimized experience.To locate or create this directory, you can use File Explorer or run the following in a Command Prompt:
mkdir %USERPROFILE%\.julia\config
Then, copy the
startup.jl
file into this directory.
WSL Installation:
-
Install Neovim (version 0.9+): This version is required for compatibility with LazyNvim. Ubuntu's stable repository might not have the latest version, so use the unstable PPA:
sudo add-apt-repository ppa:neovim-ppa/unstable sudo apt-get update sudo apt-get install neovim nvim --version # Check if the installed version is 0.9+
-
Setup Neovim with LazyNvim: Since the dotfiles now use LazyNvim, the previous step for installing Packer is obsolete. Proceed to configuring Neovim with the provided dotfiles:
cd ~/.config/nvim # Assuming dotfiles have been cloned as per previous instructions
-
Install Plugins with LazyNvim: Open Neovim and execute
:Lazy
then pressShift + I
to install all plugins based on the configuration files:nvim .
PowerShell (Windows) Installation:
-
Install Neovim: Ensure Chocolatey is installed (from the Chris Titus debloat tool run during the prerequisite steps), then install Neovim:
choco install neovim
-
Add Neovim to your Path: To ensure Neovim runs from any directory in PowerShell, add it to your system's Path variable:
- Search for "Edit the system environment variables" in the Windows search bar.
- Click "Environment Variables..."
- In the "User Variables" section, select "Path" and click "Edit..."
- Click "New" and add the path
C:\tools\neovim\Neovim\bin
- Confirm with "OK" and restart PowerShell if necessary.
-
Configure Neovim for Windows: Clone the dotfiles and set up Neovim to use them:
cd $env:LOCALAPPDATA git clone https://github.com/JDLanctot/dotfiles.git nvim cd nvim Move-Item .config/nvim/* . Remove-Item .config -Recurse -Force Remove-Item .zsh -Recurse -Force Remove-Item .bashrc -Force Remove-Item .zshrc -Force Remove-Item .zshenv -Force Remove-Item README.md -Force Remove-Item .git -Recurse -Force
-
Install Plugins with LazyNvim: Open Neovim, ignore any startup errors, and install the plugins:
nvim . # Inside nvim, run :Lazy followed by Shift + I
Setting up Node.js and pnpm on WSL:
-
Install Node.js on WSL: For web development, including working with React and Next.js, Node.js is a prerequisite. Follow the comprehensive guide provided by Microsoft for Installing Node.js on Windows Subsystem for Linux (WSL2). This guide covers the installation process and ensures that Node.js runs smoothly within the WSL environment.
-
Install pnpm: After installing Node.js, it's recommended to use pnpm as your package manager. pnpm offers efficiency advantages over npm, particularly in how it handles node modules to prevent duplication across projects. Install pnpm globally using npm with the following command:
npm install -g pnpm
Why pnpm?
- Efficiency: pnpm creates a single copy of a module for your system and then links it wherever it's needed. This approach saves disk space and speeds up the installation process compared to npm, which duplicates modules in each project's
node_modules
directory. - Performance: By reducing the amount of data to copy during installations, pnpm not only speeds up the setup of new projects but also makes package installation faster and more reliable.
Next Steps:
- With Node.js and pnpm installed, you're now ready to start developing with React and Next.js. Create your first project by initializing a new Next.js app or cloning an existing repository.
- For a new Next.js project, you can use the following pnpm command to create a new application:
pnpm create next-app your-nextjs-app
- Navigate into your project directory and start the development server to see your new Next.js application in action:
cd your-nextjs-app pnpm run dev
This setup ensures you have a modern and efficient development environment for working on web projects using React and Next.js within the WSL environment.
This guide provides a step-by-step walkthrough for setting up SSH keys to securely access GitHub repositories from both PowerShell and WSL (Windows Subsystem for Linux).
Before you begin, ensure you have:
- A GitHub account.
- PowerShell for Windows (run as Administrator).
- WSL installed for executing Linux commands.
-
Generate an SSH Key: Generate a new SSH key pair using the following command. Replace
"[email protected]"
with your GitHub email address. This email will be associated with the SSH key, helping to identify the key's purpose.ssh-keygen -t ed25519 -C "[email protected]"
- Follow the prompts to save the key to the default location (
~/.ssh/id_ed25519
). - When prompted, setting a passphrase is optional but recommended for added security.
- Follow the prompts to save the key to the default location (
-
Add SSH Key to GitHub: Display your new public SSH key and copy it to your clipboard:
cat ~/.ssh/id_ed25519.pub
- Navigate to your GitHub account settings.
- Go to SSH and GPG keys → New SSH key.
- Paste your copied key into the field and save it.
-
Start and Configure ssh-agent: In PowerShell (run as Administrator), set the
ssh-agent
service to start automatically, then start the service:Set-Service -Name ssh-agent -StartupType Automatic Start-Service ssh-agent
-
Add SSH Key to ssh-agent: Add your new SSH key to the ssh-agent to manage your keys:
ssh-add ~/.ssh/id_ed25519
-
Test SSH Connection: Test your SSH connection to GitHub:
ssh -T git@github.com
If successful, you'll receive a welcome message from GitHub.
-
Start and Configure ssh-agent: In your WSL terminal, start the ssh-agent:
eval "$(ssh-agent -s)"
-
Add SSH Key to ssh-agent: Similarly, add your SSH key to the ssh-agent in WSL:
ssh-add ~/.ssh/id_ed25519
-
Test SSH Connection: Test your connection to GitHub via SSH:
ssh -T [email protected]
Look for a welcome message from GitHub to confirm the connection is successful.
For each Git repository you work with, ensure the remote URL is set to use SSH. This enables secure, key-based authentication for your Git operations:
git remote set-url origin [email protected]:username/repo.git
Just copy and paste the content below into the Terminal (the app) settings json.
{
"$help": "https://aka.ms/terminal-documentation",
"$schema": "https://aka.ms/terminal-profiles-schema",
"actions":
[
{
"command": "find",
"keys": "ctrl+shift+f"
},
{
"command": "paste",
"keys": "ctrl+v"
},
{
"command":
{
"action": "copy",
"singleLine": false
},
"keys": "ctrl+c"
},
{
"command":
{
"action": "splitPane",
"split": "auto",
"splitMode": "duplicate"
},
"keys": "alt+shift+d"
}
],
"copyFormatting": "none",
"copyOnSelect": false,
"defaultProfile": "{51855cb2-8cce-5362-8f54-464b92b32386}",
"firstWindowPreference": "defaultProfile",
"profiles":
{
"defaults":
{
"colorScheme": "xcad",
"cursorShape": "filledBox",
"font":
{
"face": "JetBrainsMono Nerd Font",
"size": 14.0
},
"historySize": 12000,
"intenseTextStyle": "bright",
"opacity": 60,
"padding": "8",
"scrollbarState": "visible",
"useAcrylic": true
},
"list":
[
{
"commandline": "C:\\Program Files\\PowerShell\\7\\pwsh.exe --NoLogo",
"elevate": false,
"guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
"hidden": false,
"name": "PowerShell",
"source": "Windows.Terminal.PowershellCore"
},
{
"commandline": "%SystemRoot%\\System32\\cmd.exe",
"guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
"hidden": true,
"name": "Command Prompt"
},
{
"commandline": "cmd.exe /K C:\\Users\\Too_Faeded\\anaconda3\\Scripts\\activate.bat",
"guid": "{5c5feee2-b2a6-4109-8f8c-45171ac94222}",
"hidden": false,
"icon": "C:\\Users\\Too_Faeded\\anaconda3\\Menu\\anaconda-navigator.ico",
"name": "Conda",
"startingDirectory": "C:/Users/Too_Faeded/Documents"
},
{
"guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
"hidden": true,
"name": "Azure Cloud Shell",
"source": "Windows.Terminal.Azure"
},
{
"guid": "{51855cb2-8cce-5362-8f54-464b92b32386}",
"hidden": false,
"name": "Ubuntu",
"source": "CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc"
},
{
"guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
"hidden": true,
"name": "Ubuntu",
"source": "Windows.Terminal.Wsl"
}
]
},
"schemes":
[
{
"background": "#0C0C0C",
"black": "#0C0C0C",
"blue": "#0037DA",
"brightBlack": "#767676",
"brightBlue": "#3B78FF",
"brightCyan": "#61D6D6",
"brightGreen": "#16C60C",
"brightPurple": "#B4009E",
"brightRed": "#E74856",
"brightWhite": "#F2F2F2",
"brightYellow": "#F9F1A5",
"cursorColor": "#FFFFFF",
"cyan": "#3A96DD",
"foreground": "#CCCCCC",
"green": "#13A10E",
"name": "Campbell",
"purple": "#881798",
"red": "#C50F1F",
"selectionBackground": "#FFFFFF",
"white": "#CCCCCC",
"yellow": "#C19C00"
},
{
"background": "#012456",
"black": "#0C0C0C",
"blue": "#0037DA",
"brightBlack": "#767676",
"brightBlue": "#3B78FF",
"brightCyan": "#61D6D6",
"brightGreen": "#16C60C",
"brightPurple": "#B4009E",
"brightRed": "#E74856",
"brightWhite": "#F2F2F2",
"brightYellow": "#F9F1A5",
"cursorColor": "#FFFFFF",
"cyan": "#3A96DD",
"foreground": "#CCCCCC",
"green": "#13A10E",
"name": "Campbell Powershell",
"purple": "#881798",
"red": "#C50F1F",
"selectionBackground": "#FFFFFF",
"white": "#CCCCCC",
"yellow": "#C19C00"
},
{
"background": "#282C34",
"black": "#282C34",
"blue": "#61AFEF",
"brightBlack": "#5A6374",
"brightBlue": "#61AFEF",
"brightCyan": "#56B6C2",
"brightGreen": "#98C379",
"brightPurple": "#C678DD",
"brightRed": "#E06C75",
"brightWhite": "#DCDFE4",
"brightYellow": "#E5C07B",
"cursorColor": "#FFFFFF",
"cyan": "#56B6C2",
"foreground": "#DCDFE4",
"green": "#98C379",
"name": "One Half Dark",
"purple": "#C678DD",
"red": "#E06C75",
"selectionBackground": "#FFFFFF",
"white": "#DCDFE4",
"yellow": "#E5C07B"
},
{
"background": "#FAFAFA",
"black": "#383A42",
"blue": "#0184BC",
"brightBlack": "#4F525D",
"brightBlue": "#61AFEF",
"brightCyan": "#56B5C1",
"brightGreen": "#98C379",
"brightPurple": "#C577DD",
"brightRed": "#DF6C75",
"brightWhite": "#FFFFFF",
"brightYellow": "#E4C07A",
"cursorColor": "#4F525D",
"cyan": "#0997B3",
"foreground": "#383A42",
"green": "#50A14F",
"name": "One Half Light",
"purple": "#A626A4",
"red": "#E45649",
"selectionBackground": "#FFFFFF",
"white": "#FAFAFA",
"yellow": "#C18301"
},
{
"background": "#002B36",
"black": "#002B36",
"blue": "#268BD2",
"brightBlack": "#073642",
"brightBlue": "#839496",
"brightCyan": "#93A1A1",
"brightGreen": "#586E75",
"brightPurple": "#6C71C4",
"brightRed": "#CB4B16",
"brightWhite": "#FDF6E3",
"brightYellow": "#657B83",
"cursorColor": "#FFFFFF",
"cyan": "#2AA198",
"foreground": "#839496",
"green": "#859900",
"name": "Solarized Dark",
"purple": "#D33682",
"red": "#DC322F",
"selectionBackground": "#FFFFFF",
"white": "#EEE8D5",
"yellow": "#B58900"
},
{
"background": "#FDF6E3",
"black": "#002B36",
"blue": "#268BD2",
"brightBlack": "#073642",
"brightBlue": "#839496",
"brightCyan": "#93A1A1",
"brightGreen": "#586E75",
"brightPurple": "#6C71C4",
"brightRed": "#CB4B16",
"brightWhite": "#FDF6E3",
"brightYellow": "#657B83",
"cursorColor": "#002B36",
"cyan": "#2AA198",
"foreground": "#657B83",
"green": "#859900",
"name": "Solarized Light",
"purple": "#D33682",
"red": "#DC322F",
"selectionBackground": "#FFFFFF",
"white": "#EEE8D5",
"yellow": "#B58900"
},
{
"background": "#000000",
"black": "#000000",
"blue": "#3465A4",
"brightBlack": "#555753",
"brightBlue": "#729FCF",
"brightCyan": "#34E2E2",
"brightGreen": "#8AE234",
"brightPurple": "#AD7FA8",
"brightRed": "#EF2929",
"brightWhite": "#EEEEEC",
"brightYellow": "#FCE94F",
"cursorColor": "#FFFFFF",
"cyan": "#06989A",
"foreground": "#D3D7CF",
"green": "#4E9A06",
"name": "Tango Dark",
"purple": "#75507B",
"red": "#CC0000",
"selectionBackground": "#FFFFFF",
"white": "#D3D7CF",
"yellow": "#C4A000"
},
{
"background": "#FFFFFF",
"black": "#000000",
"blue": "#3465A4",
"brightBlack": "#555753",
"brightBlue": "#729FCF",
"brightCyan": "#34E2E2",
"brightGreen": "#8AE234",
"brightPurple": "#AD7FA8",
"brightRed": "#EF2929",
"brightWhite": "#EEEEEC",
"brightYellow": "#FCE94F",
"cursorColor": "#000000",
"cyan": "#06989A",
"foreground": "#555753",
"green": "#4E9A06",
"name": "Tango Light",
"purple": "#75507B",
"red": "#CC0000",
"selectionBackground": "#FFFFFF",
"white": "#D3D7CF",
"yellow": "#C4A000"
},
{
"background": "#300A24",
"black": "#171421",
"blue": "#0037DA",
"brightBlack": "#767676",
"brightBlue": "#08458F",
"brightCyan": "#2C9FB3",
"brightGreen": "#26A269",
"brightPurple": "#A347BA",
"brightRed": "#C01C28",
"brightWhite": "#F2F2F2",
"brightYellow": "#A2734C",
"cursorColor": "#FFFFFF",
"cyan": "#3A96DD",
"foreground": "#FFFFFF",
"green": "#26A269",
"name": "Ubuntu-20.04-ColorScheme",
"purple": "#881798",
"red": "#C21A23",
"selectionBackground": "#FFFFFF",
"white": "#CCCCCC",
"yellow": "#A2734C"
},
{
"background": "#300A24",
"black": "#171421",
"blue": "#0037DA",
"brightBlack": "#767676",
"brightBlue": "#08458F",
"brightCyan": "#2C9FB3",
"brightGreen": "#26A269",
"brightPurple": "#A347BA",
"brightRed": "#C01C28",
"brightWhite": "#F2F2F2",
"brightYellow": "#A2734C",
"cursorColor": "#FFFFFF",
"cyan": "#3A96DD",
"foreground": "#FFFFFF",
"green": "#26A269",
"name": "Ubuntu-ColorScheme",
"purple": "#881798",
"red": "#C21A23",
"selectionBackground": "#FFFFFF",
"white": "#CCCCCC",
"yellow": "#A2734C"
},
{
"background": "#000000",
"black": "#000000",
"blue": "#000080",
"brightBlack": "#808080",
"brightBlue": "#0000FF",
"brightCyan": "#00FFFF",
"brightGreen": "#00FF00",
"brightPurple": "#FF00FF",
"brightRed": "#FF0000",
"brightWhite": "#FFFFFF",
"brightYellow": "#FFFF00",
"cursorColor": "#FFFFFF",
"cyan": "#008080",
"foreground": "#C0C0C0",
"green": "#008000",
"name": "Vintage",
"purple": "#800080",
"red": "#800000",
"selectionBackground": "#FFFFFF",
"white": "#C0C0C0",
"yellow": "#808000"
},
{
"background": "#1A1A1A",
"black": "#121212",
"blue": "#2B4FFF",
"brightBlack": "#666666",
"brightBlue": "#5C78FF",
"brightCyan": "#5AC8FF",
"brightGreen": "#905AFF",
"brightPurple": "#5EA2FF",
"brightRed": "#BA5AFF",
"brightWhite": "#FFFFFF",
"brightYellow": "#685AFF",
"cursorColor": "#FFFFFF",
"cyan": "#28B9FF",
"foreground": "#F1F1F1",
"green": "#7129FF",
"name": "xcad",
"purple": "#2883FF",
"red": "#A52AFF",
"selectionBackground": "#FFFFFF",
"white": "#F1F1F1",
"yellow": "#3D2AFF"
}
],
"showTabsInTitlebar": true,
"tabSwitcherMode": "inOrder",
"themes": [],
"useAcrylicInTabRow": true
}
Could use ripgrep instead if you want, but I am using ag for searching.
choco install ag
apt-get install silversearcher-ag
Cat replacement with syntax highlighting.
choco install bat
sudo apt install bat
Fuzzy finding for files or for previous commands on command line.
choco install fzf
Install-Module -Name PSFzf
sudo apt install fzf
Better cd command.
choco install zoxide
sudo apt install zoxide
When upgrading Ubuntu:
sudo apt update && sudo apt full-upgrade && sudo do-release-upgrade
There can be some hanging issues when going from 22 to 24 on WSL2 so I made sure to remove snapd first by doing:
sudo apt remove snapd
This package can be added back after upgrade if needed.
Neovim unstable releases can be broken and make an error when trying to run nvim .
after upgrading.
In my case it was due to having neovim installed from old (jammy) unstable PPA:
remove old repository list, but there may be others so likely better to remove all neovim-ppa ones with the file explorer:
sudo rm /etc/apt/sources.list.d/neovim-ppa-unstable-jammy.list
add new repository list:
sudo add-apt-repository ppa:neovim-ppa/unstable
upgrade neovim package:
sudo apt update && sudo apt upgrade neovim
Other GitHub repos to help you with Academic Success.
Visit my LaTex Template repo for a template to start writing academic publications in LaTex quick: LaTex Template. [[Latex Scientific Writing Template]]
Visit my Scholarship Applications repo for instructions templates for applying to Graduate Level Scholarships, such as NSERC: Scholarship Applications. [[Scholarship Applications]]
Visit Portfolio Website repo for instructions and code to an easy Portfolio Website and host it for FREE using GitHub: Portfolio Website). [[J.D.Lanctot's Portfolio]]
If you have any suggestions or improvements for this template, feel free to open an issue or submit a pull request.
This project is licensed under the MIT License - see the LICENSE file for details. [[LICENSE]]