From f569e5e5ccf3c13421ce7751b2d93524b214385c Mon Sep 17 00:00:00 2001
From: Guilherme Werner <guilhermewerner@tribufu.com>
Date: Fri, 1 Nov 2024 19:37:30 -0300
Subject: [PATCH] Update scripts

---
 Config/settings.json                          | 340 ------------------
 Scripts/ArchWSL.sh                            |  96 -----
 Scripts/Asdf.sh                               |  48 ---
 Scripts/Databases.sh                          |  89 -----
 Scripts/Hyper-V.ps1                           |   3 -
 Scripts/Hyper-V.sh                            |   5 -
 Scripts/Mac.command                           |   3 -
 Scripts/Manjaro.sh                            |  87 -----
 Scripts/Ubuntu.sh                             | 124 -------
 bootstrap.bat                                 |   5 +
 bootstrap.command                             |   3 +
 Scripts/Windows.ps1 => bootstrap.ps1          |   0
 bootstrap.sh                                  | 145 ++++++++
 {Config => linux}/.zshrc                      |   0
 {Config => shared/.config}/starship.toml      |   0
 {Config => shared}/.gitconfig                 |   0
 {Config => shared}/.ssh/config                |   0
 .../.config}/Microsoft.PowerShell_profile.ps1 |   0
 {Config => windows}/.wslconfig                |   0
 19 files changed, 153 insertions(+), 795 deletions(-)
 delete mode 100644 Config/settings.json
 delete mode 100644 Scripts/ArchWSL.sh
 delete mode 100644 Scripts/Asdf.sh
 delete mode 100644 Scripts/Databases.sh
 delete mode 100644 Scripts/Hyper-V.ps1
 delete mode 100644 Scripts/Hyper-V.sh
 delete mode 100644 Scripts/Mac.command
 delete mode 100644 Scripts/Manjaro.sh
 delete mode 100644 Scripts/Ubuntu.sh
 create mode 100644 bootstrap.bat
 create mode 100644 bootstrap.command
 rename Scripts/Windows.ps1 => bootstrap.ps1 (100%)
 create mode 100644 bootstrap.sh
 rename {Config => linux}/.zshrc (100%)
 rename {Config => shared/.config}/starship.toml (100%)
 rename {Config => shared}/.gitconfig (100%)
 rename {Config => shared}/.ssh/config (100%)
 rename {Config => windows/.config}/Microsoft.PowerShell_profile.ps1 (100%)
 rename {Config => windows}/.wslconfig (100%)

diff --git a/Config/settings.json b/Config/settings.json
deleted file mode 100644
index 97cb9c4..0000000
--- a/Config/settings.json
+++ /dev/null
@@ -1,340 +0,0 @@
-{
-    "$help": "https://aka.ms/terminal-documentation",
-    "$schema": "https://aka.ms/terminal-profiles-schema",
-    "actions": [
-        {
-            "command": {
-                "action": "copy",
-                "singleLine": false
-            },
-            "keys": "ctrl+c"
-        },
-        {
-            "command": "paste",
-            "keys": "ctrl+v"
-        },
-        {
-            "command": {
-                "action": "splitPane",
-                "split": "auto",
-                "splitMode": "duplicate"
-            },
-            "keys": "alt+shift+d"
-        },
-        {
-            "command": "find",
-            "keys": "ctrl+shift+f"
-        }
-    ],
-    "copyFormatting": "none",
-    "copyOnSelect": false,
-    "defaultProfile": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
-    "newTabMenu": [
-        {
-            "type": "remainingProfiles"
-        }
-    ],
-    "profiles": {
-        "defaults": {
-            "colorScheme": "Dracula",
-            "font": {
-                "face": "Cascadia Code PL",
-                "size": 12.0
-            },
-            "opacity": 75,
-            "suppressApplicationTitle": true,
-            "useAcrylic": true
-        },
-        "list": [
-            {
-                "commandline": "pwsh.exe -NoLogo",
-                "guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
-                "hidden": false,
-                "name": "PowerShell",
-                "source": "Windows.Terminal.PowershellCore",
-                "startingDirectory": "C:\\Projects"
-            },
-            {
-                "commandline": "%SystemRoot%\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
-                "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
-                "hidden": false,
-                "name": "Windows PowerShell"
-            },
-            {
-                "commandline": "%SystemRoot%\\System32\\cmd.exe",
-                "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
-                "hidden": false,
-                "name": "Prompt de comando"
-            },
-            {
-                "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
-                "hidden": false,
-                "name": "Azure Cloud Shell",
-                "source": "Windows.Terminal.Azure"
-            },
-            {
-                "guid": "{d8d6bac2-e987-5cd3-a60b-ca8c33acf7f5}",
-                "hidden": false,
-                "name": "Developer Command Prompt for VS 2022",
-                "source": "Windows.Terminal.VisualStudio"
-            },
-            {
-                "guid": "{0cc6a5dd-fd98-5681-8764-8fc5329c4e49}",
-                "hidden": false,
-                "name": "Developer PowerShell for VS 2022",
-                "source": "Windows.Terminal.VisualStudio"
-            },
-            {
-                "guid": "{16208362-94fc-5b1f-a491-5b2624d5ab56}",
-                "hidden": true,
-                "name": "Visual Studio Debug Console",
-                "source": "VSDebugConsole"
-            },
-            {
-                "guid": "{570478bc-4126-5534-8406-3146a71b3e5e}",
-                "hidden": true,
-                "name": "Developer Command Prompt for VS 2019",
-                "source": "Windows.Terminal.VisualStudio"
-            },
-            {
-                "guid": "{6b6ff133-867f-5646-8df7-85faf04f4d63}",
-                "hidden": true,
-                "name": "Developer PowerShell for VS 2019",
-                "source": "Windows.Terminal.VisualStudio"
-            }
-        ]
-    },
-    "schemes": [
-        {
-            "background": "#0C0C0C",
-            "black": "#0C0C0C",
-            "blue": "#0037DA",
-            "brightBlack": "#767676",
-            "brightBlue": "#3B78FF",
-            "brightCyan": "#61D6D6",
-            "brightGreen": "#16C60C",
-            "brightPurple": "#B4009E",
-            "brightRed": "#E74856",
-            "brightWhite": "#F2F2F2",
-            "brightYellow": "#F9F1A5",
-            "cursorColor": "#FFFFFF",
-            "cyan": "#3A96DD",
-            "foreground": "#CCCCCC",
-            "green": "#13A10E",
-            "name": "Campbell",
-            "purple": "#881798",
-            "red": "#C50F1F",
-            "selectionBackground": "#FFFFFF",
-            "white": "#CCCCCC",
-            "yellow": "#C19C00"
-        },
-        {
-            "background": "#012456",
-            "black": "#0C0C0C",
-            "blue": "#0037DA",
-            "brightBlack": "#767676",
-            "brightBlue": "#3B78FF",
-            "brightCyan": "#61D6D6",
-            "brightGreen": "#16C60C",
-            "brightPurple": "#B4009E",
-            "brightRed": "#E74856",
-            "brightWhite": "#F2F2F2",
-            "brightYellow": "#F9F1A5",
-            "cursorColor": "#FFFFFF",
-            "cyan": "#3A96DD",
-            "foreground": "#CCCCCC",
-            "green": "#13A10E",
-            "name": "Campbell Powershell",
-            "purple": "#881798",
-            "red": "#C50F1F",
-            "selectionBackground": "#FFFFFF",
-            "white": "#CCCCCC",
-            "yellow": "#C19C00"
-        },
-        {
-            "background": "#1E1E1E",
-            "black": "#21222C",
-            "blue": "#BD93F9",
-            "brightBlack": "#6272A4",
-            "brightBlue": "#D6ACFF",
-            "brightCyan": "#A4FFFF",
-            "brightGreen": "#69FF94",
-            "brightPurple": "#FF92DF",
-            "brightRed": "#FF6E6E",
-            "brightWhite": "#FFFFFF",
-            "brightYellow": "#FFFFA5",
-            "cursorColor": "#F8F8F2",
-            "cyan": "#8BE9FD",
-            "foreground": "#F8F8F2",
-            "green": "#50FA7B",
-            "name": "Dracula",
-            "purple": "#FF79C6",
-            "red": "#FF5555",
-            "selectionBackground": "#FFFFFF",
-            "white": "#F8F8F2",
-            "yellow": "#F1FA8C"
-        },
-        {
-            "background": "#282C34",
-            "black": "#282C34",
-            "blue": "#61AFEF",
-            "brightBlack": "#5A6374",
-            "brightBlue": "#61AFEF",
-            "brightCyan": "#56B6C2",
-            "brightGreen": "#98C379",
-            "brightPurple": "#C678DD",
-            "brightRed": "#E06C75",
-            "brightWhite": "#DCDFE4",
-            "brightYellow": "#E5C07B",
-            "cursorColor": "#FFFFFF",
-            "cyan": "#56B6C2",
-            "foreground": "#DCDFE4",
-            "green": "#98C379",
-            "name": "One Half Dark",
-            "purple": "#C678DD",
-            "red": "#E06C75",
-            "selectionBackground": "#FFFFFF",
-            "white": "#DCDFE4",
-            "yellow": "#E5C07B"
-        },
-        {
-            "background": "#FAFAFA",
-            "black": "#383A42",
-            "blue": "#0184BC",
-            "brightBlack": "#4F525D",
-            "brightBlue": "#61AFEF",
-            "brightCyan": "#56B5C1",
-            "brightGreen": "#98C379",
-            "brightPurple": "#C577DD",
-            "brightRed": "#DF6C75",
-            "brightWhite": "#FFFFFF",
-            "brightYellow": "#E4C07A",
-            "cursorColor": "#4F525D",
-            "cyan": "#0997B3",
-            "foreground": "#383A42",
-            "green": "#50A14F",
-            "name": "One Half Light",
-            "purple": "#A626A4",
-            "red": "#E45649",
-            "selectionBackground": "#FFFFFF",
-            "white": "#FAFAFA",
-            "yellow": "#C18301"
-        },
-        {
-            "background": "#002B36",
-            "black": "#002B36",
-            "blue": "#268BD2",
-            "brightBlack": "#073642",
-            "brightBlue": "#839496",
-            "brightCyan": "#93A1A1",
-            "brightGreen": "#586E75",
-            "brightPurple": "#6C71C4",
-            "brightRed": "#CB4B16",
-            "brightWhite": "#FDF6E3",
-            "brightYellow": "#657B83",
-            "cursorColor": "#FFFFFF",
-            "cyan": "#2AA198",
-            "foreground": "#839496",
-            "green": "#859900",
-            "name": "Solarized Dark",
-            "purple": "#D33682",
-            "red": "#DC322F",
-            "selectionBackground": "#FFFFFF",
-            "white": "#EEE8D5",
-            "yellow": "#B58900"
-        },
-        {
-            "background": "#FDF6E3",
-            "black": "#002B36",
-            "blue": "#268BD2",
-            "brightBlack": "#073642",
-            "brightBlue": "#839496",
-            "brightCyan": "#93A1A1",
-            "brightGreen": "#586E75",
-            "brightPurple": "#6C71C4",
-            "brightRed": "#CB4B16",
-            "brightWhite": "#FDF6E3",
-            "brightYellow": "#657B83",
-            "cursorColor": "#002B36",
-            "cyan": "#2AA198",
-            "foreground": "#657B83",
-            "green": "#859900",
-            "name": "Solarized Light",
-            "purple": "#D33682",
-            "red": "#DC322F",
-            "selectionBackground": "#FFFFFF",
-            "white": "#EEE8D5",
-            "yellow": "#B58900"
-        },
-        {
-            "background": "#000000",
-            "black": "#000000",
-            "blue": "#3465A4",
-            "brightBlack": "#555753",
-            "brightBlue": "#729FCF",
-            "brightCyan": "#34E2E2",
-            "brightGreen": "#8AE234",
-            "brightPurple": "#AD7FA8",
-            "brightRed": "#EF2929",
-            "brightWhite": "#EEEEEC",
-            "brightYellow": "#FCE94F",
-            "cursorColor": "#FFFFFF",
-            "cyan": "#06989A",
-            "foreground": "#D3D7CF",
-            "green": "#4E9A06",
-            "name": "Tango Dark",
-            "purple": "#75507B",
-            "red": "#CC0000",
-            "selectionBackground": "#FFFFFF",
-            "white": "#D3D7CF",
-            "yellow": "#C4A000"
-        },
-        {
-            "background": "#FFFFFF",
-            "black": "#000000",
-            "blue": "#3465A4",
-            "brightBlack": "#555753",
-            "brightBlue": "#729FCF",
-            "brightCyan": "#34E2E2",
-            "brightGreen": "#8AE234",
-            "brightPurple": "#AD7FA8",
-            "brightRed": "#EF2929",
-            "brightWhite": "#EEEEEC",
-            "brightYellow": "#FCE94F",
-            "cursorColor": "#000000",
-            "cyan": "#06989A",
-            "foreground": "#555753",
-            "green": "#4E9A06",
-            "name": "Tango Light",
-            "purple": "#75507B",
-            "red": "#CC0000",
-            "selectionBackground": "#FFFFFF",
-            "white": "#D3D7CF",
-            "yellow": "#C4A000"
-        },
-        {
-            "background": "#000000",
-            "black": "#000000",
-            "blue": "#000080",
-            "brightBlack": "#808080",
-            "brightBlue": "#0000FF",
-            "brightCyan": "#00FFFF",
-            "brightGreen": "#00FF00",
-            "brightPurple": "#FF00FF",
-            "brightRed": "#FF0000",
-            "brightWhite": "#FFFFFF",
-            "brightYellow": "#FFFF00",
-            "cursorColor": "#FFFFFF",
-            "cyan": "#008080",
-            "foreground": "#C0C0C0",
-            "green": "#008000",
-            "name": "Vintage",
-            "purple": "#800080",
-            "red": "#800000",
-            "selectionBackground": "#FFFFFF",
-            "white": "#C0C0C0",
-            "yellow": "#808000"
-        }
-    ],
-    "themes": []
-}
diff --git a/Scripts/ArchWSL.sh b/Scripts/ArchWSL.sh
deleted file mode 100644
index beb6cd0..0000000
--- a/Scripts/ArchWSL.sh
+++ /dev/null
@@ -1,96 +0,0 @@
-#!/usr/bin/env sh
-
-# Change Password
-
-passwd
-
-# Add User
-
-echo "%wheel ALL=(ALL) ALL" > /etc/sudoers.d/wheel
-useradd -m -G wheel -s /bin/bash guilherme
-passwd guilherme
-
-# Initialize Keyring
-
-sudo pacman-key --init
-sudo pacman-key --populate
-sudo pacman -Sy archlinux-keyring
-sudo pacman -Su
-
-# Dependencies
-
-sudo pacman -S \
-    autoconf \
-    automake \
-    clang \
-    cmake \
-    curl \
-    ffmpeg \
-    gcc \
-    git \
-    github-cli \
-    gzip \
-    htop \
-    llvm \
-    make \
-    mono \
-    nano \
-    neofetch \
-    nginx \
-    ninja \
-    python \
-    tar \
-    unzip \
-    wget \
-    zsh
-
-# Git
-
-cp ./Config/.gitconfig ~/.gitconfig
-
-# SSH
-
-mkdir ~/.ssh
-cp ./Config/.ssh/config ~/.ssh/config
-
-# ZSH
-
-cp ./Config/.zshrc ~/.zshrc
-xir 1.14.2-otp-25
-
-# Shell
-
-chsh -s /usr/bin/zsh
-mkdir ~/.config
-cp ./Config/starship.toml ~/.config/starship.toml
-git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions
-source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
-curl -sS https://starship.rs/install.sh | sh
-
-# Rust
-
-curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
-source "$HOME/.cargo/env"
-rustup toolchain install nightly
-rustup +nightly component add rust-src
-
-# Tools
-
-git clone https://github.com/asdf-vm/asdf ~/.asdf
-
-cargo install --force \
-    bandwhich \
-    bat \
-    cbindgen \
-    du-dust \
-    fd-find \
-    grex \
-    hyperfine \
-    naga-cli \
-    procs \
-    ripgrep \
-    rmesg \
-    sd \
-    tokei \
-    wasm-bindgen-cli \
-    ytop
diff --git a/Scripts/Asdf.sh b/Scripts/Asdf.sh
deleted file mode 100644
index b330526..0000000
--- a/Scripts/Asdf.sh
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/env sh
-
-# Plugins
-
-asdf plugin add dotnet https://github.com/hensou/asdf-dotnet
-asdf plugin add elixir https://github.com/asdf-vm/asdf-elixir
-asdf plugin add erlang https://github.com/asdf-vm/asdf-erlang
-asdf plugin add golang https://github.com/kennyp/asdf-golang
-asdf plugin add gradle https://github.com/rfrancis/asdf-gradle
-asdf plugin add groovy https://github.com/weibemoura/asdf-groovy
-asdf plugin add haskell https://github.com/vic/asdf-haskell
-asdf plugin add java https://github.com/halcyon/asdf-java
-asdf plugin add kotlin https://github.com/asdf-community/asdf-kotlin
-asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs
-asdf plugin add php https://github.com/asdf-community/asdf-php
-asdf plugin add python https://github.com/danhper/asdf-python
-asdf plugin add ruby https://github.com/asdf-vm/asdf-ruby
-asdf plugin add scala https://github.com/asdf-community/asdf-scala
-
-# Go
-
-asdf install golang 1.22.1
-asdf global golang 1.22.1
-
-# NodeJS
-
-asdf install nodejs 20.11.1
-asdf global nodejs 20.11.1
-
-# .NET
-
-asdf install dotnet 7.0.100
-asdf global dotnet 7.0.100
-
-# Java
-
-asdf install java temurin-21.0.2+13.0.LTS
-asdf global java temurin-21.0.2+13.0.LTS
-
-# Erlang
-
-asdf install erlang 27.0.1
-asdf global erlang 27.0.1
-
-# Elixir
-
-asdf install elixir 1.17.2-otp-27
-asdf global elixir 1.17.2-otp-27
diff --git a/Scripts/Databases.sh b/Scripts/Databases.sh
deleted file mode 100644
index 1492cef..0000000
--- a/Scripts/Databases.sh
+++ /dev/null
@@ -1,89 +0,0 @@
-#!/usr/bin/env sh
-
-export MYSQL_PASSWORD=""
-export MONGO_PASSWORD=""
-export REDIS_PASSWORD=""
-export RABBITMQ_PASSWORD=""
-export MARIADB_PASSWORD=""
-export POSTGRES_PASSWORD=""
-export SQLSERVER_PASSWORD=""
-export FIREBIRD_PASSWORD=""
-export MEILISEARCH_PASSWORD=""
-
-# Mongo -p 27017:27017
-docker run -d \
-    --name "mongo" \
-    --restart unless-stopped \
-    -p 27017:27017 \
-    -e MONGO_INITDB_ROOT_USERNAME=root \
-    -e MONGO_INITDB_ROOT_PASSWORD=$MONGO_PASSWORD \
-    -v /tbf/mongo/config:/data/configdb \
-    -v /tbf/mongo/data:/data/db \
-    mongo:4.4.19-focal
-
-# Redis -p 6379:6379
-docker run -d \
-    --name "redis" \
-    --restart unless-stopped \
-    p 6379:6379 \
-    -v /tbf/redis:/data \
-    redis:7.0.10-alpine
-
-# RabbitMQ -p 5672:5672 -p 15672:15672
-docker run -d \
-    --name "rabbitmq" \
-    --restart unless-stopped \
-    -p 5672:5672 \
-    -p 15672:15672 \
-    -e RABBITMQ_DEFAULT_USER=root \
-    -e RABBITMQ_DEFAULT_PASS=$RABBITMQ_PASSWORD \
-    -v /tbf/rabbitmq:/var/lib/rabbitmq \
-    rabbitmq:3.11.11-management
-
-# MariaDB -p 3306:3306
-docker run -d \
-    --name "mariadb" \
-    --restart unless-stopped \
-    -p 3306:3306 \
-    -e MARIADB_ROOT_PASSWORD=$MARIADB_PASSWORD \
-    -v /tbf/mariadb/etc:/etc/mysql/conf.d \
-    -v /tbf/mariadb/lib:/var/lib/mysql \
-    -v /tbf/mariadb/log:/var/log/mysql \
-    mariadb:10.9.3
-
-# Postgres -p 5432:5432
-docker run -d \
-    --name "postgres" \
-    --restart unless-stopped \
-    -p 5432:5432 \
-    -e POSTGRES_PASSWORD=$POSTGRES_PASSWORD \
-    -v /tbf/postgres:/var/lib/postgresql/data \
-    postgres:latest
-
-# SQLServer -p 1433:1433
-docker run -d \
-    --name "sqlserver" \
-    --restart unless-stopped \
-    -p 1433:1433 \
-    -e ACCEPT_EULA="Y" \
-    -e MSSQL_SA_PASSWORD=$SQLSERVER_PASSWORD \
-    mcr.microsoft.com/mssql/server:2022-latest
-
-# Firebird -p 3050:3050
-docker run -d \
-    --name "firebird" \
-    --restart unless-stopped \
-    -p 3050:3050 \
-    -e FIREBIRD_DATABASE=firebird \
-    -e ISC_PASSWORD=$FIREBIRD_PASSWORD \
-    -v /tbf/firebird:/firebird \
-    jacobalberty/firebird
-
-# MeiliSearch -p 7700:7700
-docker run -d \
-    --name "meilisearch" \
-    --restart unless-stopped \
-    -p 7700:7700 \
-    -e MEILI_MASTER_KEY=$MEILISEARCH_PASSWORD \
-    -v /tbf/meilisearch:/meili_data \
-    getmeili/meilisearch:v1.0
diff --git a/Scripts/Hyper-V.ps1 b/Scripts/Hyper-V.ps1
deleted file mode 100644
index b316591..0000000
--- a/Scripts/Hyper-V.ps1
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env pwsh
-
-Set-VMVideo -VMName "Ubuntu" -HorizontalResolution 1920 -VerticalResolution 1080 -ResolutionType Single
diff --git a/Scripts/Hyper-V.sh b/Scripts/Hyper-V.sh
deleted file mode 100644
index 3cd8096..0000000
--- a/Scripts/Hyper-V.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/usr/bin/env sh
-
-sudo nano /etc/default/grub
-GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=hyperv_fb:1920x1080"
-sudo apt install linux-image-extra-virtual
diff --git a/Scripts/Mac.command b/Scripts/Mac.command
deleted file mode 100644
index 870ef90..0000000
--- a/Scripts/Mac.command
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env zsh
-
-touch ~/.hushlogin
diff --git a/Scripts/Manjaro.sh b/Scripts/Manjaro.sh
deleted file mode 100644
index db2f13b..0000000
--- a/Scripts/Manjaro.sh
+++ /dev/null
@@ -1,87 +0,0 @@
-#!/usr/bin/env sh
-
-# Initialize Keyring
-
-sudo pacman-key --init
-sudo pacman-key --populate
-sudo pacman -Sy archlinux-keyring
-sudo pacman -Su
-
-# Dependencies
-
-sudo pacman -S \
-    autoconf \
-    automake \
-    clang \
-    cmake \
-    curl \
-    ffmpeg \
-    gcc \
-    git \
-    github-cli \
-    gzip \
-    htop \
-    llvm \
-    make \
-    mono \
-    nano \
-    neofetch \
-    nginx \
-    ninja \
-    python \
-    tar \
-    unzip \
-    wget \
-    youtube-dl \
-    zsh
-
-# Rust
-
-curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
-source "$HOME/.cargo/env"
-rustup toolchain install nightly
-rustup +nightly component add rust-src
-
-# Tools
-
-git clone https://github.com/asdf-vm/asdf ~/.asdf
-
-cargo install --force \
-    bandwhich \
-    bat \
-    cbindgen \
-    du-dust \
-    fd-find \
-    grex \
-    hyperfine \
-    naga-cli \
-    procs \
-    ripgrep \
-    rmesg \
-    sd \
-    tokei \
-    wasm-bindgen-cli \
-    ytop
-
-# Git
-
-cp ./Config/.gitconfig ~/.gitconfig
-
-# SSH
-
-mkdir ~/.ssh
-cp ./Config/.ssh/config ~/.ssh/config
-
-# ZSH
-
-cp ./Config/.zshrc ~/.zshrc
-xir 1.14.2-otp-25
-
-# Shell
-
-mkdir ~/.config
-cp ./Config/starship.toml ~/.config/starship.toml
-git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions
-source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
-curl -sS https://starship.rs/install.sh | sh
-chsh -s /usr/bin/zsh
diff --git a/Scripts/Ubuntu.sh b/Scripts/Ubuntu.sh
deleted file mode 100644
index a85681e..0000000
--- a/Scripts/Ubuntu.sh
+++ /dev/null
@@ -1,124 +0,0 @@
-#!/usr/bin/env sh
-
-touch ~/.hushlogin
-
-# Create User
-
-sudo adduser guilherme
-sudo usermod -aG sudo guilherme
-
-# Update
-
-export DEBIAN_FRONTEND=noninteractive
-
-sudo DEBIAN_FRONTEND=noninteractive apt update && sudo apt upgrade -y
-
-# Dependencies
-
-sudo DEBIAN_FRONTEND=noninteractive apt install -y --no-install-recommends \
-    bash \
-    ca-certificates \
-    curl \
-    file \
-    gh \
-    git \
-    gnupg \
-    gzip \
-    htop \
-    iputils-ping \
-    lsb-release \
-    nano \
-    neofetch \
-    python3 \
-    samba \
-    tar \
-    unzip \
-    wget \
-    xz-utils \
-    zsh
-
-sudo DEBIAN_FRONTEND=noninteractive apt install -y --no-install-recommends \
-    autoconf \
-    automake \
-    clang \
-    cmake \
-    ffmpeg \
-    g++ \
-    gcc \
-    libc6-dev \
-    libluajit-5.1-dev \
-    libncurses5-dev \
-    libssl-dev \
-    libudev-dev \
-    llvm \
-    make \
-    mono-complete \
-    ninja-build \
-    youtube-dl
-
-# PowerShell
-
-sudo snap install powershell --classic
-
-# Git
-
-cp ./Config/.gitconfig ~/.gitconfig
-
-# SSH
-
-mkdir ~/.ssh
-cp ./Config/.ssh/config ~/.ssh/config
-
-# ZSH
-
-cp ./Config/.zshrc ~/.zshrc
-
-# Shell
-
-mkdir ~/.config
-cp ./Config/starship.toml ~/.config/starship.toml
-git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions
-chsh -s $(which zsh)
-curl -sS https://starship.rs/install.sh | sh
-source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
-
-# Rust
-
-curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
-source "$HOME/.cargo/env"
-rustup toolchain install nightly
-rustup +nightly component add rust-src
-
-# Tools
-
-git clone https://github.com/asdf-vm/asdf ~/.asdf
-
-cargo install --force \
-    bandwhich \
-    bat \
-    cbindgen \
-    du-dust \
-    fd-find \
-    grex \
-    hyperfine \
-    naga-cli \
-    procs \
-    ripgrep \
-    rmesg \
-    sd \
-    tokei \
-    wasm-bindgen-cli \
-    ytop
-
-# Docker
-
-sudo mkdir -p /etc/apt/keyrings
-curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
-echo \
-  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
-  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
-sudo DEBIAN_FRONTEND=noninteractive apt update
-sudo DEBIAN_FRONTEND=noninteractive apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
-sudo usermod -aG docker $USER
-newgrp docker
-docker version
diff --git a/bootstrap.bat b/bootstrap.bat
new file mode 100644
index 0000000..c50d3da
--- /dev/null
+++ b/bootstrap.bat
@@ -0,0 +1,5 @@
+@echo off
+
+powershell.exe -ExecutionPolicy Bypass -File "bootstrap.ps1"
+
+exit /B
diff --git a/bootstrap.command b/bootstrap.command
new file mode 100644
index 0000000..65f2f5a
--- /dev/null
+++ b/bootstrap.command
@@ -0,0 +1,3 @@
+#!/usr/bin/env bash
+
+cp ./shared/* ~
diff --git a/Scripts/Windows.ps1 b/bootstrap.ps1
similarity index 100%
rename from Scripts/Windows.ps1
rename to bootstrap.ps1
diff --git a/bootstrap.sh b/bootstrap.sh
new file mode 100644
index 0000000..78d90f1
--- /dev/null
+++ b/bootstrap.sh
@@ -0,0 +1,145 @@
+#!/usr/bin/env bash
+
+detect_distro() {
+    if [[ -f /etc/os-release ]]; then
+        . /etc/os-release
+        if [[ "$ID" == "ubuntu" ]]; then
+            echo "Ubuntu"
+        elif [[ "$ID" == "arch" ]]; then
+            echo "Arch"
+        else
+            echo "Unknown"
+        fi
+    else
+        echo "Unknown"
+    fi
+}
+
+is_wsl() {
+    if grep -qi "Microsoft" /proc/version; then
+        return 1
+    else
+        return 0
+    fi
+}
+
+install_shared() {
+    echo "Installing shared packages..."
+
+    sudo groupadd wireshark
+    sudo usermod -aG wireshark $USER
+    newgrp wireshark
+
+    cp ./shared/* ~
+    cp ./linux/* ~
+
+    git clone https://github.com/asdf-vm/asdf ~/.asdf
+    git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions
+    chsh -s $(which zsh)
+    curl -sS https://starship.rs/install.sh | sh
+    source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
+
+    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
+    source "$HOME/.cargo/env"
+    rustup toolchain install nightly
+    rustup +nightly component add rust-src
+
+    asdf plugin add dotnet https://github.com/hensou/asdf-dotnet
+    asdf plugin add golang https://github.com/kennyp/asdf-golang
+    asdf plugin add java https://github.com/halcyon/asdf-java
+    asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejsn
+
+    asdf install dotnet 8.0.403
+    asdf install golang 1.23.2
+    asdf install java temurin-21.0.5+11.0.LTS
+    asdf install nodejs 20.18.0
+
+    asdf global dotnet 8.0.403
+    asdf global golang 1.23.2
+    asdf global java temurin-21.0.5+11.0.LTS
+    asdf global nodejs 20.18.0
+}
+
+install_ubuntu() {
+    echo "Installing Ubuntu packages..."
+
+    touch ~/.hushlogin
+
+    sudo apt update -y && sudo apt upgrade -y
+    sudo add-apt-repository ppa:zhangsongcui3371/fastfetch
+
+    sudo apt install -y --no-install-recommends \
+        autoconf \
+        automake \
+        bash \
+        ca-certificates \
+        clang \
+        cmake \
+        curl \
+        dnsutils \
+        fastfetch \
+        ffmpeg \
+        file \
+        g++ \
+        gcc \
+        gh \
+        git \
+        gnupg \
+        gzip \
+        htop \
+        iputils-ping \
+        libc6-dev \
+        libluajit-5.1-dev \
+        libncurses5-dev \
+        libssl-dev \
+        libudev-dev \
+        llvm \
+        lsb-release \
+        make \
+        nano \
+        ninja-build \
+        python3 \
+        python3-pip \
+        samba \
+        tar \
+        tshark \
+        unzip \
+        wget \
+        whois \
+        xz-utils \
+        yt-dlp \
+        zsh
+
+    if grep -vq "microsoft" /proc/version; then
+        sudo mkdir -p /etc/apt/keyrings
+        curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
+        echo \
+            "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
+            $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
+        sudo apt update
+        sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
+        sudo usermod -aG docker $USER
+        newgrp docker
+        docker version
+    fi
+}
+
+install_arch() {
+    echo "Installing Arch packages..."
+}
+
+main() {
+    distro=$(detect_distro)
+
+    if [[ "$distro" == "Ubuntu" ]]; then
+        install_ubuntu
+        install_shared
+    elif [[ "$distro" == "Arch" ]]; then
+        install_arch
+        install_shared
+    else
+        echo "Unsupported distro."
+    fi
+}
+
+main
diff --git a/Config/.zshrc b/linux/.zshrc
similarity index 100%
rename from Config/.zshrc
rename to linux/.zshrc
diff --git a/Config/starship.toml b/shared/.config/starship.toml
similarity index 100%
rename from Config/starship.toml
rename to shared/.config/starship.toml
diff --git a/Config/.gitconfig b/shared/.gitconfig
similarity index 100%
rename from Config/.gitconfig
rename to shared/.gitconfig
diff --git a/Config/.ssh/config b/shared/.ssh/config
similarity index 100%
rename from Config/.ssh/config
rename to shared/.ssh/config
diff --git a/Config/Microsoft.PowerShell_profile.ps1 b/windows/.config/Microsoft.PowerShell_profile.ps1
similarity index 100%
rename from Config/Microsoft.PowerShell_profile.ps1
rename to windows/.config/Microsoft.PowerShell_profile.ps1
diff --git a/Config/.wslconfig b/windows/.wslconfig
similarity index 100%
rename from Config/.wslconfig
rename to windows/.wslconfig