show/hide
- WSL
- Use package managers whenever possible (
apt
,brew
,winget
,choco
,npm
) - Dotfiles are symlinked from this repo into
$HOME
- (Mini)Conda, Jupyter, Python
- LaTeX + reveal-md for typesetting
- Bash with
Oh-My-Posh
The bootstrap
file will take care of installing almost everything in my Linux subsystem. Just cd
into the local folder of this repo and run ./bootstrap
. This bootstrap
script calls the individual installers to set up the dotfiles, bin/
, and package installers using APT
, Homebrew
(Linuxbrew
), and NPM
.
cd $HOME
git clone https://github.com/LSYS/dotfiles.git
cd dotfiles
./bootstrap
The PowerShell
scripts in win/
will take care of installing Windows OS applications using winget
and, to a smaller extent for applications that cannot be installed from winget
, Chocolatey
.
To install apps using winget
and Chocolatey
:
cd win
./winget.ps1
./choco.ps1
-
Install
WSL
: OpenPowerShell
as administratorwsl --install -d Debian # confirm that bash is running which $SHELL
-
Install Native Windows apps: Open
PowerShell
(./choco.ps1
need Admin)./winget.ps1 ./choco.ps1
This will install
WindowsTerminal
andOh-My-Posh
. Typeoh-my-posh font install
to install the fonts and choose Meslo (recommended). Seth the font in WindowTerminal setting (settings.json)
{ "profiles": { "defaults": { "font": { "face": "MesloLGM NF" } } } }
-
Open WSL (
Debian
) in WindowsTerminal and run thebootstrap
installer:cd $HOME/dotfiles && ./bootstrap
This will call the following installers:
dotfiles.sh
win/wslconfig.sh
bin/install.sh
packages/apt.sh
packages/brew.sh
packages/npm.sh
monty/install.sh
-
Once
Oh-My-Posh
is installed viapackages/brew.sh
. Check that it workseval "$(oh-my-posh init bash)"
and symlink the poshthemes to home (where
bash/.bash_profile
will look for the themes)cd $HOME && mkdir poshthemes && cd poshthemes ln -s /home/linuxbrew/.linuxbrew/opt/oh-my-posh/themes/*
Will be installed in ./dotfiles.sh
.
.
├── bash
│ ├── .aliases
│ ├── .bash_profile
│ ├── .exports
│ ├── .functions
│ └── .inputrc
.aliases
: Shell aliases defined here (including some forGit
).bash_profile
: General bash settings (includingOh-My-Posh
and sources other bashdotfiles
).exports
: Forenvironment variables
(e.g., custom shell utilities andconda
is specified here).functions
: For functions too big foraliases
but too small forbin/
.inputrc
: Config for input (case-insensitive completion
here)
(Note: .bash_profile
is the first config that will be read by bash
. So this file will source all other relevant dotfiles.)
Will be installed in ./dotfiles.sh
.
├── git
│ └── .gitconfig
.gitconfig
: Includes Git
aliases.
Will be installed by ./monty/install.sh
.
├── monty
│ ├── install.sh
│ ├── jupyter_notebook_config.py
│ └── requirements
│ ├── base.txt
│ ├── dev.txt
│ ├── docs.txt
│ └── gis.txt
jupyter_notebook_config.py
: Needed to make sure notebooks open in browser (native from Windows)install.sh
: Installs Miniconda, Jupyter Notebook (and its extensions), installs base packages into base, createsvenv
(s) and installs the relevant packages into thevenv
(s).
Will be installed by packages/apt.sh
, packages/brew.sh
, and packages/npm.sh
.
├── packages
│ ├── apt.sh
│ ├── brew.sh
│ └── npm.sh
apt.sh
: Installs utilities fromAPT
.brew.sh
Sets up and installLinuxbrew
.npm.sh
: Sets upNVM
andNPM
. Installsreveal-md
(reveal.js
) and other utilities only available fromNPM
.
Will be installed by win/winget.ps1
and win/choco.ps1
(using PowerShell; win/choco.ps1
will require admin priviledges).
├── win
│ ├── .wslconfig
│ ├── .wslconfig-x1
│ ├── chocolatey.ps1
│ ├── terminal-settings.json
│ ├── winget.ps1
│ └── wslconfig.sh
winget.ps1
: Installswinget
and follow up by installing other applications (e.g. Chrome, WindowsTerminal, Oh-My-Posh, GNUMake, PowerToys, 7zip, Slack, Sublime Text, Git etc.).chocolatey.ps1
: InstallsChocolatey
and other Windows app that cannot be installed bywinget
(e.g., MikTex, TexStudio, tree, postgresql, pgadmin4, du, etc.). This will requirePowerShell
admin priviledges.wslconfig.sh
: Installs.wslconfig
toc/Users/<username>
├── misc
│ ├── img
│ ├── .curlrc
│ ├── .latexmkrc
│ ├── .wgetrc
│ ├── references.md
│ └── vimium.txt