Dotfiles are hidden configuration files in Unix-like systems that store settings for shells, editors, and other tools. By managing our dotfiles, we'll ensure a consistent experience across systems and save time reconfiguring tools.
All tools and configurations were tested under Linux Mint 22.1 Cinnamon.
Download install.sh into your newly home directory to install and test this configuration in some seconds:
wget https://github.com/aalekseenkov/dotfiles/raw/refs/heads/master/.github/install.shchmod u+x install.shbash install.sh
- wezterm - a powerful cross-platform terminal emulator and multiplexer
- fish - a smart and user-friendly command line shell
- zsh - a shell designed for interactive use
- starship - a cross-shell prompt
- omb - a framework for bash configuration
- ble - a bash command line editor
- omf - a framework for fish configuration
- omz - a framework for zsh configuration
- neovim - a hyperextensible Vim-based text editor
- vifm - a file manager with curses interface
The list is updated as it develops.
- In GNOME Terminal Preferences rename
UnnamedProfile's name toDefault - Run pre-install and the Gogh script's commands
sudo apt update && sudo apt-get install -y dconf-cli uuid-runtime wget
bash -c "$(wget -qO- https://git.io/vQgMr)"
- Input the numbers of the themes: Selenized Dark, Selenized Light (
280 281)
sudo apt update && sudo apt-get install -y unzip curlsudo mkdir -p /usr/share/fonts/Hackcurl -fsSLO $(curl -s https://api.github.com/repos/ryanoasis/nerd-fonts/releases/latest | grep browser_download_url | grep 'Hack.zip' | cut -d '"' -f 4)sudo unzip ./Hack.zip -d /usr/share/fonts/Hack/ && rm -f ./Hack.zip- In GNOME Terminal Preferences > Selenized Light > Custom Font - set
Hack Nerd Font Mono- 16 - In GNOME Terminal Preferences > Selenized Dark > Custom Font - set
Hack Nerd Font Mono- 16 - In GNOME Terminal Preferences - set
Selenized Lightas default theme
echo ".dotfiles" >> .gitignoregit clone --bare https://github.com/aalekseenkov/dotfiles $HOME/.dotfilesalias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'dotfiles config --local status.showUntrackedFiles notest -e ~/.bashrc && mv ~/{.bashrc,.bashrc.save}test -e ~/.zshrc && mv ~/{.zshrc,.zshrc.save}dotfiles checkoutsource ~/.bashrcvim +PlugInstall +qallgit clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm~/.tmux/plugins/tpm/bin/install_plugins
To change a shell for the current user to zsh or fish:
- chsh -s /usr/bin/zsh
- kill -9 -1
ssh-keygen -t ed25519 -C "your_email@example.com"eval "$(ssh-agent -s)"ssh-add ~/.ssh/id_ed25519
We should add two ssh-keys (authentication one and signing one) to the account on GitHub
git config --global user.name "your_user"git config --global user.email "your_email@example.com"git config --global commit.gpgsign truegit config --global gpg.format sshgit config --global user.signingkey "~/.ssh/id_ed25519.pub"git config --global gpg.ssh.allowedSignersFile ~/.ssh/allowed_signerstouch ~/.ssh/allowed_signersecho "your_email@example.com <~/.ssh/id_ed25519.pub>" >> ~/.ssh/authorized_signatures
git remote set-url origin git@github.com:OWNER/REPOSITORY.gitgit remote -v
- The best way to store your dotfiles: A bare Git repository EXPLAINED
- Manage Dotfiles With a Bare Git Repository
- Dotfiles: Best way to store in a bare git repository
git init --bare $HOME/.dotfilesalias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'echo "alias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'" >> $HOME/.bashrcdotfiles config --local status.showUntrackedFiles nodotfiles add .vimrcdotfiles commit -S -m "add .vimrc"dotfiles remote add origin git@github.com:aalekseenkov/dotfiles.gitdotfiles push -u origin master
