| config | ||
| scripts | ||
| .gitignore | ||
| config.json | ||
| manage.py | ||
| README.md | ||
dotfiles
git clone https://gitea.tomastm.com/tomas.mirchev/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./install.py
Do not forget to change the remote from https to ssh
git remote set-url origin git@gitea.tomastm.com:tomas.mirchev/dotfiles.git
git remote -v
Todo
- Uninstall option
- Fix inconsistencies with usage fn
Notes for README
- How to update dotfiles? By default, they are symlinked.
-> Directly modify
config/shared/<config>orconfig/envs/<env>/<config>-> If new config, add it toconfig.jsontoo. -> And simply run./manage.py link <env>. If needed, do not forget to update theconfig.json#installorhomebrew dump. - How to unlink?
-> Just remove the symlink and unspecify it from
config.jsonto keep it updated for the future.
Files and steps
Scripts:
- macos-save_homebrew.sh
- macos-install_homebrew.sh
- macos-change_hostname --hostname
- linux-setup_docker.sh
- linux-change_hostname --hostname
- setup_shh.sh -C $USER@$HOSTNAME -f internal|git|none
Setups:
- macos (--hostname)
- linux-vm (--hostname)
- linux-dev
For MacOS
$ git clone https://gitea.tomastm.com/tomas.mirchev/dotfiles.git .dotfiles
$ cd .dotfiles
$ ./manage.py setup macos --hostname macbook-pro
-> Install homebrew
-> Install all apps from dump (also stored in ./config/envs/macos)
-> run: ./manage.py link macos (git, zsh, nvim-vanilla, tmux, karabiner, linearmouse, ghostty)
-> from shared: git, zsh, tmux, nvim-simple
-> from env macos: karabiner, linearmouse, ghostty
-> execute: ./scripts/macos-change_hostname --hostname $HOSTNAME
-> execute: ./scripts/setup_ssh.sh -C $USER@$HOSTNAME -f internal (-f: id_ed25519_internal)
-> execute: ./scripts/setup_ssh.sh -C $USER@$HOSTNAME -f git (-f: id_ed25519_git)
-> echo: "internal key generated, once vms and dns are ready: ssh-copy-id tomas@ip"
-> echo: "You ssh pub key is: <key>". do not forget to change from https to git
-> echo: "Do not forget to change git remote from https to git after adding SSH Key"
-> echo: "Next steps: setup UTM and DNS" (maybe store DNS settings in private repo)
-> todo: Add WindowTagger automatically too. In the meantime, echo it and reference to the repo.
For LinuxVM
Create VM
MacOS host with UTM
- Download the ISO for architecture ARM64.
- Create the VM with UTM.
- It is recommended to setup local DNS with
dnsmasq.
Other hosts
- Download the ISO for architecture AMD64.
- Setup Proxmox and create the VM.
Setup VM
$ git clone https://gitea.tomastm.com/tomas.mirchev/dotfiles.git .dotfiles
$ cd .dotfiles
$ ./manage.py setup linux-vm --hostname <personal|university|client>-<utm|workstation>
-> execute: ./scripts/linux-setup_sudoers.sh
-> execute: mkdir /home/$USER/projects
-> execute: ./scripts/linux-setup_docker.sh
-> execute: ./scripts/linux-change_hostname.sh --hostname $HOSTNAME
-> execute: ./scripts/setup_ssh.sh -C $USER@HOSTNAME -f "" (-f: id_ed25519)
-> run: ./manage.py install linux-vm
-> run: ./manage.py link linux-vm
-> from shared: git, zsh, tmux, nvim-simple
-> echo: "You ssh pub key is: ". do not forget to change from https to git
-> echo: "use `dev` for bla bla"
For LinuxDev
Build with multi-stage.
base-debian
Stage 1 - Setup NeoVim
RUN apt install python3
RUN git clone https://gitea.tomastm.com/tomas.mirchev/dotfiles.git .dotfiles \
&& cd .dotfiles \
&& ./manage.py setup linux-dev
-> wget tree-sitter && move (check architecture)
-> wget nvim.deb && install (check architecture)
-> nvim !lazy restore plugins
Stage 2
- copy-from: .dotfiles &
./setup.py --env-linux-c --copy - copy-from: tree-sitter
- copy-from:
nvim.deb&apt install ./nvim.deb - copy-from: .local/share/nvim
- Setup locales (check debian setup)
- Create dev user
- Create workspace directory