I use these dotfiles for my daily driver Ubuntu and Android setup, as well as proxmox and LXCs.
Quick setup (Desktop)
sudo apt-get update && sudo apt-get install -y git gh openssh-client
gh auth login -w -s admin:public_key
git clone --depth 1 https://github.com/MaxWolf-01/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./install && ./setup minimal && ./setup cliCreate + upload SSH key to GitHub, verify, switch remote to SSH
./setup sshkeys
gh ssh-key add ~/.ssh/id_ed25519.pub -t "$(hostname)-dotfiles-$(date +%F)"
ssh -T [email protected] || true
git -C ~/.dotfiles remote set-url origin [email protected]:MaxWolf-01/dotfiles.gitQuick setup (Pods)
apt-get update && apt-get install -y git gh openssh-client
gh auth login -w -s admin:public_key
git clone --depth 1 https://github.com/MaxWolf-01/dotfiles.git ~/.dotfiles
cd ~/.dotfiles && ./install && ./setup minimal && ./setup cli
./setup sshkeys
gh ssh-key add ~/.ssh/id_ed25519.pub -t "pod-$(hostname)-$(date +%F)"
ssh -T [email protected] || true
git -C ~/.dotfiles remote set-url origin [email protected]:MaxWolf-01/dotfiles.gitIf you plan on cloning / forking this repo, be aware that all config is tailored to me (e.g. paths, usernames, ...) and make sure to change .gitconfig to your name and email. But if you're starting from scratch anyway (which I recommend, in order to become fammiliar with the functionality bit by bit). Since these dotfiles are tailored specifically to me, your needs and preferences will be different and I would recommend you just copy the bits and pieces you need.
dotfiles
├── bin # custom scripts
├── desktop # ubuntu specifc: desktop shortcuts, icons
├── [dotbot](https://github.com/anishathalye/dotbot)
├── git # git config maps to ~/.gitconig, ...
├── ssh # ssh config maps to ~/.ssh
├── vim # vim config
├── secrets # priv. & encrypted repo (see git/hooks & setup secrets)
├── zsh
│ ├── plugin-files # place for plugin / theme scripts
│ ├── aliases # aliases for zsh, git, ...
│ ├── colors # colors for filetypes in shell
│ ├── exports # env vars and path configs
│ ├── functions # custom functions
│ ├── plugins # sourcing plugins
│ ├── zsh_config # zsh specific settings
│ └── zshrc # putting it all together
├── .gitmodules # for dotbot
├── setup # installing packages, plugins, theme, platform specific setups, ...
├── install # idempotent main install script (basic & quick setup)
├── install.conf.yaml # setup dir structure, symlinks, ...Post (distro-) installation steps
sudo apt update && sudo apt full-upgrade
sudo apt autoremove && sudo apt cleanPre-requisites and install flow:
sudo apt-get update && sudo apt-get install -y git gh openssh-client
gh auth login -w -s admin:public_key
# Clone via HTTPS (no SSH required yet)
git clone --depth 1 https://github.com/MaxWolf-01/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
# Base install
./install && ./setup minimal
# SSH enablement for private repos
./setup sshkeys
gh ssh-key add ~/.ssh/id_ed25519.pub -t "$(hostname)-dotfiles-$(date +%F)"
ssh -T [email protected] || true
git -C ~/.dotfiles remote set-url origin [email protected]:MaxWolf-01/dotfiles.git
# Optional (new shell recommended), add-ons
./setup cli
./setup ubuntu
# After SSH confirmed working:
# ./setup secrets./install and most functions in setup are idempotent, so you can run it multiple times without breaking anything, i.e. after pulling new changes, which will update the symlinks etc.
But make sure to export your gnome keyboard shortcuts via ./bin/keybindings.pl before you execute ./setup ubuntu, otherwise they get overwritten by mine.
Download and install termux apk from f-droid, then:
export DEBIAN_FRONTEND=noninteractive
termux-setup-storage
pkg update && pkg upgrade && pkg install git gh python && gh auth login
cd /data/data/com.termux/files/home && git clone --depth 1 https://github.com/MaxWolf-01/dotfiles.git
mv dotfiles .dotfiles && cd ~/.dotfiles && ./install && ./setup androidDon't worry about warnings from termux-setup-storage about deleting all your data. Should be fine.
~/storage/shared in your termux home directory is symlinked /storage/emulated/0 (where downloads folder etc. are on Android).
./setup android will install essential packages and sets up Obsidian:
An "obsidian" folder will be created in the android home directory.
To automatically commit, pull and push, run sync.
Other aliases for android specifically are in zsh/android.
Scripts for pushing conflicts to deal with them in an IDE and fixing occasional corrupt git objects are in bin.
Functions
o(open file explorer or the file given as argument)mcd(make directory and cd into it)targz(create a .tar.gz archive, usingzopfli,pigzorgzipfor compression)extract(extracts archived files / mounts disk images)fs(determine size of a file or total size of a directory)lsfs(list n largest files and folder in a directory, recursively; smallest if n is negative; n defaults to 10)gz(compare original and gzipped file size)tre(treis a shorthand fortreewith hidden files and color enabled, ignoring the.gitdirectory, listing directories first.)- `newsshpwd`` (change the ssh passphrase of given key)
- `numel`` (number of elements in folder)
archive_md(archive websites as markdown using dhravya/markdowner- and many more ... (see functions / aliases in zsh folder)
Various scripts, such as gnome keyboard shortcut backup/restore, laptop battery limiter, backup scripts, nightlight toggle shortcuts, ...
Plugins
- fzf - fuzzy finder for commands (Ctrl + R) and files (Ctrl + T), (Alt + C) to cd
into selected dir. Examples:
vim <Ctrl + T>ORvim **<tab>(trigger**can be changed in exports)git switch $(git branch -a | fzf)
- Zap plugin manger
- Zsh-syntax-highlighting
- Zsh-autosuggestions
- Zoxide with custom autocd integration - just type directory names to jump (e.g.
Dow->~/Downloads, from anywhere) - ...
- Dotbot
- Jovial Theme
- Zsh
- Various functions, aliases and scripts from other great dotfiles repos (see top of functions / the respective scripts)
- More resources on dotfiles:

