Skip to content
mr-ssdPublic

About

My personal Linux dotfiles for a fresh machine.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

Dotfiles

My personal Linux dotfiles for a fresh machine.

I keep this repo public in case other people find the setup useful and want to adapt it for their own machines.

This repo sets up:

  • zsh as your shell
  • Antidote for Zsh plugins
  • mise for developer tools such as node, python, ripgrep, fzf, and zoxide
  • a default Powerlevel10k prompt config

Who this is for

I use this repo for my own machines. If you found it useful, feel free to fork it and adapt it to your own workflow.

What the installer does

When you run ./install.sh, it will:

  1. Install basic system packages: curl, git, keychain, pinentry (pinentry-tty on apt, pinentry on dnf/pacman), and zsh
  2. Link the dotfiles from this repo into your home directory
  3. Install mise if it is missing
  4. Install Antidote for Zsh plugins
  5. Install the tools listed in config/mise/config.toml
  6. Link gnupg/gpg-agent.conf to ~/.gnupg/gpg-agent.conf
  7. Link the default Powerlevel10k config to $ZDOTDIR/.p10k.zsh (or ~/.p10k.zsh when ZDOTDIR is not set)
  8. Refresh the mise zsh completion from the installed mise version

Supported Linux package managers

The installer currently supports:

  • apt
  • dnf
  • pacman

If your system uses something else, the script will still link the files, but you may need to install some base packages yourself first.

Quick start

Recommended workflow:

  1. Fork this repo to your own GitHub account
  2. Clone your fork
  3. Make your changes locally
  4. Push the changes back to your fork

Example:

git clone <your-fork-url> ~/dotfiles
cd ~/dotfiles
./install.sh

After you customize the repo, save and push your changes:

git add .
git commit -m "Update dotfiles"
git push

After that:

  1. Open a new terminal
  2. If needed, change your default shell:
chsh -s "$(command -v zsh)"

Optional local config

If you want machine-specific aliases, secrets, tokens, or private environment variables, create a local file:

cp ~/dotfiles/zsh/.zshrc.local.example "${ZDOTDIR:-$HOME}/.zshrc.local"

That file is for things you do not want to commit to the repo.

Powerlevel10k theme

This setup ships with a default Powerlevel10k config in zsh/.p10k.zsh.

During install, it is linked to:

${ZDOTDIR:-$HOME}/.p10k.zsh

zsh/.zshrc loads it automatically.

To create or reconfigure your prompt:

p10k configure

That command will update:

${ZDOTDIR:-$HOME}/.p10k.zsh

If you want to keep the new prompt as the default for future machines, copy it back into the repo:

cp "${ZDOTDIR:-$HOME}/.p10k.zsh" ~/dotfiles/zsh/.p10k.zsh

What tools are installed by mise

The current mise config installs:

  • bat
  • fd
  • fzf
  • k9s
  • kubectl
  • kubectl-ai
  • node
  • python
  • ripgrep
  • shellcheck
  • shfmt
  • usage
  • zoxide

You can change that list in config/mise/config.toml.

The installer also refreshes zsh/.zsh/completions/_mise from your installed mise binary so completions stay aligned with the current version.

Repo layout

.
├── .zsh_plugins.txt
├── config/
│   └── mise/
│       └── config.toml
├── gnupg/
│   └── gpg-agent.conf
├── install.sh
├── README.md
└── zsh/
    ├── .p10k.zsh
    ├── .zsh/
    │   └── completions/
    ├── .zshrc
    └── .zshrc.local.example

Notes

  • You can run ./install.sh again safely.
  • The default Powerlevel10k config is stored in zsh/.p10k.zsh.
  • mise manages user-space tools. Your Linux package manager is still used for basic system packages.

About

My personal Linux dotfiles for a fresh machine.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages