2025-10-10 11:51:53 -05:00
2025-10-05 18:32:58 -05:00
2025-10-05 14:19:38 -05:00
2025-10-05 14:20:02 -05:00
2025-10-05 14:20:28 -05:00
Zsh
2025-10-05 14:18:54 -05:00
2025-10-10 11:51:53 -05:00

dot

Description

There is no place like $HOME. All my dotfiles, and a guide for configuring a new install.

Table of Contents

Features / TODOS

  • All my dotfiles.
  • Step by step guide.
  • Resources and references.
  • Current list of recommended software.

Usage

After installation, you should login as root instead of the user. As this gives us a chance to add users, change passwords, set groups, and change defaults.

Step One: - [ ] Add users and assign passwords and groups
Where required, add users to groups such as custom, sudo, dialout etc...

sudo useradd -m user_variable
sudo passwd user_variable
sudo usermod -aG user group

Step Two: - [ ] Removing root login, and copying ssh keys.
Now that we have a new user, we can make some security changes.

sed -i 's/^PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl restart sshd

Create and copy our ssh keys to server or instance.
ssh-keygen -t ed25519 -C "your_email@example.com" ssh-copy-id username@remote_host

Disable password logins
sed -i 's/^PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo systemctl restart sshd

Step Three: - [ ] Update and upgrade
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
sudo apt autoremove
sudo apt clean

Step Four: - [ ] Download Packages Here is a list of packages to start with.
wget -O - https://myrepos.dev/Randy-Jordan/dot/raw/branch/main/.apt_defaults.list | xargs sudo apt-get -y install
curl https://myrepos.dev/Randy-Jordan/dot/raw/branch/main/.apt_defaults.list | xargs apt-get -y install

Step Five: - [ ] Change defaults
I like to change my XDG user directory defaults. Located at /etc/xdg/user-dirs.defaults
wget -O /etc/xdg/user-dirs.defaults https://myrepos.dev/Randy-Jordan/eg/raw/branch/main/dot/xdg/user-dirs.custom
curl https://myrepos.dev/Randy-Jordan/eg/raw/branch/main/dot/xdg/user-dirs.custom > /etc/xdg/user-dirs.defaults

I also like to change the user shell to zsh.
chsh -s /path/to/new/shell username

Step Six: - [ ] Login as user and setup dotfiles
If you are already tracking your dotfiles and this a fresh install, you can run these commands:
alias config='/usr/bin/git --git-dir=$HOME/.dot/ --work-tree=$HOME' Alias config
echo ".dot" >> .gitignore Avoid weird recursion problems where you clone.
git clone --bare https://github.com/Randy-Jordan/dot.git $HOME/.dot Clone repo
alias config='/usr/bin/git --git-dir=$HOME/.dot/ --work-tree=$HOME' Current shell scope

You may already have some dotfiles, so we will back them up to avoid conficts.
mkdir -p .config-backup && \ config checkout 2>&1 | egrep "\s+\." | awk {'print $1'} | \ xargs -I{} mv {} .config-backup/{}
Now we can run the checkout command to get our dotfiles from the repo.
config checkout
Make sure to set untracked files setting.
config config --local status.showUntrackedFiles no

Here is a script to automate the above.
wget -O - https://myrepos.dev/Randy-Jordan/sh/raw/branch/main/dot.sh | bash
curl https://myrepos.dev/Randy-Jordan/sh/raw/branch/main/dot.sh | bash

config status To see status of your dotfiles.
config add .xyzfile To start adding dotfiles.

Credits / Resources

Tom Preston-Werner - README Driven Development
Dotfiles: Best way to store in a bare git repository

License

This project is licensed under GPLv3 - see the LICENSE file for details.

Description
There is no place like $HOME. Dotfiles and setup guide / scripts for new installs.
Readme 59 KiB