4.0 KiB
4.0 KiB
Bare Git Repository
- https://www.atlassian.com/git/tutorials/dotfiles
- StreakyCobra
Starting from scratch
git init --bare $HOME/.dotfiles
alias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles --work-tree=$HOME'
dotfiles config --local status.showUntrackedFiles no
Install onto a new system
The checkout
command is expected to fail with a message.
This is because your $HOME folder might already have some stock configuration
files which would be overwritten by Git.
The “BKDIR” part is a rough shortcut to move all the offending files
automatically to a backup folder:
git clone --bare <git-repo-url> $HOME/.dotfiles
alias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles --work-tree=$HOME'
dotfiles config --local status.showUntrackedFiles no
BKDIR=".dotfiles-backup/";
dotfiles checkout 2>&1 | egrep "\s+" | awk {'print $1'} |
xargs -I{} sh -c "mkdir -p \$(dirname ${BKDIR}{}); mv -iv {} ${BKDIR}{}";
dotfiles checkout
Install into /etc/skel
sudo mkdir -p /etc/skel/.dotfiles
sudo chown $(whoami) /etc/skel
git clone --bare $(dotfiles remote -v | head -1 | cut -f2 | cut -f1 -d' ') /etc/skel/.dotfiles
alias skelfiles='/usr/bin/git --git-dir=/etc/skel/.dotfiles --work-tree=/etc/skel'
skelfiles config --local status.showUntrackedFiles no
skelfiles checkout
Useful Commands
- List all tracked files (from CWD):
dotfiles ls-tree --name-only -rz main | xargs -0 $(whence lsd) -lU
Other Tools
lazygit --git-dir=$HOME/.dotfiles --work-tree=$HOME
Install remotes as subtree
- https://www.atlassian.com/git/tutorials/git-subtree
- Create an alias for remote repository
dotfiles remote add <remote-name> <URL>
- Import remote as a single commit (squashed)
- `dotfiles subtree add --prefix --squash
- Note 1: Must be called from $HOME
- Note 2: Do not start with $HOME or ~
Install recent versions of applications
Generic Tips
Github Patches
From stackoverflow.
wget https://github.com/jesseduffield/lazygit/pull/2604.patch
git apply --stat --apply 2604.patch
Fonts
-
How to install and manage fonts on Linux
mv folder ~/.fonts
fc-cache -fv ~/.fonts
-
- Install the files without “NL” (i.e No Ligatures) in their names
-
- Download
- NerdFontsSymbolsOnly.tar.xz
- Cheat Sheet
- https://raw.githubusercontent.com/ryanoasis/nerd-fonts/master/bin/scripts/test-fonts.sh
- Download
kitty
- https://sw.kovidgoyal.net/kitty/binary/
- Install
JetBrains Mono
(without NF) &NerdFontsSymbolsOnly
fonts.- Note: outside of kitty, it may be interesting to also install JetBrains Mono with NF.
sudo apt-get install kitty-terminfo
sh ~/.config/kitty/installer.sh
Note: Kitty prepends its bin folder to the path. So it is more coherent/simpler to copy this behaviour into Zsh.
lazygit
sudo apt install git-delta
Binary Releases
LOCATION=$(curl -s https://api.github.com/repos/jesseduffield/lazygit/releases/latest \
| grep "browser_download_url.*Linux_x86_64" \
| awk '{ print $2 }' \
| sed 's/,$//' \
| sed 's/"//g')
echo $LOCATION
wget $LOCATION
tar xf *.tar.gz(om[1])
Go
go install github.com/jesseduffield/lazygit@latest
Manual
mkdir -p $HOME/dev_3rd/golang
cd $HOME/dev_3rd/golang
git clone https://github.com/jesseduffield/lazygit.git
cd lazygit
go install
neovim
sudo apt install libfuse2 xsel
mkdir -p $HOME/.local/bin
cd $HOME/.local/bin
curl -LO https://github.com/neovim/neovim/releases/download/nightly/nvim.appimage
chmod u+x nvim.appimage
ln -sf nvim.appimage nvim
ln -sf nvim.appimage vi
cd $HOME
nvim --version
vi --version