mirror of
https://github.com/aljazceru/omakub.git
synced 2026-01-25 14:54:21 +01:00
Merge branch 'master' into docker-local-logger
This commit is contained in:
@@ -1,18 +1,44 @@
|
||||
# Pick a preconfigured theme
|
||||
FONT=$(gum choose "Cascadia Mono" "Fira Mono" "JetBrains Mono" "Meslo" --header "Choose your programming font:" --height 6 | tr '[:upper:]' '[:lower:]' | sed 's/ /-/g')
|
||||
set_font() {
|
||||
local font_name=$1
|
||||
local url=$2
|
||||
local file_type=$3
|
||||
local file_name="${font_name/ Nerd Font/}"
|
||||
|
||||
[ ! -n "$FONT" ] && exit 0
|
||||
if ! $(fc-list | grep -i "$font_name" > /dev/null); then
|
||||
cd /tmp
|
||||
wget -O "$file_name.zip" "$url"
|
||||
unzip "$file_name.zip" -d "$file_name"
|
||||
cp "$file_name"/*."$file_type" ~/.local/share/fonts
|
||||
rm -rf "$file_name.zip" "$file_name"
|
||||
fc-cache
|
||||
cd -
|
||||
fi
|
||||
|
||||
if [ "$FONT" == "cascadia-mono" ]; then
|
||||
NERD_FONT="CaskaydiaMono Nerd Font"
|
||||
elif [ "$FONT" == "fira-mono" ]; then
|
||||
NERD_FONT="FiraMono Nerd Font"
|
||||
elif [ "$FONT" == "jetbrains-mono" ]; then
|
||||
NERD_FONT="JetBrainsMono NFM"
|
||||
elif [ "$FONT" == "meslo" ]; then
|
||||
NERD_FONT="MesloLGLDZ Nerd Font"
|
||||
gsettings set org.gnome.desktop.interface monospace-font-name "$font_name 10"
|
||||
cp "$OMAKUB_PATH/fonts/alacritty/$file_name.toml" ~/.config/alacritty/font.toml
|
||||
sed -i "s/\"editor.fontFamily\": \".*\"/\"editor.fontFamily\": \"$font_name\"/g" ~/.config/Code/User/settings.json
|
||||
}
|
||||
|
||||
if [ "$#" -gt 0 ]; then
|
||||
choice=${!#}
|
||||
else
|
||||
choice=$(gum choose "Cascadia Mono" "Fira Mono" "JetBrains Mono" "Meslo" --height 6)
|
||||
fi
|
||||
|
||||
gsettings set org.gnome.desktop.interface monospace-font-name "$NERD_FONT 10"
|
||||
cp $OMAKUB_PATH/fonts/alacritty/$FONT.toml ~/.config/alacritty/font.toml
|
||||
sed -i "s/\"editor.fontFamily\": \".*\"/\"editor.fontFamily\": \"$NERD_FONT\"/g" ~/.config/Code/User/settings.json
|
||||
case $choice in
|
||||
"Cascadia Mono")
|
||||
set_font "CaskaydiaMono Nerd Font" "https://github.com/ryanoasis/nerd-fonts/releases/latest/download/CascadiaMono.zip" "ttf"
|
||||
;;
|
||||
"Fira Mono")
|
||||
set_font "FiraMono Nerd Font" "https://github.com/ryanoasis/nerd-fonts/releases/latest/download/FiraMono.zip" "otf"
|
||||
;;
|
||||
"JetBrains Mono")
|
||||
set_font "JetBrainsMono Nerd Font" "https://github.com/ryanoasis/nerd-fonts/releases/latest/download/JetBrainsMono.zip" "ttf"
|
||||
;;
|
||||
"Meslo")
|
||||
set_font "MesloLGS Nerd Font" "https://github.com/ryanoasis/nerd-fonts/releases/latest/download/Meslo.zip" "Meslo" "ttf"
|
||||
;;
|
||||
* )
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
theme "tokyo-night"
|
||||
default_layout "compact"
|
||||
on_force_close "quit"
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
# Be fancy
|
||||
source ~/.local/share/omakub/ascii.sh
|
||||
|
||||
# Exit immediately if a command exits with a non-zero status
|
||||
set -e
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
cd ~/Downloads
|
||||
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
|
||||
rm google-chrome-stable_current_amd64.deb
|
||||
|
||||
3
install/app-fastfetch.sh
Normal file
3
install/app-fastfetch.sh
Normal file
@@ -0,0 +1,3 @@
|
||||
sudo add-apt-repository ppa:zhangsongcui3371/fastfetch
|
||||
sudo apt update
|
||||
sudo apt install -y fastfetch
|
||||
@@ -1,5 +1,5 @@
|
||||
# Gum is used for the Omakub commands for tailoring Omakub after the initial install
|
||||
cd ~/Downloads
|
||||
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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
cd ~/Downloads
|
||||
cd /tmp
|
||||
LAZYDOCKER_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazydocker/releases/latest" | grep -Po '"tag_name": "v\K[^"]*')
|
||||
curl -sLo lazydocker.tar.gz "https://github.com/jesseduffield/lazydocker/releases/latest/download/lazydocker_${LAZYDOCKER_VERSION}_Linux_x86_64.tar.gz"
|
||||
tar -xf lazydocker.tar.gz lazydocker
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
cd ~/Downloads
|
||||
cd /tmp
|
||||
LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | grep -Po '"tag_name": "v\K[^"]*')
|
||||
curl -sLo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz"
|
||||
tar -xf lazygit.tar.gz lazygit
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
cd ~/Downloads
|
||||
cd /tmp
|
||||
LOCALSEND_VERSION=$(curl -s "https://api.github.com/repos/localsend/localsend/releases/latest" | grep -Po '"tag_name": "v\K[^"]*')
|
||||
wget -O localsend.deb "https://github.com/localsend/localsend/releases/latest/download/LocalSend-${LOCALSEND_VERSION}-linux-x86-64.deb"
|
||||
sudo apt install -y ./localsend.deb
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
sudo add-apt-repository -y ppa:neovim-ppa/stable
|
||||
sudo apt update
|
||||
sudo apt install -y neovim
|
||||
|
||||
if [ ! -d "$HOME/.config/nvim" ]; then
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
cd ~/Downloads
|
||||
cd /tmp
|
||||
wget -O code.deb 'https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64'
|
||||
sudo apt install -y ./code.deb
|
||||
rm code.deb
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
cd ~/Downloads
|
||||
cd /tmp
|
||||
wget -O zellij.tar.gz "https://github.com/zellij-org/zellij/releases/latest/download/zellij-x86_64-unknown-linux-musl.tar.gz"
|
||||
tar -xf zellij.tar.gz zellij
|
||||
sudo install zellij /usr/local/bin
|
||||
|
||||
@@ -1,4 +1,14 @@
|
||||
sudo apt install -y docker.io docker-buildx
|
||||
# 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.
|
||||
@@ -8,8 +18,4 @@ 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
|
||||
|
||||
sudo docker create --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
|
||||
sudo docker create --restart unless-stopped -p "127.0.0.1:6379:6379" --name=redis redis:7
|
||||
sudo docker create --restart unless-stopped -p "127.0.0.1:5432:5432" --name=postgres16 -e POSTGRES_HOST_AUTH_METHOD=trust postgres:16
|
||||
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
|
||||
@@ -1,30 +1,15 @@
|
||||
mkdir -p ~/.local/share/fonts
|
||||
|
||||
cd ~/Downloads
|
||||
cd /tmp
|
||||
wget https://github.com/ryanoasis/nerd-fonts/releases/latest/download/CascadiaMono.zip
|
||||
unzip CascadiaMono.zip -d CascadiaFont
|
||||
cp CascadiaFont/*.ttf ~/.local/share/fonts
|
||||
rm -rf CascadiaMono.zip CascadiaFont
|
||||
|
||||
wget https://github.com/ryanoasis/nerd-fonts/releases/latest/download/FiraMono.zip
|
||||
unzip FiraMono.zip -d FiraMono
|
||||
cp FiraMono/*.otf ~/.local/share/fonts
|
||||
rm -rf FiraMono.zip FiraMono
|
||||
|
||||
wget https://github.com/ryanoasis/nerd-fonts/releases/latest/download/JetBrainsMono.zip
|
||||
unzip JetBrainsMono.zip -d JetBrainsMono
|
||||
cp JetBrainsMono/*.ttf ~/.local/share/fonts
|
||||
rm -rf JetBrainsMono.zip JetBrainsMono
|
||||
|
||||
wget https://github.com/ryanoasis/nerd-fonts/releases/latest/download/Meslo.zip
|
||||
unzip Meslo.zip -d Meslo
|
||||
cp Meslo/*.ttf ~/.local/share/fonts
|
||||
rm -rf Meslo.zip Meslo
|
||||
|
||||
wget https://github.com/iaolo/iA-Fonts/archive/refs/heads/master.zip
|
||||
unzip master.zip -d iaFonts
|
||||
wget -O iafonts.zip https://github.com/iaolo/iA-Fonts/archive/refs/heads/master.zip
|
||||
unzip iafonts.zip -d iaFonts
|
||||
cp iaFonts/iA-Fonts-master/iA\ Writer\ Mono/Static/iAWriterMonoS-*.ttf ~/.local/share/fonts
|
||||
rm -rf master.zip iaFonts
|
||||
rm -rf iafonts.zip iaFonts
|
||||
|
||||
fc-cache
|
||||
cd -
|
||||
|
||||
@@ -5,8 +5,3 @@ wget -qO - https://mise.jdx.dev/gpg-key.pub | gpg --dearmor | sudo tee /etc/apt/
|
||||
echo "deb [signed-by=/etc/apt/keyrings/mise-archive-keyring.gpg arch=amd64] https://mise.jdx.dev/deb stable main" | sudo tee /etc/apt/sources.list.d/mise.list
|
||||
sudo apt update
|
||||
sudo apt install -y mise
|
||||
|
||||
# Install default languages
|
||||
mise use --global ruby@3.3
|
||||
mise use --global node@lts
|
||||
mise use --global go@latest
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
cd ~/Downloads
|
||||
cd /tmp
|
||||
wget https://downloads.1password.com/linux/debian/amd64/stable/1password-latest.deb
|
||||
sudo apt install -y ./1password-latest.deb
|
||||
rm 1password-latest.deb
|
||||
@@ -1,4 +1,4 @@
|
||||
cd ~/Downloads
|
||||
cd /tmp
|
||||
wget https://zoom.us/client/latest/zoom_amd64.deb
|
||||
sudo apt install -y ./zoom_amd64.deb
|
||||
rm zoom_amd64.deb
|
||||
39
install/select-dev-env.sh
Normal file
39
install/select-dev-env.sh
Normal file
@@ -0,0 +1,39 @@
|
||||
# Install default programming languages
|
||||
languages=$(gum choose "Ruby" "Node.js" "Go" "Python" "Java" --no-limit --selected "Ruby","Node.js" --height 7 --header "Select programming languages")
|
||||
|
||||
for language in $languages; do
|
||||
case $language in
|
||||
Ruby)
|
||||
mise use --global ruby@3.3
|
||||
;;
|
||||
Node.js)
|
||||
mise use --global node@lts
|
||||
;;
|
||||
Go)
|
||||
mise use --global go@latest
|
||||
;;
|
||||
Java)
|
||||
mise use --global java@latest
|
||||
;;
|
||||
Python)
|
||||
mise use --global python@latest
|
||||
;;
|
||||
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
|
||||
6
install/select-optional-apps.sh
Normal file
6
install/select-optional-apps.sh
Normal file
@@ -0,0 +1,6 @@
|
||||
# Install optional apps
|
||||
apps=$(gum choose "1password" "Spotify" "Zoom" "Dropbox" "VirtualBox" --no-limit --selected "1password","Spotify","Zoom" --height 7 --header "Select commercial apps")
|
||||
|
||||
for app in $apps; do
|
||||
source "$OMAKUB_PATH/install/optional/app-$app.sh"
|
||||
done
|
||||
@@ -1,2 +1,43 @@
|
||||
# Set default pinned applications (funny installer name to ensure it runs after all app installations!)
|
||||
gsettings set org.gnome.shell favorite-apps "['google-chrome.desktop', 'Alacritty.desktop', 'code.desktop', 'WhatsApp.desktop', 'signal-desktop.desktop', 'spotify.desktop', 'typora.desktop', 'Zoom.desktop', 'pinta_pinta.desktop', 'com.github.xournalpp.xournalpp.desktop', '1password.desktop', 'org.gnome.Settings.desktop', 'org.gnome.Nautilus.desktop']"
|
||||
# Favorite apps for dock
|
||||
apps=(
|
||||
"google-chrome.desktop"
|
||||
"Alacritty.desktop"
|
||||
"code.desktop"
|
||||
"WhatsApp.desktop"
|
||||
"signal-desktop.desktop"
|
||||
"spotify.desktop"
|
||||
"typora.desktop"
|
||||
"Zoom.desktop"
|
||||
"pinta_pinta.desktop"
|
||||
"com.github.xournalpp.xournalpp.desktop"
|
||||
"1password.desktop"
|
||||
"org.gnome.Settings.desktop"
|
||||
"org.gnome.Nautilus.desktop"
|
||||
)
|
||||
|
||||
# Array to hold installed favorite apps
|
||||
installed_apps=()
|
||||
|
||||
# Directory where .desktop files are typically stored
|
||||
desktop_dirs=(
|
||||
"/usr/share/applications"
|
||||
"/usr/local/share/applications"
|
||||
"$HOME/.local/share/applications"
|
||||
)
|
||||
|
||||
# Check if a .desktop file exists for each app
|
||||
for app in "${apps[@]}"; do
|
||||
for dir in "${desktop_dirs[@]}"; do
|
||||
if [ -f "$dir/$app" ]; then
|
||||
installed_apps+=("$app")
|
||||
break
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
# Convert the array to a format suitable for gsettings
|
||||
favorites_list=$(printf "'%s'," "${installed_apps[@]}")
|
||||
favorites_list="[${favorites_list%,}]"
|
||||
|
||||
# Set the favorite apps
|
||||
gsettings set org.gnome.shell favorite-apps "$favorites_list"
|
||||
|
||||
@@ -15,6 +15,7 @@ gext install tactile@lundal.io
|
||||
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
|
||||
|
||||
# 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/
|
||||
|
||||
1
uninstall/app-fastfetch.sh
Normal file
1
uninstall/app-fastfetch.sh
Normal file
@@ -0,0 +1 @@
|
||||
sudo apt remove -y fastfetch
|
||||
@@ -1,2 +1,2 @@
|
||||
sudo apt remove -y docker.io docker-buildx
|
||||
sudo apt purge --auto-remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
|
||||
sudo groupdel docker
|
||||
|
||||
Reference in New Issue
Block a user