Skip to content

Latest commit

 

History

History

.github

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

dotfiles

##################################################
##################################################
######################        ####################
################                    ##############
#############                #######   ###########
###########                #########     #########
#########                 ########         #######
########                  ######            ######
#######                   ######             #####
######            ####### ######              ####
#####           ######### ######               ###
#####           #######   ######               ###
#####            ######    #####               ###
#####             ######    ####               ###
#####              ######    ###               ###
#####               ######    #                ###
######               ######                   ####
#######               #####                  #####
########               #####                ######
##########              #####             ########
############             #####          ##########
##############               ##       ############
##################                ################
##################################################
##################################################

A dotfile repo.

Pre Install

Debian

testing

sudo apt-get update                      \
&& sudo apt-get upgrade                  \
&& sudo apt-get install git zsh curl vim \
                        file nala        \
                        openssh-client   \
                        aptitude         

# optional
sudo apt-get update \
&& sudo apt-get dist-upgrade \
&& sudo apt-get install --reinstall build-essential
# /etc/apt/sources.list
deb http://deb.debian.org/debian bookworm main contrib non-free
non-free-firmware
deb-src http://deb.debian.org/debian bookworm main contrib non-free
non-free-firmware

deb http://deb.debian.org/debian-security bookworm-security main contrib
non-free non-free-firmware
deb-src http://deb.debian.org/debian-security bookworm-security main contrib
non-free non-free-firmware

deb http://deb.debian.org/debian bookworm-updates main contrib non-free
non-free-firmware
deb-src http://deb.debian.org/debian bookworm-updates main contrib non-free
non-free-firmware

# w !sudo tee %                           # Vim Sudo (Emergencies)
# sudo cp \
#     /usr/share/doc/apt/examples/sources.list \
#     /etc/apt/sources.list               # Default backup on Debian

zsh

# switch to zsh from bash
chsh -s $(which zsh)            

brew

sudo apt install build-essential procps curl file git
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# [ -d /home/linuxbrew/.linuxbrew ] && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv) # already in .shell

emacs

brew install emacs

# Xming server on WSL1 Debian
# https://sourceforge.net/projects/xming/

# emacs-gtk

neovim

# optional, vim9 +huge default in Debian Testing
# brew install neovim

# vvkmnn/v.nvim
cd $HOME/.config/neovim                  \
&& git pull origin 

sudo aptitude update                     \
&& sudo aptitude install ninja-build     \
                         gettext cmake   \
                         unzip curl      \
&& make CMAKE_BUILD_TYPE=RelWithDebInfo  \
&& make install                          \


# clear stash
rm -rf ~/.local/share/nvim

trees

# TODO nvim
dotfiles subtree pull --prefix .tmux/plugins/tpm tpm master --squash

submodules

dotfiles submodule update --init         \
                          --recursive    \

Windows

wsl

:: Install Debian on W10 with WSL
winget install Debian.Debian               \
& winget install Microsoft.WindowsTerminal \

wslu

sudo apt install gnupg2 apt-transport-https wget
wget -O - https://pkg.wslutiliti.es/public.key | sudo tee -a /etc/apt/trusted.gpg.d/wslu.asc

# Debian 12 (typically)
# https://wslutiliti.es/wslu/install.html
echo "deb https://pkg.wslutiliti.es/debian bookworm main" | sudo tee -a /etc/apt/sources.list

# provides wslview and other utils
sudo apt update && sudo apt install wslu 

wezterm

winget install wez.wezterm 

:: windows shortcut
:: "C:\Program Files\WezTerm\wezterm-gui.exe" --config-file="\\wsl.localhost\Debian\home\v\.config\wezterm\wezterm.lua" start -- wsl -d Debian

ahk

cat .setup/capslock.ahk         # Capslock -> Esc + Ctrl on WSL 
explorer.exe .setup             # Explorer open 
wslview ~/.setup/capslock.ahk   # If wslu installed

macOS

xcode

xcode-select --install

brew.sh

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

fonts

brew tap homebrew/cask-fonts && brew install --cask font-jetbrains-mono-nerd-font

apps

# window = keyboard manager
brew install koekeishiya/formulae/skhd koekeishiya/formulae/yabai
skhd --start-service && yabai --start-service

# qol
brew install neovim karabiner-elements    \
  wezterm 1password mullvadvpn alfred nvm \
  adguard ngrok obsidian gh jq fzf btop   \
  coreutils 1password-cli

# extra
brew install discord ffmpeg lua sqlite3   \
             mas mactex font-fontawesome

# maybe
brew install emacs-mac-spacemacs-icon tmux
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

tmux

<Prefix> + I # install tpm, included as subtree by default

post

nvm install node                           # installs system node via brew nvm

flavor

# borders
brew install FelixKratz/formulae/borders

# yabai scripting
# https://github.com/koekeishiya/yabai/wiki/Installing-yabai-(latest-release)#configure-scripting-addition
echo "$(whoami) ALL=(root) NOPASSWD: sha256:$(shasum -a 256 $(which yabai) \
| cut -d " " -f 1) $(which yabai) --load-sa" \
| sudo tee /private/etc/sudoers.d/yabai
# https://github.com/koekeishiya/yabai/issues/1333#issuecomment-1193128981
# sudo nvram boot-args=-arm64e_preview_abi

# svim
brew install FelixKratz/formulae/svim && brew services start svim

defaults

# iCloud Files
defaults write NSGlobalDomain "NSDocumentSaveNewDocumentsToCloud" -bool "false"

# Dock
defaults write com.apple.dock orientation right #my preference for main machine
defaults write com.apple.dock tilesize -int 27

# Finder
defaults write com.apple.Finder AppleShowAllFiles true
defaults write com.apple.finder CreateDesktop false

# Highlight Color (svim)
defaults write NSGlobalDomain AppleHighlightColor -string "0.800000 0.200000 0.200000"
# emacs29
brew install git ripgrep coreutils fd      \
&& brew install railwaycat/emacsmacport/emacs-mac \
 --with-spacemacs-icon                     \
 --with-ctags                              \
 --with-native-compilation                 \
  --with-mac-metal                         \
  --with-starter


# deprecated
# brew install emacs-mac                   \
#    --with-dbus                           \
#    --with-dbus                           \
#    --with-starter                        \
#    --with-librsvg                        \
#    --with-imagemagick                    \
#    --with-xwidgets                       \
#    --with-ctags                          \
#    --with-native-comp                    \
#    --with-mac-metal                      \
#    --with-natural-title-bar              \
#    --with-spacemacs-icon                 \

casks

brew install --cask protonmail-bridge protonvpn
brew install --cask 1password adguard
brew install --cask karabiner-elements
brew install --cask miniconda

Install

ssh

ssh-keygen -t rsa -b 4096 -C "[email protected]"
cat ~/.ssh/id_rsa.pub

github

alias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'
git clone --bare [email protected]:Vvkmnn/dotfiles.git --branch <os> $HOME/.dotfiles
dotfiles stash
dotfiles checkout

# optional
<<<<<<< HEAD
git config --global credential.helper 'cache --timeout=7777'          
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" # use in .dotfiles to make git fetch --all work again
dotfiles config status.showUntrackedFiles no

Backup

cd
mkdir -p .backup && \
dotfiles checkout 2>&1 | egrep "\s+\." | awk {'print $1'} | \
xargs -I{} mv {} .backup/{}

Post Install

subtrees

dotfiles fetch v.nvim
dotfiles subtree pull --prefix .config/nvim v.nvim master --squash
# submodules
dotfiles submodule init
dotfiles submodule update

# TODO guided
./.setup/setup.sh

# individual
chmod +x ./setup/*.sh
./.setup/<example>.sh

# core
vim.sh   # Editor
zsh.sh   # Shell
emacs.sh # IDE
#brave.sh # Browser TODO Opera

# utility
debian.sh
capslock.sh

Update

# combined
dotfiles submodule update --init --recursive

# create + update
dotfiles submodule init # Create all folders
dotfiles submodule update # Update all folders to master branch