Skip to content

My dotfiles including Linux setup and maintenance scripts, patches, Docker images and shell-scripting utilities

Notifications You must be signed in to change notification settings

ivan-ristovic/dotfiles

Repository files navigation

dotfiles

all-in-one all-in-one

This repository contains my personal dotfiles, QOL scripts and binaries, as well as installation scripts for quick setup of Linux systems (primarily for Arch and Ubuntu, since I use them at the moment for my local/cloud machines). Setup can be done by invoking setup, a powerful all-in-one setup and maintenance script.

Showcase

Shell (zsh with oh-my-zsh, p10k prompt)

zsh prompt

My custom (additional) features:

Session Manager (tmux)

tmux

My custom (additional features):

Editor (plugin-enriched Neovim with zsh, git and fzf integration)

nvim

Music Player (mpd + ncmpcpp)

ncmpcpp

Search (fzf fuzz search integrated with zsh, nvim and forgit; fd and rg)

fzf

File Manager (ranger)

ranger

Alternative theming

See the themes directory for more information

Presentation theme

presentation

Repository overview

This repository contains:

  • my personal dotfiles symlinked to the home directory (dotfiles/ directory)
  • binaries and scripts added to the PATH for quick invocation (bin/ directory)
  • package install lists (lists/ directory)
  • custom package install scripts (install/ directory)
  • patches for global configuration files (patches/ directory)
  • a small shell scripting library (shlib/ directory)
  • containers for sandboxing and testing (containers/ directory)
  • custom systemd services (systemd/ directory)

Each directory has a README with more details.

Notable scripts:

  • setup - front-end setup script, can be used for package installations, dotfiles management, etc.
    • .link.force - set of paths to be forcefully overwritten when symlinking
  • pull - pulls latest changes from the remote, stashing and re-applying custom changes if they exist

bin/ directory is placed on the PATH automatically if this dotfiles directory is found in user's home directory.

Invoking the setup

setup script can (see setup --help):

  • install packages from the provided list or command line
  • link dotfiles to provided user's home directory
  • perform patches to global configuration files
  • install custom systemd services

Also check out:

  • lists/ directory for more information on the mass package installation lists
  • install/ directory for more information on how to use the scripts for custom package installations
  • patches/ directory for more information on how to use the automatic config patching system
  • systemd/ directory for more information on how to create custom systemd services