WSL fixes

This commit is contained in:
Menno van Leeuwen 2024-10-27 01:33:39 +02:00
parent f3ee35f577
commit e42dd52164
Signed by: vleeuwenmenno
SSH Key Fingerprint: SHA256:OJFmjANpakwD3F2Rsws4GLtbdz1TJ5tkQF0RZmF0TRE
39 changed files with 390367 additions and 390285 deletions

View File

@ -47,7 +47,6 @@ fi
# Alias for ssh.exe and ssh-add.exe on Windows WSL (microsoft-standard-WSL2) # Alias for ssh.exe and ssh-add.exe on Windows WSL (microsoft-standard-WSL2)
if [[ $(uname -a) == *"microsoft-standard-WSL2"* ]]; then if [[ $(uname -a) == *"microsoft-standard-WSL2"* ]]; then
source $HOME/.agent-bridge.sh
alias op='op.exe' alias op='op.exe'
fi fi
@ -91,3 +90,6 @@ eval "$(starship init bash)"
if [ -t 1 ]; then if [ -t 1 ]; then
dotf term dotf term
fi fi
# Source optional agent-bridge script for WSL (This returns early if it's not on WSL)
source $HOME/dotfiles/bin/1password-agent-bridge.sh

22
bin/1password-agent-bridge.sh Executable file
View File

@ -0,0 +1,22 @@
source $HOME/dotfiles/bin/helpers/functions.sh
# Check if is_wsl function returns true, don't continue if we are not on WSL
if ! is_wsl; then
return
fi
printfe "%s" "cyan" "Running in WSL, ensuring 1Password SSH-Agent relay is running..."
export SSH_AUTH_SOCK=$HOME/.ssh/agent.sock
ALREADY_RUNNING=$(ps -auxww | grep -q "[n]piperelay.exe -ei -s //./pipe/openssh-ssh-agent"; echo $?)
if [[ $ALREADY_RUNNING != "0" ]]; then
if [[ -S $SSH_AUTH_SOCK ]]; then
rm $SSH_AUTH_SOCK
fi
(setsid socat UNIX-LISTEN:$SSH_AUTH_SOCK,fork EXEC:"npiperelay.exe -ei -s //./pipe/openssh-ssh-agent",nofork &) >/dev/null 2>&1
printfe "%s\n" "green" " [ Started ]"
exit 0
fi
printfe "%s\n" "green" " [ Already running ]"

View File

@ -10,7 +10,7 @@ push_all() {
printfe "%s\n" "cyan" "Pushing all changes to all remotes..." printfe "%s\n" "cyan" "Pushing all changes to all remotes..."
# For each remote, push all changes # For each remote, push all changes
for remote in $remotes; do for remote in "${remotes[@]}"; do
printfe "%s" "green" " - Pushing to [" printfe "%s" "green" " - Pushing to ["
printfe "%s" "blue" "$remote" printfe "%s" "blue" "$remote"
printfe "%s\n" "green" "]..." printfe "%s\n" "green" "]..."

View File

@ -8,23 +8,43 @@ source $HOME/dotfiles/bin/helpers/functions.sh
printfe "%s\n" "cyan" "Fetching password from 1Password..." printfe "%s\n" "cyan" "Fetching password from 1Password..."
echo -en '\r' echo -en '\r'
# if WSL alias op to op.exe if is_wsl; then
if [[ $(uname -a) == *"microsoft-standard-WSL2"* ]]; then output=$(op.exe item get "Dotfiles Secrets" --fields password)
alias op="op.exe"
else else
alias op="op" output=$(op item get "Dotfiles Secrets" --fields password)
fi fi
output=$(op item get "Dotfiles Secrets" --fields password)
# Check if the password was found # Check if the password was found
if [[ -z "$output" ]]; then if [[ -z "$output" ]]; then
printfe "%s\n" "red" "Password not found in 1Password, add a login item with the name 'Dotfiles Secrets' and give it a password." printfe "%s\n" "red" "Password not found in 1Password, add a login item with the name 'Dotfiles Secrets' and give it a password."
exit 1 exit 1
fi fi
command=$(echo "$output" | grep -oP "(?<=use ').*(?=')") token=$(echo "$output" | grep -oP "(?<=\[use 'op item get ).*(?= --)")
password=$(eval $command | grep -oP "(?<= password: ).*" | tr -d '\n') printfe "%s\n" "cyan" "Got fetch token: $token"
if is_wsl; then
password=$(op.exe item get $token --reveal --field password)
else
password=$(op item get $token --reveal --fields password)
fi
# only continue if password isn't empty
if [[ -z "$password" ]]; then
printfe "%s\n" "red" "Something went wrong while fetching the password from 1Password."
# Ask for manual input
printfe "%s" "cyan" "Enter the password manually: "
read -s password
echo
if [[ -z "$password" ]]; then
printfe "%s\n" "red" "Password cannot be empty."
exit 1
fi
printfe "%s\n" "green" "Password entered successfully."
fi
encrypt_folder() { encrypt_folder() {
for file in $1/*; do for file in $1/*; do

View File

@ -11,6 +11,11 @@ countdown() {
} }
run_startup_scripts() { run_startup_scripts() {
if is_wsl; then
echo "Running in WSL, skipping startup scripts."
return
fi
logo continue logo continue
echo "" echo ""
local time_of_day local time_of_day

View File

@ -97,7 +97,7 @@ symlinks() {
symlinks=($(cat $HOME/dotfiles/config/config.yaml | shyaml keys config.symlinks)) symlinks=($(cat $HOME/dotfiles/config/config.yaml | shyaml keys config.symlinks))
printfe "%s\n" "cyan" "Updating symlinks..." printfe "%s\n" "cyan" "Updating symlinks..."
for symlink in $symlinks; do for symlink in "${symlinks[@]}"; do
ensure_symlink $symlink ensure_symlink $symlink
done done
} }
@ -155,6 +155,11 @@ pipxpkgs() {
} }
flatpakpkgs() { flatpakpkgs() {
if is_wsl; then
printfe "%s\n" "yellow" "Running in WSL, skipping Flatpak."
return
fi
printfe "%s\n" "cyan" "Ensuring Flatpak packages are installed..." printfe "%s\n" "cyan" "Ensuring Flatpak packages are installed..."
source $HOME/dotfiles/bin/helpers/flatpak_packages.sh source $HOME/dotfiles/bin/helpers/flatpak_packages.sh
ensure_flatpak_packages_installed ensure_flatpak_packages_installed
@ -167,12 +172,22 @@ dockercmd() {
} }
tailscalecmd() { tailscalecmd() {
if is_wsl; then
printfe "%s\n" "yellow" "Running in WSL, skipping Tailscale."
return
fi
printfe "%s\n" "cyan" "Ensuring Tailscale is installed..." printfe "%s\n" "cyan" "Ensuring Tailscale is installed..."
source $HOME/dotfiles/bin/helpers/tailscale.sh source $HOME/dotfiles/bin/helpers/tailscale.sh
ensure_tailscale_installed ensure_tailscale_installed
} }
extensions() { extensions() {
if is_wsl; then
printfe "%s\n" "yellow" "Running in WSL, skipping extensions."
return
fi
printfe "%s\n" "cyan" "Ensuring GNOME Extensions are installed..." printfe "%s\n" "cyan" "Ensuring GNOME Extensions are installed..."
source $HOME/dotfiles/bin/helpers/gnome_extensions.sh source $HOME/dotfiles/bin/helpers/gnome_extensions.sh
ensure_gnome_extensions_installed ensure_gnome_extensions_installed
@ -194,18 +209,33 @@ extensions() {
#################################################################################################### ####################################################################################################
keyboard() { keyboard() {
if is_wsl; then
printfe "%s\n" "yellow" "Running in WSL, skipping keyboard shortcuts."
return
fi
printfe "%s\n" "cyan" "Setting up keyboard shortcuts..." printfe "%s\n" "cyan" "Setting up keyboard shortcuts..."
source $HOME/dotfiles/bin/helpers/keyboard_shortcuts.sh source $HOME/dotfiles/bin/helpers/keyboard_shortcuts.sh
ensure_keyboard_shortcuts ensure_keyboard_shortcuts
} }
fonts() { fonts() {
if is_wsl; then
printfe "%s\n" "yellow" "Running in WSL, skipping fonts."
return
fi
printfe "%s\n" "cyan" "Ensuring fonts are installed..." printfe "%s\n" "cyan" "Ensuring fonts are installed..."
source $HOME/dotfiles/bin/helpers/fonts.sh source $HOME/dotfiles/bin/helpers/fonts.sh
ensure_fonts_installed ensure_fonts_installed
} }
terminal() { terminal() {
if is_wsl; then
printfe "%s\n" "yellow" "Running in WSL, skipping setting default terminal."
return
fi
printfe "%s\n" "cyan" "Setting gnome-terminal as default terminal..." printfe "%s\n" "cyan" "Setting gnome-terminal as default terminal..."
if [ -x "$(command -v gnome-terminal)" ]; then if [ -x "$(command -v gnome-terminal)" ]; then
current_terminal=$(sudo update-alternatives --query x-terminal-emulator | grep '^Value:' | awk '{print $2}') current_terminal=$(sudo update-alternatives --query x-terminal-emulator | grep '^Value:' | awk '{print $2}')
@ -270,8 +300,8 @@ if [ "$#" -eq 0 ]; then
aptpkgs aptpkgs
cargopkgs cargopkgs
pipxpkgs pipxpkgs
flatpakpkgs
dockercmd dockercmd
flatpakpkgs
tailscalecmd tailscalecmd
extensions extensions
keyboard keyboard

View File

@ -71,7 +71,7 @@ ensure_repositories() {
add_vscode_repo add_vscode_repo
repos=($(cat $DOTFILES_CONFIG | shyaml get-values config.packages.apt.repos)) repos=($(cat $DOTFILES_CONFIG | shyaml get-values config.packages.apt.repos))
for repo in $repos; do for repo in "${repos[@]}"; do
repo_name=$(echo $repo | cut -d ":" -f 2) repo_name=$(echo $repo | cut -d ":" -f 2)
# Go through sources.list.d and check if there's a file containing part of URIs: https://ppa.launchpad.net/$repo_name # Go through sources.list.d and check if there's a file containing part of URIs: https://ppa.launchpad.net/$repo_name
@ -94,8 +94,9 @@ ensure_repositories() {
fi fi
done done
} }
ensure_apt_packages_installed() { ensure_apt_packages_installed() {
apt_packages=($(cat $DOTFILES_CONFIG | shyaml get-values config.packages.apt.apps)) apt_packages=($(cat $DOTFILES_CONFIG | shyaml get-values config.packages.apt.apps | tr '\n' ' '))
# Check if apt_packages array contains duplicates # Check if apt_packages array contains duplicates
if [ $(echo $apt_packages | tr ' ' '\n' | sort | uniq -d | wc -l) -ne 0 ]; then if [ $(echo $apt_packages | tr ' ' '\n' | sort | uniq -d | wc -l) -ne 0 ]; then
@ -105,7 +106,7 @@ ensure_apt_packages_installed() {
exit 1 exit 1
fi fi
for package in $apt_packages; do for package in "${apt_packages[@]}"; do
pkg_status=$(dpkg -s $package 2> /dev/null | grep "Status" | cut -d " " -f 4) pkg_status=$(dpkg -s $package 2> /dev/null | grep "Status" | cut -d " " -f 4)
# If pkg_status is `installed` then we don't need to install the package, otherwise if it's empty then the package is not installed # If pkg_status is `installed` then we don't need to install the package, otherwise if it's empty then the package is not installed
@ -140,7 +141,7 @@ print_apt_status() {
count=$(echo $apt_packages | wc -w) count=$(echo $apt_packages | wc -w)
installed=0 installed=0
for package in $apt_packages; do for package in "${apt_packages[@]}"; do
pkg_status=$(dpkg -s $package 2> /dev/null | grep "Status" | cut -d " " -f 4) pkg_status=$(dpkg -s $package 2> /dev/null | grep "Status" | cut -d " " -f 4)
if [ "$pkg_status" = "installed" ]; then if [ "$pkg_status" = "installed" ]; then

View File

@ -14,7 +14,7 @@ ensure_cargo_packages_installed() {
binary=$(cat $DOTFILES_CONFIG | shyaml get-value config.packages.cargo.$package.binary 2>/dev/null) binary=$(cat $DOTFILES_CONFIG | shyaml get-value config.packages.cargo.$package.binary 2>/dev/null)
# If pkg_status is `installed` then we don't need to install the package, otherwise if it's empty then the package is not installed # If pkg_status is `installed` then we don't need to install the package, otherwise if it's empty then the package is not installed
if [ -z $pkg_status ]; then if [ -z "$pkg_status" ]; then
ensure_sudo_privileges "In order to install $package, please provide your password:" ensure_sudo_privileges "In order to install $package, please provide your password:"
printfe "%s" "yellow" " - Compiling/Installing $package... (This may take a while)" printfe "%s" "yellow" " - Compiling/Installing $package... (This may take a while)"
clear_line clear_line
@ -50,7 +50,7 @@ print_cargo_status() {
count=$(echo $cargo_packages | wc -w) count=$(echo $cargo_packages | wc -w)
installed=0 installed=0
for package in $cargo_packages; do for package in "${cargo_packages[@]}"; do
pkg_status=$(cargo install --list | grep -E "^${package}\sv[0-9.]+:$") pkg_status=$(cargo install --list | grep -E "^${package}\sv[0-9.]+:$")
if [ -z $pkg_status ]; then if [ -z $pkg_status ]; then

View File

@ -5,7 +5,7 @@ source $HOME/dotfiles/bin/helpers/functions.sh
ensure_flatpak_packages_installed() { ensure_flatpak_packages_installed() {
flatpak_packages=($(ls $HOME/dotfiles/config/flatpaks/ | sed 's/.flatpakref//g')) flatpak_packages=($(ls $HOME/dotfiles/config/flatpaks/ | sed 's/.flatpakref//g'))
for package in $flatpak_packages; do for package in "${flatpak_packages[@]}"; do
if ! flatpak list | grep -q $package; then if ! flatpak list | grep -q $package; then
printfe "%s\n" "cyan" " - Installing $package..." printfe "%s\n" "cyan" " - Installing $package..."
flatpak install -y flathub $package flatpak install -y flathub $package
@ -22,6 +22,11 @@ ensure_flatpak_packages_installed() {
} }
print_flatpak_status() { print_flatpak_status() {
if is_wsl; then
printfe "%s\n" "yellow" "Running in WSL, skipping Flatpak packages check."
return
fi
printfe "%s" "cyan" "Checking Flatpak packages..." printfe "%s" "cyan" "Checking Flatpak packages..."
clear_line clear_line
@ -30,7 +35,7 @@ print_flatpak_status() {
count=$(echo $flatpak_packages | wc -w) count=$(echo $flatpak_packages | wc -w)
installed=0 installed=0
for package in $flatpak_packages; do for package in "${flatpak_packages[@]}"; do
if flatpak list | grep -q $package; then if flatpak list | grep -q $package; then
installed=$((installed + 1)) installed=$((installed + 1))
else else

View File

@ -6,6 +6,15 @@ println() {
printfe "%s\n" $color "$1" printfe "%s\n" $color "$1"
} }
is_wsl() {
unameres=$(uname -a | grep -i "microsoft" | wc -l)
if [ -n "$unameres" ]; then
return 0
else
return 1
fi
}
logo() { logo() {
tput setaf 2 tput setaf 2
cat $HOME/dotfiles/bin/resources/logo.txt cat $HOME/dotfiles/bin/resources/logo.txt

View File

@ -7,7 +7,7 @@ ensure_git_repos() {
repos=($(cat $HOME/dotfiles/config/config.yaml | shyaml keys config.git)) repos=($(cat $HOME/dotfiles/config/config.yaml | shyaml keys config.git))
# For each repo in the config file, ensure it is cloned (url + branch, if specified) # For each repo in the config file, ensure it is cloned (url + branch, if specified)
for repo in $repos; do for repo in "${repos[@]}"; do
url=$(cat $HOME/dotfiles/config/config.yaml | shyaml get-value config.git.$repo.url) url=$(cat $HOME/dotfiles/config/config.yaml | shyaml get-value config.git.$repo.url)
branch=$(cat $HOME/dotfiles/config/config.yaml | shyaml get-value config.git.$repo.branch) branch=$(cat $HOME/dotfiles/config/config.yaml | shyaml get-value config.git.$repo.branch)
target=$(cat $HOME/dotfiles/config/config.yaml | shyaml get-value config.git.$repo.target) target=$(cat $HOME/dotfiles/config/config.yaml | shyaml get-value config.git.$repo.target)

View File

@ -3,6 +3,11 @@
source $HOME/dotfiles/bin/helpers/functions.sh source $HOME/dotfiles/bin/helpers/functions.sh
ensure_gnome_extensions_installed() { ensure_gnome_extensions_installed() {
if is_wsl; then
printfe "%s\n" "yellow" "Running in WSL, skipping GNOME extensions."
return
fi
# In case gnome-extensions is installed but we don't use GNOME let's do a check # In case gnome-extensions is installed but we don't use GNOME let's do a check
if [ "$XDG_CURRENT_DESKTOP" != "GNOME" ]; then if [ "$XDG_CURRENT_DESKTOP" != "GNOME" ]; then
printfe "%s\n" "red" " - XDG_CURRENT_DESKTOP is not GNOME, likely not running GNOME." printfe "%s\n" "red" " - XDG_CURRENT_DESKTOP is not GNOME, likely not running GNOME."

View File

@ -30,6 +30,11 @@ ensure_swhkd() {
} }
ensure_keyboard_shortcuts() { ensure_keyboard_shortcuts() {
if is_wsl; then
printfe "%s\n" "yellow" "Running in WSL, skipping keyboard shortcuts."
return
fi
printfe "%s\n" "green" " - Setting up swhkd configuration..." printfe "%s\n" "green" " - Setting up swhkd configuration..."
ensure_swhkd ensure_swhkd

View File

@ -1,29 +0,0 @@
#!/usr/bin/env bash
source $HOME/dotfiles/bin/helpers/functions.sh
ensure_ohmyzsh_installed() {
if [ -d ~/.oh-my-zsh ]; then
printfe "%s" "yellow" " - Updating Oh My Zsh..."
echo -en "\r"
zstyle ':omz:update' verbose minimal
result=$($ZSH/tools/upgrade.sh)
if [ $? -ne 0 ]; then
printfe "%s\n" "red" "Failed to update Oh My Zsh"
exit 1
fi
# if result contains "already at the latest version" then it's already up to date and we should say so
if [[ $result == *"already at the latest version"* ]]; then
printfe "%s\n" "green" " - Oh My Zsh is already up to date"
else
printfe "%s\n" "green" " - Oh My Zsh updated successfully"
printfe "%s\n" "green" "$result"
fi
else
wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh
sh install.sh --unattended --keep-zshrc
fi
}

View File

@ -35,7 +35,7 @@ print_pipx_status() {
count=$(echo $pipx_packages | wc -w) count=$(echo $pipx_packages | wc -w)
installed=0 installed=0
for package in $pipx_packages; do for package in "${pipx_packages[@]}"; do
if pipx list | grep -q $package; then if pipx list | grep -q $package; then
installed=$((installed + 1)) installed=$((installed + 1))
else else

View File

@ -7,7 +7,7 @@ ensure_user_groups() {
users=($(cat $DOTFILES_CONFIG | shyaml keys config.user_groups)) users=($(cat $DOTFILES_CONFIG | shyaml keys config.user_groups))
# For each user, ensure they are in the correct groups # For each user, ensure they are in the correct groups
for user in $users; do for user in "${users[@]}"; do
# Ensure this user exists # Ensure this user exists
if [[ ! $(id -u $user) ]]; then if [[ ! $(id -u $user) ]]; then
printfe "%s\n" "red" " - User $user does not exist" printfe "%s\n" "red" " - User $user does not exist"
@ -25,7 +25,7 @@ ensure_user_in_groups() {
printfe "%s\n" "cyan" " - For user $user..." printfe "%s\n" "cyan" " - For user $user..."
# For each group, ensure the user is in it # For each group, ensure the user is in it
for group in $groups; do for group in "${groups[@]}"; do
# Check if the group exists at all, otherwise skip # Check if the group exists at all, otherwise skip
if [[ ! $(getent group $group) ]]; then if [[ ! $(getent group $group) ]]; then
printfe "%s\n" "red" " Group $group does not exist" printfe "%s\n" "red" " Group $group does not exist"

View File

@ -13,6 +13,11 @@ load_vscode_extensions() {
} }
ensure_vscode_extensions_installed() { ensure_vscode_extensions_installed() {
if is_wsl; then
printfe "%s\n" "yellow" "Running in WSL, skipping VSCode extensions."
return
fi
# Load extensions list from jq in ~/dotfiles/vscode/extensions.json # Load extensions list from jq in ~/dotfiles/vscode/extensions.json
load_vscode_extensions load_vscode_extensions

View File

@ -117,7 +117,7 @@ config:
git: git:
dotfiles: dotfiles:
url: ssh://od.mvl.sh/dotfiles url: git@git.mvl.sh:vleeuwenmenno/dotfiles.git
branch: master branch: master
target: ~/dotfiles target: ~/dotfiles
@ -163,6 +163,7 @@ config:
apps: apps:
- bash - bash
- bash-completion - bash-completion
- cargo
- solaar - solaar
- git - git
- curl - curl
@ -195,9 +196,9 @@ config:
- libfontconfig-dev - libfontconfig-dev
- libfreetype-dev - libfreetype-dev
- mold - mold
- cargo
- clang - clang
- libgtk-3-dev - libgtk-3-dev
- gcc
- gcc-mingw-w64 - gcc-mingw-w64
- btop - btop
- htop - htop
@ -238,4 +239,5 @@ config:
- libcurses-perl - libcurses-perl
- xdotool - xdotool
- xclip - xclip
- unzip
- zip

View File

@ -1,5 +1,4 @@
Host * Host *
IdentityAgent ~/.1password/agent.sock IdentityAgent ~/.ssh/agent.sock
# IdentityFile ~/.ssh/id_ed25519
Include ~/.ssh/config.d/*.conf Include ~/.ssh/config.d/*.conf

View File

@ -1,12 +1,11 @@
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
jA0ECQMKPDKFRvBnrMb/0sB/AQtSElOwVPsRyq2XVqk1YPDlAvZXHfoYn9SWWxpH jA0ECQMKGM4XJ+1JSFL/0sB+Acqhp/tBhquhLRl9MdRR8YTPDHu7r20bRdlhjk/j
mBRWYvFsnEeL2Z1Wyo1/1GEgDtPmu51R7+RxUVjI//+rhBd1voc5IQyEQKlC76OZ bQc+5WiVwowDYpFmPdPKRD0l+d0DZtbdgjvY4AzfyisP6t0SmvlQk/7QEEkxCwum
oSGWEwvZaViAn+GN1lhWuiQLpopvSuTIwWkGItqpj7AgBX8st37NR7gdZSJO6LOa OH/C6RtYa5pi2oyFMya4m74PWLZ9tQNzNE/+G208MgKraxbIUn52OazRn43xLFXX
OTcOG0SVToERT+LI5UagbUuyFBS92kBYXGrc5FICC3/UQfwcCNlWlQyYDNy9qLRj s5TmWZnXtUrSTdq29E8qqiOzyuwTxgotiQy3y1wtvV4NRbHVv2qV7yvNLvmqwUmZ
fnOlVIf5I/LCDBkdVUdSD0fIRfZS7jQowLyeQphdvGcqoXo0TEt4mMAu/4pjoaYr rONlUVmOVJ3vI0fT0rGzS64Mcc/zCDcDq1X3b8kP76r1Veut3lZRfGA/na5CEigX
A5f+ONjQ7sk14Xq3hDa5mlZYbMq3YKRwBK7zkpdu08M6q9fcnQbbof6CVGJ7lVsH lvxeya93NimAHmALouyXYOoPr5pSaIn8JlDJBG1p3cIPDyRALPAU6H6Me4BJ/kVP
tBILFJ13FrDHdpAToQ5UgiL7xxTRt5OlDAC6rnJGDjqSBKhkVUdu4hOL8q245Eyg FrO4c6vVdiQ/mR8ImfoO6cyY4OrS/oN4InnbOeTLTH56cs3kxECMsQZQuCEfTLnB
pw== =Sp45
=9acB
-----END PGP MESSAGE----- -----END PGP MESSAGE-----

View File

@ -1,8 +1,8 @@
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
jA0ECQMK0ezWdMz6xLD/0ooBfJdyZpS6uaY8p8IrD/OxtAIFd4UW+kiTHfq3/NEY jA0ECQMKK5LQqL/uT1//0ooBD4FgJMh9ZcaQglYBKatVzVMwiXjXeyDbbkNfLuy9
2RcHHNerdmvPnsp2GUusb6y69qOHo52xU4BWHGyS+hGEi3NL/jetOr/F5Gv6IfVm 63AiJssXfEeiD9KkZsOE842+D4iYWKJaMVqx+7IvUvpDwRhzB3p0jmEVHE7VnBVY
sYeQm54ouvGm94AGffkuhAIfGqBw5oNaw7OAORMUaPHAu7kEOJKZV0LngNcl0ZPd L7a5y5eQSDb4PgWY3mBn6nIUa/zcHWoR+2M9w0OR6yu5qlQlKTMfIQSNrhzcZnOl
dAq/aI7hxiXgBl4= g/Kzq59T/JHiNC0=
=kF4Z =AnKk
-----END PGP MESSAGE----- -----END PGP MESSAGE-----

View File

@ -1,9 +1,9 @@
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
jA0ECQMKZqW47AwNV37/0sAIARJo/Z56SlQn2Y5a4DLSxU/44Ozu9582ZXXwcos6 jA0ECQMKoynZX3wBvAj/0sAJAWbvGl//KUesv3/CJ0sEYRMunMgT6N4hhFh+YL7G
/Wy2aoWAlbqOC9zOXFgqelmJDx8XcZ/RQG85uYANGZhPBawicVbl4XQUdRWY/yBi f30+XuKqw7iqkcbWkTQd9tfGtQjlL1B6Z8d1aytFTa5C5qudDqll3JPh3dOlMqAb
GFiGAHB/glIDenFK7ZmZpF1tycXjSL+ImOJMpsavNuYwsPGZ1ZFG6+rJEWffj62t ajr5RZzSvamwxRwZVsfcZwch6CPNIb2oT7+33Vszz7U7ZYGOJoNXyAZ88GXT/SB5
tHpFAEpTkVtk5T85sPN5I7+J+CTW0SOVFn5orqwRYLd0CAw6TFs9mNx7CfIEEpFc BSfTuRNxRwL13BQEw84A34K5Z7jeO+w3of9sc1bnVhE7HiYi4iRZ8s/9Z25QQwNP
9BGBujJPP6L2XSVdJ8KKRbcJFxPJyjNcY9Y= zUU1vPiIr13OC7horCbLQibAkcheniY4xheg
=Q/Tc =LOVN
-----END PGP MESSAGE----- -----END PGP MESSAGE-----

View File

@ -1,12 +1,12 @@
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
jA0ECQMKuzIJHbvXgjP/0sCRAWhdAU3Ndtz6maPvcLzvwDY6Z+BwnZSSdOzwf/v7 jA0ECQMKkTq/rJ/LhLT/0sCRAW8S+L7VkMGcYTTE/r8+T6//sUoRPuKLgq3DmZzx
ECbK/bJ/2wof1xsZfGHVSMRohEItQtuA4kmAd6a+2lGDoub0OtF/a5BEiOZSIS9m BV97URPpwiokBiBr7o/fkJ/IXsYH8pYWd8AmOVwt0N6rkGGTg6TVU3ugPYuZ+pGV
HajMlOpMVA3AuZTcLGJeCbW/voLb1hzIJ+NzFKDTXTm/q8jWnJ0ehkSE0bBRq97l OMNR2tvG1K0boyE2No2Jj4JhuAskqMAqjKP47qAi+N9pahCwb/l1/CnO7AfeQ9lA
gcRi2V86XpMeISurPUDffzeJWFOrrwI1URS/eURJs5ilhSSCW2M1Tb1AATNsiFIC udJqxKlNNaabYeWbsSbzwZUq5BmkMROiNsC4nTvRJQi65BRNLljwTucMmeP40ZWF
eatQrWYRBrC4Drfhh2ua25CO2kZ/SIztltIjIHHFtGdS6r4Mh7VEX1Ttn2e54nm0 IGoybJFeCoz4GcXu3G6A4xoja+EZH01CwHaDRectIxw1VFHPi9ZbxCFiFFR4QsaA
RrDXaEZvDTBN71RaLrz17JzBYZNsrFgXi5tzjBL2rT7riMWxFjfs9MiLyCA32aWI 2+y3QUVsnQoRsBmiNiwPYC9s3IorOZ/bNiJc+LjjHOxQFaRp9L+KEMdpiFacUB/w
5m/p14wbLOl9oz/bAMkvqq319FlyDRwz/bewffm3bx7/gnwraX0Pc5qWU7B1YuQc ZHo4fY5O8SqdmmWWRH/x3yPN5Db3P8PMKOUnxlHEHcC54t/ItSbi+IqdR5hM1CnS
fcrqlx7QOrhTmlyYF8AnvRCdoQ== 9vHbvOzpndl2dsMKHfJDb0eVFg==
=ay+/ =owYw
-----END PGP MESSAGE----- -----END PGP MESSAGE-----

View File

@ -1,8 +1,11 @@
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
jA0ECQMKtrNPsE/Otib/0qkBudhpQbcpLTsBIu7a2F0YAhM1fh7P0ECnD89TRoBh jA0ECQMKdZEz4kVOVSH/0sBZAUzH5fS/bnmqrfoS1zzZSFHdClKqPGEQDAa9NtS8
7wwuejYgjrNcrBextGITUXfWx70OQ2hasAGvxV9XGWkQrUU2LX+osqFOnYq9xbAe RB8dIoIk/oiqFlHdTgp0dJVHf4iywPoNg+EYQEkviKGz8Ye0DvO+tYpd8Iz7xt64
X+SC5ONsXv9M7I3EIhLCvEgJJvKgZAMQE+81sFLhn7QOsd8FLqnPT64Q2Z9IJnbD t5XgfzuA7fZOWf68u4LV02cPpyf0qmww4pVN/TRJzIfnIOYLpBmRD3Z6NCrLvBiw
sQg3TkVASiS4nPHKehLSu5W8764OEvuvG5e0gB+iC6OUlINNcFio/7DK nR8ndZmnyxJYvP/+e4vBcNeSm3vctnwBwAD1sl66MQmsulCWx/6XtUKAJO5Kb27n
=qEfc QiBvugiMeyq462Qu+GS2lgQnNIJpExaCb986GvUlyPiRHRfo34EdoncSp5Di5Ehb
0XAWjV80vRs0uimONkdr1KuC5X8HLek4NiQFXehAYbL+xFgY3CDWYnxRCqyimGZX
VGo8CUH+uJ3FWXI=
=8kgf
-----END PGP MESSAGE----- -----END PGP MESSAGE-----

View File

@ -1,11 +1,12 @@
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
jA0ECQMKRKyQPUttWk//0sB+AVvOAApr+FJLU798l0p3a8OoWetUiisNq8AxR1Cd jA0ECQMK4/iYhbHcAZD/0sB/AaFBcKC7WWo1kb0EQc41tQUtf80Sw1R1LB8EH2sV
dieyTKBi/H/UYkDis3/5UOcUohJuSWoNExnwAkZ5iEApcst47V9/QMjP6dFqxW7G aXK/YUnoMjkz3pU9cmOJjy3cywmldLakZZzYxQDROUDC483fzdKPjjHtTzG1/eqg
Nuv27GOTLTluK3/zETjD3I83VgXSV/GcLzoOsS0QWpj9oEAnBV6brDoL7IX1sjQH QIwBcdFvFJD1976pvS9CzQ/XRStZaWoVBTAkwVoUXRyBW6pMzkecy+lcqVdDR0DO
b41mg7dkOzwKqYoXWFXZQ8U0vP/xpQs46RiTvfJCwgKDdq3r6YrR6hqnbX5TcFx0 VZNGR19zzZ4XvX0oMUBKEkS7wpzZabTTnTDmVHFdl5xU23Cj8F+CCyKEhSqVQZGk
2ds0cCVPfmdod+Jv3K62RTwjF2PC3fDeDxsLgPv/HeMSDbH6ZnknOb5H8FQd9Biw VsWC5eD69f9kBm467jLizxnS8kjKzTX3o+N7BQB0DwAQcPw1XmTPXQwAoOrRomRa
lsF5RREEekxaou/k1+T1WqMb/u6ZlX13MedSvZoDybkxyya1FBCD8Io1uHwgC0/Y EBR09mlBo62qJw0Jt8JAINGxopLcgRQqTsoqGItV9+Gx2oCxDXAnyQpGwvi0xOwb
vKyQRi1GaH42yvwqhdahpUCipqowlCy8IeAA3R94j6DDtZLdtdcaA9cosN0beRjR gLB6p2S6wX4dx7MEObiC+JR/59V/ZnAnjkJ9+U+31hmRfOwVGkmd8z8MhreqiN5w
=DPFS 1w==
=xEm4
-----END PGP MESSAGE----- -----END PGP MESSAGE-----

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -20,8 +20,6 @@ fi
sed -i -e '$a\'$'\n''export PATH=$PATH:$HOME/.local/bin' ~/.bashrc sed -i -e '$a\'$'\n''export PATH=$PATH:$HOME/.local/bin' ~/.bashrc
sed -i -e '$a\'$'\n''export PATH=$PATH:~/dotfiles/bin' ~/.bashrc sed -i -e '$a\'$'\n''export PATH=$PATH:~/dotfiles/bin' ~/.bashrc
sed -i -e '$a\'$'\n''export PATH=$PATH:$HOME/.local/bin' ~/.zshrc
sed -i -e '$a\'$'\n''export PATH=$PATH:~/dotfiles/bin' ~/.zshrc
echo "#########################################################" echo "#########################################################"
echo "# #" echo "# #"