Skip to content

agoodshort/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

My chezmoi dotfiles

Installation

1. Homebrew

1.1. Install Homebrew and required tools

Install the Homebrew dependencies for Linux

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Warning: Make sure to follow the steps in "next steps" displayed after the installation.

1.2. Install dependencies

brew install jq lastpass-cli fnm
lpass login --trust USERNAME

mkdir -p ~/Coding/Personal

if [[ ! $OSTYPE == 'darwin'* ]]; then
 # Make sure yay is installed
 if [[ ! -x "$(command -v yay)" ]]; then
  cd ~/Coding/Personal
  git clone https://aur.archlinux.org/yay.git
  cd yay
  makepkg -si
  cd ../
  rm -rf yay
  yay -Y --gendb
  yay -Syu --devel
  yay -Y --devel --save
 fi

 # Make yay/pacman colourful
 sudo sed -i 's/^#Color/Color/' /etc/pacman.conf

 yay -S openssh wl-clipboard flatpak zsh kitty --noconfirm
 yay -S akm --noconfirm        # great tool for kernel selection
 yay -S xmlstarlet --noconfirm # used by apdatifier

 # Install docker
 yay -S docker docker-compose --noconfirm
 systemctl enable --now docker
 sudo usermod -aG docker $USER
 newgrp docker # switch to docker group straight away

 # Sway dependencies
 # yay -S sway rofi swayidle waybar playerctl kanshi light swaync
 # swaybg swaylock kvantum waybar-updates bluetuith swappy cliphist inotify-tools catppuccin-gtk-theme-macchiato ttf-roboto-mono-nerd ttf-roboto-mono

 # hyprland dependencies
 yay -S hyprland xdg-desktop-portal-hyprland wofi swaync --noconfirm
 yay -S grimblast-git swappy showmethekey wf-recorder --noconfirm # Need to implement shortcuts in hyprland
 yay -S waybar ttf-roboto-mono-nerd ttf-roboto-mono hyprland-autoname-workspaces waybar-updates bluetuith --noconfirm
 yay -S hyprlock hypridle kanshi --noconfirm # To finish
 # to review: waybar-mpris swww

 # Delete the swaync systemd, otherwise it clashes with KDE plasma notification service
 systemctl --user disable --now swaync
 sudo rm /usr/lib/systemd/user/swaync.service

 cargo install pokeget
 cargo install cargo-update # used by topgrade

 # theme: install and run both nwg-look and qt6ct to set as you're liking, however config should be saved already
 yay -S catppuccin-gtk-theme-macchiato nwg-look qt6ct
fi

2. Setup ssh for GitHub

2.1. Create ssh key

mkdir ~/.ssh && cd $_
ssh-keygen -t ed25519 -C "[email protected]" -f "github-agoodshort"

if [[ $OSTYPE == 'darwin'* ]]; then
 pbcopy <~/.ssh/github-agoodshort.pub # copy public key to clipboard
else
 wl-copy <~/.ssh/github-agoodshort.pub # https://neovim.io/doc/user/provider.html#provider-clipboard
fi

2.2. Associate the key with GitHub

Add the copied key in your GitHub Profile SSH keys.

2.3. Add the GitHub SSH key to known_host

curl --silent https://api.github.com/meta |
 jq --raw-output '"github.com "+.ssh_keys[]' >>~/.ssh/known_hosts

3. Getting started with chezmoi

Install Visual Studio Code before installing chezmoi as brew will fail to install Visual Studio Code extensions during the first run.

if [[ ! -x "$(command -v code)" ]]; then

 if [[ $OSTYPE == 'darwin'* ]]; then
  brew install --cask visual-studio-code
 else
  sudo yay -S visual-studio-code-bin --noconfirm
 fi
fi

brew install chezmoi
chezmoi init --apply agoodshort

4. Install node through fnm

fnm install lts/iron
fnm use lts/iron

5. Additional steps based on OS

Tools

List of tools used is available in Tools.

To-Do

  • List cargo
  • Create a bootstrap script to install the brew bases and login to lastpass
  • Look at Timeshift and find out how to partition properly
  • Work on the format with {{ end -}}
  • Mount secondary drive as home folder
  • Change zsh/ to exact_zsh/
  • Finish to setup wtfutil
  • Finish setting up required tools for lf previewer => https://github.com/NikitaIvanovV/ctpv
  • To share wifi between KDE and Hyprland, you have to set password security to unencrypted
  • Install howdy, follow the steps on this page

image

image

image

https://mozilla.github.io/webrtc-landing/gum_test.html => to test screensharing features

References

Git multi user