Install zsh first. Follow your distribution's instructions and make sure it exists on your system.
# fedora example
sudo dnf install zsh
All dependencies are listed in deps.json
under dependencies
key.
There is a healthcheck script included that will check if everything is set up correctly.
It's written in python so we have to init virtual environment first.
python3 -m venv .venv
.venv/bin/pip3 install -r requirements.txt
After that run:
./healthcheck.py
to see what's missing on your system. Install necessary dependencies before proceeding further.
- WSL
- Administrator access to powershell
irm christitus.com/win | iex
git clone git@github.com:mstarski/win-dotfiles.git ~/.config/win-dotfiles
Make sure that every asset in assets
directory is properly installed in the system (i.e font).
Copy default env.example.lua to env.lua file to start with the default configuration
cp nvim/lua/mstarski/env.example.lua nvim/lua/mstarski/env.lua
Symlinks will make sure that every file from this repo will be linked to the proper location. Files that will be symlinked:
nvim
directory for neovimtmux.conf
for tmux configurationzshrc
for zshell configurationAutoHotkey.ahk
for AutoHotkey configrationwin-term-settings.json
for Windows Terminal configuration
There are scripts provided that will do everything automatically on both systems:
./linux-symlinks.sh
./win-symlinks.ps1 # Make sure to run this one as an Administrator
A set of useful git aliases that can be injected like this:
git config --global include.path $(pwd)/gitalias.txt
- Install tmux plugin manager
- Install plugins via
<prefix>I
-
oh-my-zsh
If you use oh my zsh as your distro setMS_OH_MY_ZSH
environment variable to1
. After that install pure theme -
oh-my-posh
If you use oh my posh as your distro setMS_OH_MY_POSH
environment variable to1
.
After installing shell distro make sure to install zsh-autosuggestions plugin
If there are any secrets that have to be injected to the environment but can't be stored publicly there are 2 ways to use them in this repo:
-
Create a
secrets.zsh
file in theshell
directory and write your variables there. It's .gitignored and sourced automatically so it will work out of the box without commiting to the repo. -
Use
get-secrets.py
script that will download values from the Bitwarden CLI. These secrets must be already stored encrypted to avoid pasting them in plaintext. Script will readsecrets
array from thedeps.json
, query BW for values and then put it in the~/.secrets
directory where they can be read.
All the third-party stuff should be placed under .gitignored folder third-party
to not pollute the repo