Compare commits

...

4 commits

27 changed files with 94 additions and 148 deletions

3
.gitmodules vendored
View file

@ -1,3 +0,0 @@
[submodule "dotdrop"]
path = dotdrop
url = https://github.com/deadc0de6/dotdrop.git

View file

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2017 Philip Henning
Copyright (c) 2017-2024 Philip Henning
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View file

@ -4,23 +4,26 @@ I manage my dotfiles using [dotdrop](https://github.com/deadc0de6/dotdrop).
## How to install
### Script
```shell
[[ ! $(command -v brew) ]] && /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" \
; brew update \
&& brew install coreutils libmagic uv \
&& uv tool install --allow-python-downloads --python 3.11 dotdrop \
&& git clone https://github.com/shokinn/.files ~/.files \
&& ~/.local/bin/dotdrop --cfg=~/.files/config.yaml install
```
### Manual
1. Install [Homebrew](https://brew.sh/)
2. Install `coreutils` via Homebrew.
3. Install [pyenv](https://github.com/pyenv/pyenv)
a. Install [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv)
b. Add pyenv temporarly to your path: `export PATH=$(pyenv root)/shims:${PATH}`
c. Install the latest python version via pyenv
d. Create a new virtual-env caleld `dotdrop` via `pyenv virtualenv <just installed python verison> dotdrop`
4. Initialize pyenv; run `pyenv init` for instructions
5. Activate the `dotdrop` virtualenv by using `pyenv shell dotdrop`
6. Clone dotfiles, install dependencies for dotdrop and install dotfiles.
2. Install `coreutils`, `libmagic` and `uv` via Homebrew.
3. Install `drotdrop` via `uv` (`uv tool install --allow-python-downloads --python 3.11 dotdrop`).
4. Clone dotfiles, install dependencies for dotdrop and install dotfiles.
```shell
git clone https://github.com/shokinn/.files ~/.files \
&& cd ~/.files \
&& git submodule update --init \
&& cd .. \
&& pip install -r ~/.files/dotdrop/requirements.txt \
&& eval $(grep -v "^#" ~/.files/.env.public) ~/.files/dotdrop.sh install
&& ~/.local/bin/dotdrop --cfg=~/.files/config.yaml install
```
## Documentation

View file

@ -8,7 +8,7 @@ actions:
[[ -f ${{HOME}}/.zshrc.pre-oh-my-zsh ]] && rm ${{HOME}}/.zshrc && mv ${{HOME}}/.zshrc.pre-oh-my-zsh ${{HOME}}/.zshrc || echo "do nothing" >/dev/null
[[ ! -d ${{ZSH_CUSTOM:-${{HOME}}/.oh-my-zsh/custom}}/plugins ]] && mkdir -p ${{ZSH_CUSTOM:-${{HOME}}/.oh-my-zsh/custom}}/plugins || echo "do nothing" >/dev/null
[[ ! -d ${{ZSH_CUSTOM:-${{HOME}}/.oh-my-zsh/custom}}/plugins/custom-completions ]] && mkdir -p ${{ZSH_CUSTOM:-${{HOME}}/.oh-my-zsh/custom}}/plugins/custom-completions || echo "do nothing" >/dev/null
[[ ! -f ${{ZSH_CUSTOM:-${{HOME}}/.oh-my-zsh/custom}}/plugins/custom-completions/_dotdrop.sh-completion.zsh ]] && curl -o ${{ZSH_CUSTOM:-${{HOME}}/.oh-my-zsh/custom}}/plugins/custom-completions/_dotdrop.sh-completion.zsh https://raw.githubusercontent.com/deadc0de6/dotdrop/master/completion/_dotdrop.sh-completion.zsh || echo "do nothing" >/dev/null
[[ ! -f ${{ZSH_CUSTOM:-${{HOME}}/.oh-my-zsh/custom}}/plugins/custom-completions/_dotdrop-completion.zsh ]] && curl -o ${{ZSH_CUSTOM:-${{HOME}}/.oh-my-zsh/custom}}/plugins/custom-completions/_dotdrop-completion.zsh https://raw.githubusercontent.com/deadc0de6/dotdrop/master/completion/_dotdrop-completion.zsh || echo "do nothing" >/dev/null
[[ ! -f ${{ZSH_CUSTOM:-${{HOME}}/.oh-my-zsh/custom}}/plugins/custom-completions/_diskutil.zsh ]] && curl -o ${{ZSH_CUSTOM:-${{HOME}}/.oh-my-zsh/custom}}/plugins/custom-completions/_diskutil.zsh https://github.com/zchee/zsh-completions/blob/main/src/macOS/_diskutil || echo "do nothing" >/dev/null
[[ ! -d ${{ZSH_CUSTOM:-${{HOME}}/.oh-my-zsh/custom}}/plugins/zsh-completions ]] && git clone https://github.com/zsh-users/zsh-completions.git ${{ZSH_CUSTOM:-${{HOME}}/.oh-my-zsh/custom}}/plugins/zsh-completions || echo "do nothing" >/dev/null
[[ ! -d ${{ZSH_CUSTOM:-${{HOME}}/.oh-my-zsh/custom}}/plugins/fzf-tab-completion ]] && git clone https://github.com/lincheney/fzf-tab-completion.git ${{ZSH_CUSTOM:-${{HOME}}/.oh-my-zsh/custom}}/plugins/fzf-tab-completion || echo "do nothing" >/dev/null
@ -37,32 +37,29 @@ dotfiles:
dst: ~/.config/sxhkd
src: config/sxhkd
f_c3check:
dst: ~/.bin/c3check
src: bin/c3check
dst: ~/.local/bin/c3check
src: local/bin/c3check
f_c3cp:
dst: ~/.bin/c3cp
src: bin/c3cp
dst: ~/.local/bin/c3cp
src: local/bin/c3cp
f_c3kdenlive:
dst: ~/.bin/c3kdenlive
src: bin/c3kdenlive
dst: ~/.local/bin/c3kdenlive
src: local/bin/c3kdenlive
f_c3l:
dst: ~/.bin/c3l
src: bin/c3l
dst: ~/.local/bin/c3l
src: local/bin/c3l
f_c3mpv:
dst: ~/.bin/c3mpv
src: bin/c3mpv
dst: ~/.local/bin/c3mpv
src: local/bin/c3mpv
f_compton.conf:
dst: ~/.config/compton/compton.conf
src: config/compton/compton.conf
f_dotdrop.sh:
src: bin/dotdrop.sh
dst: ~/.bin/dotdrop.sh
f_fehbg:
dst: ~/.fehbg
src: fehbg
f_mount_c3voc:
dst: ~/.bin/mount_c3voc
src: bin/mount_c3voc
dst: ~/.local/bin/mount_c3voc
src: local/bin/mount_c3voc
f_powerlevel9krc:
actions:
- powerlevel9k-theme
@ -112,23 +109,23 @@ dotfiles:
src: local/bin/kite
dst: ~/.local/bin/kite
f_wsladdhypervroute:
dst: ~/.bin/wsladdhypervroute
src: bin/wsladdhypervroute
dst: ~/.local/bin/wsladdhypervroute
src: local/bin/wsladdhypervroute
f_wslenablehypervforwarding:
dst: ~/.bin/wslenablehypervforwarding
src: bin/wslenablehypervforwarding
dst: ~/.local/bin/wslenablehypervforwarding
src: local/bin/wslenablehypervforwarding
f_wslshowhypervforwarding:
dst: ~/.bin/wslshowhypervforwarding
src: bin/wslshowhypervforwarding
dst: ~/.local/bin/wslshowhypervforwarding
src: local/bin/wslshowhypervforwarding
f_pu:
dst: ~/.bin/pu
src: bin/pu
dst: ~/.local/bin/pu
src: local/bin/pu
f_rpki:
dst: ~/.bin/rpki
src: bin/rpki
dst: ~/.local/bin/rpki
src: local/bin/rpki
f_rmquarantine:
dst: ~/.bin/rmquarantine
src: bin/rmquarantine
dst: ~/.local/bin/rmquarantine
src: local/bin/rmquarantine
f_commonfunc:
dst: ~/.commonfunc
src: commonfunc
@ -136,11 +133,11 @@ dotfiles:
dst: ~/.gnupg/gpg-agent.conf
src: gnupg/gpg-agent.conf
f_secretfiles:
dst: ~/.bin/secretfiles
src: bin/secretfiles
dst: ~/.local/bin/secretfiles
src: local/bin/secretfiles
f_agenix_helper:
dst: ~/.bin/agenix-helper
src: bin/agenix-helper
dst: ~/.local/bin/agenix-helper
src: local/bin/agenix-helper
f_config:
src: ssh/config
dst: ~/.ssh/config
@ -165,7 +162,6 @@ profiles:
- f_c3check
- f_zprofile
- f_start_systemd_shell.sh
- f_dotdrop.sh
- f_wsladdhypervroute
- f_wslenablehypervforwarding
- f_wslshowhypervforwarding
@ -189,7 +185,6 @@ profiles:
- f_c3check
- f_zprofile
- f_start_systemd_shell.sh
- f_dotdrop.sh
- f_wsladdhypervroute
- f_wslenablehypervforwarding
- f_wslshowhypervforwarding
@ -224,7 +219,6 @@ profiles:
- f_c3mpv
- f_c3check
- f_zprofile
- f_dotdrop.sh
- f_rmquarantine
- f_commonfunc
- f_secretfiles
@ -256,7 +250,6 @@ profiles:
- f_c3kdenlive
- f_c3mpv
- f_c3check
- f_dotdrop.sh
- f_wsladdhypervroute
- f_wslenablehypervforwarding
- f_wslshowhypervforwarding
@ -280,7 +273,6 @@ profiles:
- f_c3check
- f_zprofile
- f_start_systemd_shell.sh
- f_dotdrop.sh
- f_wsladdhypervroute
- f_wslenablehypervforwarding
- f_wslshowhypervforwarding
@ -301,7 +293,6 @@ profiles:
- f_c3kdenlive
- f_c3mpv
- f_c3check
- f_dotdrop.sh
- f_wsladdhypervroute
- f_wslenablehypervforwarding
- f_wslshowhypervforwarding
@ -336,7 +327,6 @@ profiles:
- f_c3mpv
- f_c3check
- f_zprofile
- f_dotdrop.sh
- f_pu
- f_rpki
- f_rmquarantine

@ -1 +0,0 @@
Subproject commit 58745e92d4992d2c6efc49d0d54423259f1d0351

View file

@ -1,31 +0,0 @@
#!/usr/bin/env bash
# author: deadc0de6 (https://github.com/deadc0de6)
# Copyright (c) 2017, deadc0de6
# check for readlink/realpath presence
# https://github.com/deadc0de6/dotdrop/issues/6
rl="readlink -f"
if ! ${rl} "${0}" >/dev/null 2>&1; then
rl="realpath"
if ! hash ${rl}; then
echo "\"${rl}\" not found !" && exit 1
fi
fi
# setup variables
args=("$@")
cur=$(dirname "$(${rl} "${0}")")
opwd=$(pwd)
cfg="${cur}/config.yaml"
sub="dotdrop"
# pivot
cd "${cur}" || { echo "Folder \"${cur}\" doesn't exist, aborting." && exit; }
# init/update the submodule
git submodule update --init --recursive
# launch dotdrop
PYTHONPATH=dotdrop python -m dotdrop.dotdrop --cfg="${cfg}" "${args[@]}"
# pivot back
cd "${opwd}" || { echo "Folder \"${opwd}\" doesn't exist, aborting." && exit; }

View file

@ -1,9 +0,0 @@
#!/usr/bin/env zsh
#
# {{@@ header() @@}}
#
eval $(grep -v "^#" {{@@ env['HOME'] @@}}/.files/.env.public)
export PYENV_VERSION="dotdrop"
{{@@ env['HOME'] @@}}/.files/dotdrop.sh ${@}

View file

@ -336,6 +336,21 @@ confv6() {
return 5
}
#######################################
# Runs dotdrop installed by uv with the cfg option set to my dotdrop config file in my .files repo
# Globals:
# None
# Arguments:
# n arguments for using / configuring dotdrop
# Outputs:
# None
# Returns:
# None
#######################################
dotdrop() {
{{@@ env['HOME'] @@}}/.local/bin/dotdrop --cfg={{@@ env['HOME'] @@}}/.files/config.yaml ${@}
}
{%@@ endif @@%}{%@@ if profile == 'WVDEWOBMC001307' @@%}
setProxyEnv() {
local HIGHLIGHT='\033[36;1m'
@ -354,6 +369,21 @@ setProxyEnv() {
export https_proxy="${PROXY_CFG_HTTPS}"
export GIT_SSH_COMMAND='ssh -o ProxyCommand="/opt/homebrew/bin/corkscrew localhost 9000 %h %p"'
[[ -d "{{@@ env['HOME'] @@}}/Library/Containers/io.tailscale.ipn.macsys/Data" ]] && local TAILSCALEPATH="{{@@ env['HOME'] @@}}/Library/Containers/io.tailscale.ipn.macsys/Data/tailscaled-env.txt" || true
[[ -d "{{@@ env['HOME'] @@}}/Library/Containers/io.tailscale.ipn.macos.network-extension/Data" ]] && local TAILSCALEPATH="{{@@ env['HOME'] @@}}/Library/Containers/io.tailscale.ipn.macos.network-extension/Data/tailscaled-env.txt" || true
[[ -d "/etc/tailscale" ]] && local TAILSCALEPATH="/etc/tailscale/tailscaled-env.txt" || true
if [[ -n ${TAILSCALEPATH} ]]; then
cat <<EOF > "${TAILSCALEPATH}"
NO_PROXY="${NO_PROXY_CFG}"
no_proxy="${NO_PROXY_CFG}"
HTTP_PROXY="${PROXY_CFG_HTTP}"
HTTPS_PROXY="${PROXY_CFG_HTTPS}"
http_proxy="${PROXY_CFG_HTTP}"
https_proxy="${PROXY_CFG_HTTPS}"
EOF
fi
echo -e "\n✈ exported zscaler proxy: ${HIGHLIGHT}http://${PROXY}${RESET}"
}
@ -366,6 +396,14 @@ unsetProxyEnv() {
unset https_proxy
unset GIT_SSH_COMMAND
[[ -d "{{@@ env['HOME'] @@}}/Library/Containers/io.tailscale.ipn.macsys/Data" ]] && local TAILSCALEPATH="{{@@ env['HOME'] @@}}/Library/Containers/io.tailscale.ipn.macsys/Data/tailscaled-env.txt" || true
[[ -d "{{@@ env['HOME'] @@}}/Library/Containers/io.tailscale.ipn.macos.network-extension/Data" ]] && local TAILSCALEPATH="{{@@ env['HOME'] @@}}/Library/Containers/io.tailscale.ipn.macos.network-extension/Data/tailscaled-env.txt" || true
[[ -d "/etc/tailscale" ]] && local TAILSCALEPATH="/etc/tailscale/tailscaled-env.txt" || true
if [[ -n ${TAILSCALEPATH} ]]; then
rm "${TAILSCALEPATH}"
fi
echo -e "\n🔄 removed zscaler proxy cofiguration"
}

View file

@ -1,7 +1,7 @@
#!/usr/bin/env bash
#
# This dotfile is managed using dotdrop
# {{@@ header() @@}}
#
WINHOME="$(echo "$(cmd.exe /C "echo %USERPROFILE%")" | tr -d '\r')"

View file

@ -1,6 +1,6 @@
#!/usr/bin/env bash
#
# This dotfile is managed using dotdrop
# {{@@ header() @@}}
#
powershell.exe -ExecutionPolicy Bypass "Get-NetIPInterface | select ifIndex,InterfaceAlias,AddressFamily,ConnectionState,Forwarding | Sort-Object -Property IfIndex | Format-Table"

View file

@ -1,4 +1,4 @@
Include /Users/phg/.colima/ssh_config
Include {{@@ env['HOME'] @@}}/.colima/ssh_config
#
# {{@@ header() @@}}

View file

@ -13,14 +13,9 @@ export EDITOR
[[ $(command -v /opt/homebrew/bin/brew) ]] && eval "$(/opt/homebrew/bin/brew shellenv)"
# Added by Toolbox App
export PATH="$PATH:/Users/vw6au89/Library/Application Support/JetBrains/Toolbox/scripts"
export PATH="$PATH:{{@@ env['HOME'] @@}}/Library/Application Support/JetBrains/Toolbox/scripts"
{%@@ endif @@%}
# Initialize pyenv
[[ $(command -v pyenv) ]] && export PYENV_ROOT="$HOME/.pyenv"
[[ $(command -v pyenv) ]] && command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
[[ $(command -v pyenv) ]] && eval "$(pyenv init -)"
{%@@ if profile == 'AINCRAD-wsl' or profile == 'AINCRAD' or profile == 'YOETUNHEIMR-wsl' or profile == 'yoetunheimr' @@%}
# Set DOTNET_ROOT enviroment variable
DOTNET_ROOT=/opt/dotnet

View file

@ -8,12 +8,6 @@ export _JAVA_AWT_WM_NONREPARENTING=1
# Disable Ansible cowsay
export ANSIBLE_NOCOWS=1
# Include ~/.bin to PATH
[[ -d "{{@@ env['HOME'] @@}}/.bin" ]] && export PATH="{{@@ env['HOME'] @@}}/.bin:${PATH}"
# Inclue ~/.krew/bin to PATH for krew kubectl extensions
[[ -d "{{@@ env['HOME'] @@}}/.krew/bin" ]] && export PATH="{{@@ env['HOME'] @@}}/.krew/bin:${PATH}"
# Include ~/.local/bin to PATH
[[ -d "{{@@ env['HOME'] @@}}/.local/bin" ]] && export PATH="{{@@ env['HOME'] @@}}/.local/bin:${PATH}"

View file

@ -72,9 +72,6 @@ COMPLETION_WAITING_DOTS="true"
# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder
# Load pyenv-virtualenv when found
ZSH_PYENV_VIRTUALENV="true"
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
@ -96,10 +93,7 @@ plugins=(
kubectl
man
nix-zsh-completions
pip
podman
pyenv
pylint
python
screen
sublime
@ -111,18 +105,17 @@ plugins=(
vscode
zsh-navigation-tools
zsh-ssh
{%@@ if profile == 'ymir' or profile == 'susanoo.local' @@%} # Mac specifics
{%@@ if profile == 'WVDEWOBMC001307' or profile == 'ymir' or profile == 'susanoo.local' @@%} # Mac specifics
brew
iterm2
macos
{%@@ endif @@%}{%@@ if profile == 'yoetunheimr' or profile == 'AINCRAD-wsl' or profile == 'AINCRAD' or profile == 'YOETUNHEIMR-wsl' or profile == 'ymir' @@%} # Archlinux specifics
{%@@ endif @@%}{%@@ if profile == 'yoetunheimr' or profile == 'AINCRAD-wsl' or profile == 'AINCRAD' or profile == 'YOETUNHEIMR-wsl' or profile == 'ymir' @@%} # Archlinux specifics
archlinux
{%@@ endif @@%}
{%@@ endif @@%}
)
autoload -U compinit && compinit
{%@@ if profile == 'ymir' or profile == 'susanoo.local' @@%}
# Source fzf-tab-completions
# source {{@@ env['HOME'] @@}}/.oh-my-zsh/custom/plugins/fzf-tab-completion/zsh/fzf-zsh-completion.sh
# zstyle ':completion:*' fzf-search-display true
@ -132,7 +125,6 @@ autoload -U compinit && compinit
fpath+={{@@ env['HOME'] @@}}/.oh-my-zsh/custom/plugins/zsh-completions/src
# A set of custom completions
fpath+={{@@ env['HOME'] @@}}/.oh-my-zsh/custom/plugins/custom-completions
{%@@ endif @@%}
source ${ZSH}/oh-my-zsh.sh
@ -171,24 +163,12 @@ source ${ZSH}/oh-my-zsh.sh
#[[ $(command -v kubectl) ]] && alias pk='proxy_kubectl'
#{%@@ endif @@%}
alias ssh-no-check="ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
alias ssh-strongbox-keys="SSH_AUTH_SOCK=~/Library/Group\ Containers/group.strongbox.mac.mcguill/agent.sock ssh-add -l"
alias agenix='RULES='\''./secrets/secrets.nix'\'' agenix'
alias agenix-edit="agenix -i {{@@ env['HOME'] @@}}/.ssh/agenix-phg -e"
alias ane='agenix-edit'
alias cane="EDITOR='code -w' agenix-edit"
# Initialize pyenv
[[ $(command -v pyenv) ]] && export PYENV_ROOT="$HOME/.pyenv"
[[ $(command -v pyenv) ]] && command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
[[ $(command -v pyenv) ]] && eval "$(pyenv init -)"
# Enable pipx completions
if [ -f "{{@@ env['HOME'] @@}}/.local/bin/pipx" ]; then
autoload -U bashcompinit
bashcompinit
eval "$(register-python-argcomplete pipx)"
fi
alias ssh-no-check="ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
alias ssh-strongbox-keys="SSH_AUTH_SOCK=~/Library/Group\ Containers/group.strongbox.mac.mcguill/agent.sock ssh-add -l"
# Include $(go env GOPATH) to PATH
[[ $(command -v go) ]] && [[ -d "$(go env GOPATH)/bin" ]] && export PATH="$(go env GOPATH)/bin:${PATH}"

View file

@ -1,10 +0,0 @@
#!/bin/bash
SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
cd $SCRIPTPATH
git submodule foreach git pull origin master
git add dotdrop
git commit -m 'update dotdrop'
git push