Split into desktop and terminal

And add a bunch more apps
This commit is contained in:
David Heinemeier Hansson
2024-07-03 14:15:53 +02:00
parent 7dab002949
commit 7711ecb60b
62 changed files with 241 additions and 106 deletions

View File

@@ -1,5 +0,0 @@
sudo apt install -y alacritty
mkdir -p ~/.config/alacritty
cp ~/.local/share/omakub/configs/alacritty.toml ~/.config/alacritty/alacritty.toml
cp ~/.local/share/omakub/configs/alacritty/theme.toml ~/.config/alacritty/theme.toml
cp ~/.local/share/omakub/configs/alacritty/font.toml ~/.config/alacritty/font.toml

13
install/desktop.sh Normal file
View File

@@ -0,0 +1,13 @@
# Ensure computer doesn't go to sleep or lock while installing
gsettings set org.gnome.desktop.screensaver lock-enabled false
gsettings set org.gnome.desktop.session idle-delay 0
# Run desktop installers
for installer in ~/.local/share/omakub/install/desktop/*.sh; do source $installer; done
# Revert to normal idle and lock settings
gsettings set org.gnome.desktop.screensaver lock-enabled true
gsettings set org.gnome.desktop.session idle-delay 300
# Logout to pickup changes
gum confirm "Ready to logout for all settings to take effect?" && gnome-session-quit --logout --no-prompt

View File

@@ -0,0 +1,7 @@
# Alacritty is a GPU-powered and highly extensible terminal. See https://alacritty.org/
sudo apt install -y alacritty
mkdir -p ~/.config/alacritty
cp ~/.local/share/omakub/configs/alacritty.toml ~/.config/alacritty/alacritty.toml
cp ~/.local/share/omakub/themes/tokyo-night/alacritty.toml ~/.config/alacritty/theme.toml
cp ~/.local/share/omakub/configs/alacritty/fonts/CaskaydiaMono.toml ~/.config/alacritty/font.toml
cp ~/.local/share/omakub/configs/alacritty/font-size.toml~/.config/alacritty/font-size.toml

View File

@@ -1,3 +1,4 @@
# Browse the web with the most popular browser. See https://www.google.com/chrome/
cd /tmp
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install -y ./google-chrome-stable_current_amd64.deb

View File

@@ -0,0 +1,2 @@
# Gives you previews in the file manager when pressing space
sudo apt install -y gnome-sushi

View File

@@ -0,0 +1,2 @@
# Obsidian is a multi-platform note taking application. See https://obsidian.md
flatpak install -y flathub md.obsidian.Obsidian

View File

@@ -5,5 +5,5 @@ sudo apt install -y typora
# Add iA Typora theme
mkdir -p ~/.config/Typora/themes
cp ~/.local/share/omakub/themes/typora/ia_typora.css ~/.config/Typora/themes/
cp ~/.local/share/omakub/themes/typora/ia_typora_night.css ~/.config/Typora/themes/
cp ~/.local/share/omakub/configs/typora/ia_typora.css ~/.config/Typora/themes/
cp ~/.local/share/omakub/configs/typora/ia_typora_night.css ~/.config/Typora/themes/

View File

@@ -0,0 +1 @@
flatpak install -y flathub org.audacityteam.Audacity

View File

@@ -0,0 +1,4 @@
sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg] https://brave-browser-apt-release.s3.brave.com/ stable main" | sudo tee /etc/apt/sources.list.d/brave-browser-release.list
sudo apt update -y
sudo apt install -y brave-browser

View File

@@ -0,0 +1,2 @@
# Sync files across machines using https://dropbox.com
sudo apt install -y nautilus-dropbox >/dev/null

View File

@@ -0,0 +1,2 @@
# OBS Studio is a screen recording application that allows you to capture both display and webcam in the same recording
sudo apt install -y obs-studio

View File

@@ -0,0 +1 @@
sudo snap install rubymine --classic

View File

@@ -1,3 +1,4 @@
# Stream music using https://spotify.com
curl -sS https://download.spotify.com/debian/pubkey_6224F9941A8AA6D1.gpg | sudo gpg --dearmor --yes -o /etc/apt/trusted.gpg.d/spotify.gpg
echo "deb [signed-by=/etc/apt/trusted.gpg.d/spotify.gpg] http://repository.spotify.com stable non-free" | sudo tee /etc/apt/sources.list.d/spotify.list
sudo apt update -y

View File

@@ -0,0 +1,6 @@
# Play games from https://store.steampowered.com/
cd /tmp
wget https://cdn.akamai.steamstatic.com/client/installer/steam.deb
sudo apt install -y ./steam.deb
rm steam.deb
cd -

View File

@@ -0,0 +1,10 @@
echo "Downloading the VirtIO drivers to ~/Downloads"
mkdir -p ~/Downloads
wget -O ~/Downloads/virtio-win-0.1.240.iso https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.240-1/virtio-win-0.1.240.iso
echo "Download the Windows 11 ISO..."
open https://www.microsoft.com/software-download/windows11
gum confirm "Have you finished downloading?"
echo "Follow instructions in..."
open https://sysguides.com/install-a-windows-11-virtual-machine-on-kvm

View File

@@ -1,3 +1,4 @@
# Make video calls using https://zoom.us/
cd /tmp
wget https://zoom.us/client/latest/zoom_amd64.deb
sudo apt install -y ./zoom_amd64.deb

View File

@@ -0,0 +1,9 @@
if [[ -v OMAKUB_FIRST_RUN_OPTIONAL_APPS ]]; then
apps=$OMAKUB_FIRST_RUN_OPTIONAL_APPS
if [[ -n "$apps" ]]; then
for app in $apps; do
source "$OMAKUB_PATH/install/desktop/optional/app-${app,,}.sh"
done
fi
fi

View File

@@ -0,0 +1,22 @@
# Remove Btop entry for one that runs in alacritty
sudo rm -rf /usr/share/applications/btop.desktop
# App doesn't do anything when started from the app grid
sudo rm -rf /usr/share/applications/org.flameshot.Flameshot.desktop
# Remove the ImageMagick icon
sudo rm -rf /usr/share/applications/display-im6.q16.desktop
# Replacing this with btop
sudo rm -rf /usr/share/applications/org.gnome.SystemMonitor.desktop
# We added our own meant for Alacritty
sudo rm -rf /usr/local/share/applications/nvim.desktop
sudo rm -rf /usr/local/share/applications/vim.desktop
# Create folders
gsettings set org.gnome.desktop.app-folders folder-children "['Utilities', 'Sundry', 'YaST', 'Updates', 'Xtra']"
gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Updates/ name 'Install & Update'
gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Updates/ apps "['org.gnome.Software.desktop', 'software-properties-drivers.desktop', 'software-properties-gtk.desktop', 'update-manager.desktop', 'firmware-updater_firmware-updater.desktop', 'snap-store_snap-store.desktop']"
gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Xtra/ name 'Xtra'
gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Xtra/ apps "['gnome-language-selector.desktop', 'org.gnome.PowerStats.desktop', 'yelp.desktop']"

View File

@@ -2,18 +2,22 @@
apps=(
"google-chrome.desktop"
"Alacritty.desktop"
"Neovim.desktop"
"code.desktop"
"WhatsApp.desktop"
"signal-desktop.desktop"
"spotify.desktop"
"typora.desktop"
"Zoom.desktop"
"pinta_pinta.desktop"
"com.github.xournalpp.xournalpp.desktop"
"spotify.desktop"
"steam.desktop"
"pinta_pinta.desktop"
"md.obsidian.Obsidian.desktop"
"Activity.desktop"
"Docker.desktop"
"Omakub.desktop"
"1password.desktop"
"org.gnome.Settings.desktop"
"org.gnome.Nautilus.desktop"
"localsend_app.desktop"
)
# Array to hold installed favorite apps
@@ -21,6 +25,7 @@ installed_apps=()
# Directory where .desktop files are typically stored
desktop_dirs=(
"/var/lib/flatpak/exports/share/applications"
"/usr/share/applications"
"/usr/local/share/applications"
"$HOME/.local/share/applications"

View File

@@ -8,7 +8,7 @@ gnome-extensions disable ubuntu-dock@ubuntu.com
gnome-extensions disable ding@rastersoft.com
# Pause to assure user is ready to accept confirmations
gum confirm "To install Gnome extensions, you need to accept four confirmations. Are you ready?"
gum confirm "To install Gnome extensions, you need to accept some confirmations. Are you ready?"
# Install new extensions
gext install tactile@lundal.io
@@ -16,12 +16,24 @@ gext install just-perfection-desktop@just-perfection
gext install blur-my-shell@aunetx
gext install space-bar@luchrioh
gext install undecorate@sun.wxg@gmail.com
gext install Vitals@CoreCoding.com
gext install AlphabeticalAppGrid@stuarthayhurst
# Manually install Pano (until released version is Gnome 46 compatible)
wget -O /tmp/pano.zip https://github.com/oae/gnome-shell-pano/releases/download/v23-alpha2/pano@elhan.io.zip
mkdir -p ~/.local/share/gnome-shell/extensions/
unzip /tmp/pano.zip -d ~/.local/share/gnome-shell/extensions/pano@elhan.io
rm /tmp/pano.zip
sudo apt install -y gir1.2-gda-5.0 gir1.2-gsound-1.0
# Compile gsettings schemas in order to be able to set them
sudo cp ~/.local/share/gnome-shell/extensions/tactile@lundal.io/schemas/org.gnome.shell.extensions.tactile.gschema.xml /usr/share/glib-2.0/schemas/
sudo cp ~/.local/share/gnome-shell/extensions/just-perfection-desktop\@just-perfection/schemas/org.gnome.shell.extensions.just-perfection.gschema.xml /usr/share/glib-2.0/schemas/
sudo cp ~/.local/share/gnome-shell/extensions/blur-my-shell\@aunetx/schemas/org.gnome.shell.extensions.blur-my-shell.gschema.xml /usr/share/glib-2.0/schemas/
sudo cp ~/.local/share/gnome-shell/extensions/space-bar\@luchrioh/schemas/org.gnome.shell.extensions.space-bar.gschema.xml /usr/share/glib-2.0/schemas/
sudo cp ~/.local/share/gnome-shell/extensions/pano\@elhan.io/schemas/org.gnome.shell.extensions.pano.gschema.xml /usr/share/glib-2.0/schemas/
sudo cp ~/.local/share/gnome-shell/extensions/Vitals\@CoreCoding.com/schemas/org.gnome.shell.extensions.vitals.gschema.xml /usr/share/glib-2.0/schemas/
sudo cp ~/.local/share/gnome-shell/extensions/AlphabeticalAppGrid\@stuarthayhurst/schemas/org.gnome.shell.extensions.AlphabeticalAppGrid.gschema.xml /usr/share/glib-2.0/schemas/
sudo glib-compile-schemas /usr/share/glib-2.0/schemas/
# Configure Tactile
@@ -61,8 +73,18 @@ gsettings set org.gnome.shell.extensions.space-bar.shortcuts enable-activate-wor
gsettings set org.gnome.shell.extensions.space-bar.shortcuts enable-move-to-workspace-shortcuts true
gsettings set org.gnome.shell.extensions.space-bar.shortcuts open-menu "@as []"
# Configure tweaks
gsettings set org.gnome.mutter center-new-windows true
# Configure Pano
gsettings set org.gnome.shell.extensions.pano play-audio-on-copy false
gsettings set org.gnome.shell.extensions.pano send-notification-on-copy false
gsettings set org.gnome.shell.extensions.pano window-position 2
gsettings set org.gnome.shell.extensions.pano history-length 30
gsettings set org.gnome.shell.extensions.pano.text-item body-bg-color 'rgb(153,193,241)'
# Set Cascadia Mono as the default monospace font
gsettings set org.gnome.desktop.interface monospace-font-name 'CaskaydiaMono Nerd Font 10'
# Configure Vitals
gsettings set org.gnome.shell.extensions.vitals hide-icons true
gsettings set org.gnome.shell.extensions.vitals hot-sensors "['__network-rx_max__']"
gsettings set org.gnome.shell.extensions.vitals icon-style 0
gsettings set org.gnome.shell.extensions.vitals network-speed-format 1
# Configure AlphabeticalAppGrid
gsettings set org.gnome.shell.extensions.alphabetical-app-grid folder-order-position 'end'

View File

@@ -0,0 +1,5 @@
# Center new windows in the middle of the screen
gsettings set org.gnome.mutter center-new-windows true
# Set Cascadia Mono as the default monospace font
gsettings set org.gnome.desktop.interface monospace-font-name 'CaskaydiaMono Nerd Font 10'

View File

@@ -0,0 +1 @@
source ~/.local/share/omakub/themes/tokyo-night/gnome.sh

View File

@@ -1,15 +0,0 @@
# Add the official Docker repo
sudo install -m 0755 -d /etc/apt/keyrings
sudo wget -qO /etc/apt/keyrings/docker.asc https://download.docker.com/linux/ubuntu/gpg
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
# Install Docker engine and standard plugins
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
# Give this user privileged Docker access
sudo usermod -aG docker ${USER}
# Use local logging driver - it's more efficient and uses compression by default.
echo '{"log-driver":"local","log-opts":{"max-size":"10m","max-file":"5"}}' | sudo tee /etc/docker/daemon.json > /dev/null

View File

@@ -1,2 +0,0 @@
sudo apt install -y nautilus-dropbox
gtk-launch dropbox.desktop

View File

@@ -1,6 +0,0 @@
cd /tmp
wget https://cdn.akamai.steamstatic.com/client/installer/steam.deb
sudo apt install -y ./steam.deb
sudo apt-get install --no-remove -oAPT::Get::AutomaticRemove=false libc6:amd64 libc6:i386 libegl1:amd64 libegl1:i386 libgbm1:amd64 libgbm1:i386 libgl1-mesa-dri:amd64 libgl1-mesa-dri:i386 libgl1:amd64 libgl1:i386 steam-libs-amd64:amd64
rm steam.deb
cd -

View File

@@ -1,53 +0,0 @@
# Install default programming languages
languages=$(gum choose "Ruby on Rails" "Node.js" "Go" "PHP" "Python" "Elixir" "Java" --no-limit --selected "Ruby on Rails","Node.js" --height 9 --header "Select programming languages")
for language in $languages; do
case $language in
Ruby)
mise use --global ruby@3.3
mise x ruby -- gem install rails --no-document
;;
Node.js)
mise use --global node@lts
;;
Go)
mise use --global go@latest
code --install-extension golang.go
;;
Java)
mise use --global java@latest
;;
Python)
mise use --global python@latest
;;
Elixir)
mise use --global erlang@latest
mise use --global elixir@latest
mise x elixir -- mix local.hex --force
;;
PHP)
sudo add-apt-repository -y ppa:ondrej/php
sudo apt -y install php8.3 php8.3-{curl,apcu,intl,mbstring,opcache,pgsql,mysql,sqlite3,redis,xml,zip}
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php --quiet && sudo mv composer.phar /usr/local/bin/composer
rm composer-setup.php
;;
esac
done
# Install default databases
dbs=$(gum choose "MySQL" "Redis" "PostgreSQL" --no-limit --selected "MySQL","Redis" --height 5 --header "Select databases (runs in Docker)")
for db in $dbs; do
case $db in
MySQL)
sudo docker run -d --restart unless-stopped -p "127.0.0.1:3306:3306" --name=mysql8 -e MYSQL_ROOT_PASSWORD= -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:8.4
;;
Redis)
sudo docker run -d --restart unless-stopped -p "127.0.0.1:6379:6379" --name=redis redis:7
;;
PostgreSQL)
sudo docker run -d --restart unless-stopped -p "127.0.0.1:5432:5432" --name=postgres16 -e POSTGRES_HOST_AUTH_METHOD=trust postgres:16
;;
esac
done

View File

@@ -1,6 +0,0 @@
# Install optional apps
apps=$(gum choose "1password" "Spotify" "Zoom" "Dropbox" "Steam" --no-limit --selected "1password","Spotify","Zoom" --height 7 --header "Select optional apps")
for app in $apps; do
source "$OMAKUB_PATH/install/optional/app-${app,,}.sh"
done

View File

@@ -1,2 +0,0 @@
# Setup default theme
source ~/.local/share/omakub/themes/gnome/tokyo-night.sh

7
install/terminal.sh Normal file
View File

@@ -0,0 +1,7 @@
# Needed for all installers
sudo apt update -y
sudo apt upgrade -y
sudo apt install -y curl git unzip
# Run terminal installers
for installer in ~/.local/share/omakub/install/terminal/*.sh; do source $installer; done

View File

@@ -1,6 +1,10 @@
# Configure the bash shell using Omakub defaults
[ -f "~/.bashrc" ] && mv ~/.bashrc ~/.bashrc.bak
cp ~/.local/share/omakub/configs/bashrc ~/.bashrc
# Load the PATH for use later in the installers
source ~/.local/share/omakub/defaults/bash/shell
[ -f "~/.inputrc" ] && mv ~/.inputrc ~/.inputrc.bak
# Configure the inputrc using Omakub defaults
cp ~/.local/share/omakub/configs/inputrc ~/.inputrc

View File

@@ -1,3 +1,4 @@
# Display system information in the terminal
sudo add-apt-repository -y ppa:zhangsongcui3371/fastfetch
sudo apt update -y
sudo apt install -y fastfetch

View File

@@ -2,17 +2,32 @@ cd /tmp
wget -O nvim.tar.gz "https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz"
tar -xf nvim.tar.gz
sudo install nvim-linux64/bin/nvim /usr/local/bin/nvim
sudo cp -R nvim-linux64/lib /usr/local/
sudo cp -R nvim-linux64/share /usr/local/
rm -rf nvim-linux64 nvim.tar.gz
cd -
# Only attempt to set configuration if Neovim has never been run
if [ ! -d "$HOME/.config/nvim" ]; then
# Use LazyVim
git clone https://github.com/LazyVim/starter ~/.config/nvim
# Disable update notification popup in starter config
sed -i 's/checker = { enabled = true }/checker = { enabled = true, notify = false }/g' ~/.config/nvim/lua/config/lazy.lua
# Make everything match the terminal transparency
mkdir -p ~/.config/nvim/plugin/after
cp ~/.local/share/omakub/configs/neovim/transparency.lua ~/.config/nvim/plugin/after/
cp ~/.local/share/omakub/themes/neovim/tokyo-night.lua ~/.config/nvim/lua/plugins/theme.lua
# Default to Tokyo Night theme
cp ~/.local/share/omakub/themes/tokyo-night/neovim.lua ~/.config/nvim/lua/plugins/theme.lua
# Enable default extras
cp ~/.local/share/omakub/configs/neovim/lazyvim.json ~/.config/nvim/lazyvim.json
fi
# Replace desktop launcher with one running inside Alacritty
if [[ -d ~/.local/share/applications ]]; then
sudo rm -rf /usr/share/applications/nvim.desktop
source ~/.local/share/omakub/applications/Neovim.sh
fi

View File

@@ -5,6 +5,6 @@ sudo install zellij /usr/local/bin
rm zellij.tar.gz zellij
cd -
mkdir -p ~/.config/zellij/
mkdir -p ~/.config/zellij/themes
[ ! -f "$HOME/.config/zellij/config.kdl" ] && cp ~/.local/share/omakub/configs/zellij.kdl ~/.config/zellij/config.kdl
[ ! -L "$HOME/.config/zellij/themes" ] && ln -s ~/.local/share/omakub/themes/zellij ~/.config/zellij/themes
cp ~/.local/share/omakub/themes/tokyo-night/zellij.kdl ~/.config/zellij/themes/tokyo-night.kdl

View File

@@ -0,0 +1,11 @@
sudo apt install -y docker.io docker-buildx
sudo usermod -aG docker ${USER}
# Limit log size to avoid running out of disk
echo '{"log-driver":"json-file","log-opts":{"max-size":"10m","max-file":"5"}}' | sudo tee /etc/docker/daemon.json
DOCKER_COMPOSE_VERSION="2.27.0"
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -sSL https://github.com/docker/compose/releases/download/v$DOCKER_COMPOSE_VERSION/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose

View File

@@ -1,5 +1,5 @@
sudo apt install -y \
build-essential pkg-config autoconf bison rustc cargo clang \
build-essential pkg-config autoconf bison clang \
libssl-dev libreadline-dev zlib1g-dev libyaml-dev libreadline-dev libncurses5-dev libffi-dev libgdbm-dev libjemalloc2 \
libvips imagemagick libmagickwand-dev mupdf mupdf-tools \
redis-tools sqlite3 libsqlite3-0 libmysqlclient-dev

View File

@@ -0,0 +1 @@
curl -fsSL https://ollama.com/install.sh | sh

View File

@@ -1,7 +1,7 @@
# Gum is used for the Omakub commands for tailoring Omakub after the initial install
cd /tmp
GUM_VERSION="0.14.1" # Use known good version
wget -O gum.deb "https://github.com/charmbracelet/gum/releases/latest/download/gum_${GUM_VERSION}_amd64.deb"
sudo apt install -y ./gum.deb
wget -qO gum.deb "https://github.com/charmbracelet/gum/releases/latest/download/gum_${GUM_VERSION}_amd64.deb"
sudo apt-get install -y ./gum.deb
rm gum.deb
cd -

View File

@@ -0,0 +1,45 @@
# Install default programming languages
if [[ -v OMAKUB_FIRST_RUN_LANGUAGES ]]; then
languages=$OMAKUB_FIRST_RUN_LANGUAGES
else
AVAILABLE_LANGUAGES=("Ruby on Rails" "Node.js" "Go" "PHP" "Python" "Elixir" "Rust" "Java")
languages=$(gum choose "${AVAILABLE_LANGUAGES[@]}" --no-limit --height 10 --header "Select programming languages")
fi
if [[ -n "$languages" ]]; then
for language in $languages; do
case $language in
Ruby)
mise use --global ruby@3.3
mise x ruby -- gem install rails --no-document
;;
Node.js)
mise use --global node@lts
;;
Go)
mise use --global go@latest
;;
PHP)
sudo add-apt-repository -y ppa:ondrej/php
sudo apt -y install php8.3 php8.3-{curl,apcu,intl,mbstring,opcache,pgsql,mysql,sqlite3,redis,xml,zip}
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php --quiet && sudo mv composer.phar /usr/local/bin/composer
rm composer-setup.php
;;
Python)
mise use --global python@latest
;;
Elixir)
mise use --global erlang@latest
mise use --global elixir@latest
mise x elixir -- mix local.hex --force
;;
Rust)
bash -c "$(curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs)" -- -y
;;
Java)
mise use --global java@latest
;;
esac
done
fi

View File

@@ -0,0 +1,23 @@
# Install default databases
if [[ -v OMAKUB_FIRST_RUN_DBS ]]; then
dbs=$OMAKUB_FIRST_RUN_DBS
else
AVAILABLE_DBS=("MySQL" "Redis" "PostgreSQL")
dbs=$(gum choose "${AVAILABLE_DBS[@]}" --no-limit --height 5 --header "Select databases (runs in Docker)")
fi
if [[ -n "$dbs" ]]; then
for db in $dbs; do
case $db in
MySQL)
sudo docker run -d --restart unless-stopped -p "127.0.0.1:3306:3306" --name=mysql8 -e MYSQL_ROOT_PASSWORD= -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:8.4
;;
Redis)
sudo docker run -d --restart unless-stopped -p "127.0.0.1:6379:6379" --name=redis redis:7
;;
PostgreSQL)
sudo docker run -d --restart unless-stopped -p "127.0.0.1:5432:5432" --name=postgres16 -e POSTGRES_HOST_AUTH_METHOD=trust postgres:16
;;
esac
done
fi