Skip to content

echasnovski/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

113 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Personal dotfiles

This is a Git repository to backup and track dotfiles for Linux OS (Arch-based at the moment but most should work on Ubuntu). Structured for a better use with GNU Stow. Each top-level directory is created to be a "stow package": a bundle of files which can be symlinked as a group. To create symlinks for a package (for example, 'bash'), run:

stow -t ~ -vS bash

NOTE: Neovim package is a Git submodule to my personal Neovim configuration.

Used tools

A (probably not full) list of (at least once in a while) used tools (in alphabetical order; asterisk indicates crucial ones):

Back up

  • All personal data.
  • /opt directories with useful appimages.
  • GPG key:
    • Identify your private key: gpg --list-secret-keys evgeni.chasnovski@gmail.com. Remember the ID of your key.
    • Export key: gpg --export-secret-keys YOUR_ID_HERE > private.key.
    • Copy the key file to the other machine using a secure transport.
  • Firefox data: whole '~/.mozilla/firefox' directory.
  • Password store of pass: whole '~/.password-store'.
  • (Optional) Transmission config: whole '~/.config/transmission' config.

Set up

Approximate guidance steps for Arch-based system:

  • Install tools:
sudo pacman -Syu
yay -Syu

sudo pacman -S acpilight btop dunst fd feh fzf ghostty git gnupg i3-wm i3lock imagemagick lazygit maim mupdf nushell openssl pass picom polybar pyenv python-pip r ripgrep rofi stow vim vlc xdotool xfce4-terminal xsel zathura zathura-djvu zathura-pdf-mupdf zsh
yay -S pyenv-virtualenv skypeforlinux-stable-bin visual-studio-code-bin pandoc-bin
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
python -m pip install pipx

# Manually install `nnn` with Nerd font support (see `nnn` section later)

# After pipx is in PATH
pipx install ipython pre-commit radian
pipx install pre-commit
pipx install radian
  • Clone this repository with its submodules:
git clone --depth 1 https://github.com/echasnovski/dotfiles ~/dotfiles
cd ~/dotfiles
git submodule update --init --recursive --depth 1
  • Stow dotfiles Run from ~/dotfiles (something may fail due to some files being auto-created during app installation; remove them):
stow -t ~ -vS bash btop dunst fonts fzf ghostty git gpg i3 ipython lazygit neovim nnn nushell picom polybar r radian ripgrep rofi st stylua vim wallpapers xfce4 xorg zathura zsh
  • Enable fonts with fc-cache -fv.

  • Restore backup:

    • GPG key: gpg --import /path/to/private.key.
    • Copy backed up directories: '/.mozilla/firefox', '/.password-store', '~/.config/transmission'.
    • Copy /opt subdirectories and make symbolic links to /usr/local/bin (see later general advices).
  • Create '~/.profile' with only relevant local environment variables. Like TERMINAL, EDITOR, PAGER, etc. Example:

export EDITOR=vim
export TERMINAL=st
export DPI=168
  • Tweak DPI. For that:

    • Update '~/.Xresources' with Xft.dpi: <value>. Helpful additional configuration:
      ! Adjust DPI with additional rendering instructions
      Xft.dpi: 168
      Xft.autohint: 0
      Xft.lcdfilter:  lcddefault
      Xft.hintstyle:  hintfull
      Xft.hinting: 1
      Xft.antialias: 1
      Xft.rgba: rgb
      
  • Install st from source. Go to ~/st and run sudo make install, which will install it system-wide in '/usr/local' directory (configured in 'config.mk'). Building it might require installation of special "building" software.

  • Change default shell: chsh -s $(which zsh) (takes effect after logout).

  • Generate wallpaper pngs. See '~/.wallpapers/tiles/README.md'.

  • Tweak polybar sources. See header of '~/.config/polybar/config_template.ini'.

  • Set up Neovim. See '~/.config/nvim/README.md'.

Notes for tools

General

  • Three recommended ways of installing applications:
    • On Arch-based systems use pacman (sudo pacman -S ...) or yay (yay -S ...) whenever possible.
    • For extra control use appimages (like several versions of Neovim):
      • Put binary in '/opt//' (like '/opt/neovim/nvim_0.6.0').
      • Make it executable with sudo chmod u+x (like sudo chmod u+x /opt/neovim/nvim_0.6.0).
      • Make soft link to '/usr/local/bin' (like sudo ln -s /opt/neovim/nvim_0.6.0 /usr/local/bin/nvim).
    • Use pipx instead of pip to install python-written applications (again, if not on Arch-based systems).

st

Whole source code for "simple terminal" is shipped with these dotfiles in 'st' directory ('~/st' after applying stow). Build and install system-wide from that source.

Xfce4 terminal

  • To remove border around opened apps, update '~/.config/gtk-3.0/gtk.css' with:
VteTerminal, vte-terminal {
  padding: 0px;
}

Polybar

  • Installation:
    • On Arch-based systems use sudo pacman -S polybar.
    • On other systems installation might require compilation from source (at least on Ubuntu). Using official instructions helped.

nnn

  • To enable nerd font icons: clone, make and move to /usr/local/bin:
git clone --depth 1 https://github.com/jarun/nnn
sudo mv nnn /opt
cd /opt/nnn
# Needs basic 'make' prerequisites (see github repo for more details)
sudo make O_NERD=1
sudo ln -s /opt/nnn/nnn /usr/local/bin/nnn

About

My personal computer environment setup

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors