task | name |
---|---|
operating system | arch |
window manager | hyprland |
terminal | kitty |
shell | zsh |
code editor | neovim |
zsh add-ons: zinit, powerlevel10k, syntax-highlighting, auto suggestions, completions, fzf tab
- Install packages
Arch
sudo pacman -S git lazygit alacritty zsh stow neovim eza bat fzf fd ripgrep zoxide lua51 luarocks npm pandoc
sudo npm install -g live-server
Ubuntu
sudo apt install git alacritty zsh stow neovim eza bat fzf fd-find ripgrep zoxide tmux
Ubuntu lazygit installation
LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | \grep -Po '"tag_name": *"v\K[^"]*')
curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/download/v${LAZYGIT_VERSION}/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz"
tar xf lazygit.tar.gz lazygit
sudo install lazygit -D -t /usr/local/bin/
- Optional: Backup directories that will be changed (if you want to stow all dotfiles)
cd $HOME
mkdir -p .backup_config/.config
mv .zshrc .backup_config/
mv .p10k.zsh .backup_config/
mv .tmux.conf .backup_config/
mv .config/alacritty.toml .backup_config/.config/
mv .config/neofetch .backup_config/.config/
mv .config/alacritty .backup_config/.config/
mv .config/nvim .backup_config/.config/
- Clone this dotfiles repo and stow them
cd $HOME
git clone https://github.com/maxelonej/dotfiles.git
cd dotfiles
stow .
- To make zsh plugins work, need to install zinit:
cd $HOME
bash -c "$(curl --fail --show-error --silent --location https://raw.githubusercontent.com/zdharma-continuum/zinit/HEAD/scripts/install.sh)"
- After installing and reloading the shell, compile zinit via:
zinit self-update
- To make tmux plugins work, need to install tpm and run installer:
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
cd ~/.tmux/plugins/tpm/scripts/
tmux source ~/.tmux.conf
./install_plugins.sh
Custom shortcuts:
Used instead of default because these keymaps more comfy for me from i3wm
bind = $mainMod, Return, exec, $terminal
bind = $mainMod, Q, killactive,
bind = $mainMod, S, togglesplit, # split
bind = $mainMod, F, fullscreen, # fullscreen apps
Move focus with mainMod + vim motion hjkl instead of arrow keys
bind = $mainMod, H, movefocus, l
bind = $mainMod, L, movefocus, r
bind = $mainMod, J, movefocus, u
bind = $mainMod, K, movefocus, d
Default Tmux keymaps Default Vim keymaps LazyVim keymaps
Custom:
jj
in insert mode for change mode to normal<leader>cp
for:MarkdownPreview
<c-n>
/<leader>e
/<leader>n
for:Neotree float reveal toggle<CR>
(explorer/file structure)<leader>l
for:Lazy<CR>
<leader>m
for:Mason<CR>
<Tab>
for:bn<CR>
(next buffer)<S-Tab>
for:bp<CR>
(previous buffer)