Merge branch 'master' into stable

This commit is contained in:
David Heinemeier Hansson
2024-07-27 11:05:26 -07:00
17 changed files with 78 additions and 52 deletions

View File

@@ -3,7 +3,7 @@ cat <<EOF >~/.local/share/applications/About.desktop
Version=1.0 Version=1.0
Name=About Name=About
Comment=System information from Fastfetch Comment=System information from Fastfetch
Exec=alacritty --config-file /home/$USER/.local/share/omakub/defaults/alacritty/pane.toml -e bash -c 'fastfetch; read -n 1 -s' Exec=alacritty --config-file /home/$USER/.local/share/omakub/defaults/alacritty/pane.toml --class=About --title=About -e bash -c 'fastfetch; read -n 1 -s'
Terminal=false Terminal=false
Type=Application Type=Application
Icon=/home/$USER/.local/share/omakub/applications/icons/Ubuntu.png Icon=/home/$USER/.local/share/omakub/applications/icons/Ubuntu.png

View File

@@ -3,7 +3,7 @@ cat <<EOF >~/.local/share/applications/Activity.desktop
Version=1.0 Version=1.0
Name=Activity Name=Activity
Comment=System activity from btop Comment=System activity from btop
Exec=alacritty --config-file /home/$USER/.local/share/omakub/defaults/alacritty/btop.toml -e btop Exec=alacritty --config-file /home/$USER/.local/share/omakub/defaults/alacritty/btop.toml --class=Activity --title=Activity -e btop
Terminal=false Terminal=false
Type=Application Type=Application
Icon=/home/$USER/.local/share/omakub/applications/icons/Activity.png Icon=/home/$USER/.local/share/omakub/applications/icons/Activity.png

View File

@@ -3,7 +3,7 @@ cat <<EOF >~/.local/share/applications/Basecamp.desktop
Version=1.0 Version=1.0
Name=Basecamp Name=Basecamp
Comment=Basecamp Project Management Comment=Basecamp Project Management
Exec=google-chrome --app="https://launchpad.37signals.com" --name=Basecamp Exec=google-chrome --app="https://launchpad.37signals.com" --name=Basecamp --class=Basecamp
Terminal=false Terminal=false
Type=Application Type=Application
Icon=/home/$USER/.local/share/omakub/applications/icons/Basecamp.png Icon=/home/$USER/.local/share/omakub/applications/icons/Basecamp.png

View File

@@ -3,7 +3,7 @@ cat <<EOF >~/.local/share/applications/Docker.desktop
Version=1.0 Version=1.0
Name=Docker Name=Docker
Comment=Manage Docker containers with LazyDocker Comment=Manage Docker containers with LazyDocker
Exec=alacritty --config-file /home/$USER/.local/share/omakub/defaults/alacritty/pane.toml -e lazydocker Exec=alacritty --config-file /home/$USER/.local/share/omakub/defaults/alacritty/pane.toml --class=Docker --title=Docker -e lazydocker
Terminal=false Terminal=false
Type=Application Type=Application
Icon=/home/$USER/.local/share/omakub/applications/icons/Docker.png Icon=/home/$USER/.local/share/omakub/applications/icons/Docker.png

View File

@@ -3,7 +3,7 @@ cat <<EOF >~/.local/share/applications/HEY.desktop
Version=1.0 Version=1.0
Name=HEY Name=HEY
Comment=HEY Email + Calendar Comment=HEY Email + Calendar
Exec=google-chrome --app="https://app.hey.com/" --name=HEY Exec=google-chrome --app="https://app.hey.com/" --name=HEY --class=HEY
Terminal=false Terminal=false
Type=Application Type=Application
Icon=/home/$USER/.local/share/omakub/applications/icons/HEY.png Icon=/home/$USER/.local/share/omakub/applications/icons/HEY.png

View File

@@ -3,7 +3,7 @@ cat <<EOF >~/.local/share/applications/Neovim.desktop
Version=1.0 Version=1.0
Name=Neovim Name=Neovim
Comment=Edit text files Comment=Edit text files
Exec=alacritty --config-file /home/$USER/.local/share/omakub/defaults/alacritty/pane.toml -e nvim %F Exec=alacritty --config-file /home/$USER/.local/share/omakub/defaults/alacritty/pane.toml --class=Neovim --title=Neovim -e nvim %F
Terminal=false Terminal=false
Type=Application Type=Application
Icon=nvim Icon=nvim

View File

@@ -3,7 +3,7 @@ cat <<EOF >~/.local/share/applications/Omakub.desktop
Version=1.0 Version=1.0
Name=Omakub Name=Omakub
Comment=Omakub Controls Comment=Omakub Controls
Exec=alacritty --config-file /home/$USER/.local/share/omakub/defaults/alacritty/pane.toml -e omakub Exec=alacritty --config-file /home/$USER/.local/share/omakub/defaults/alacritty/pane.toml --class=Omakub --title=Omakub -e omakub
Terminal=false Terminal=false
Type=Application Type=Application
Icon=/home/$USER/.local/share/omakub/applications/icons/Omakub.png Icon=/home/$USER/.local/share/omakub/applications/icons/Omakub.png

View File

@@ -3,7 +3,7 @@ cat <<EOF >~/.local/share/applications/WhatsApp.desktop
Version=1.0 Version=1.0
Name=WhatsApp Name=WhatsApp
Comment=WhatsApp Messenger Comment=WhatsApp Messenger
Exec=google-chrome --app="https://web.whatsapp.com" --name=WhatsApp Exec=google-chrome --app="https://web.whatsapp.com" --name=WhatsApp --class=Whatsapp
Terminal=false Terminal=false
Type=Application Type=Application
Icon=/home/$USER/.local/share/omakub/applications/icons/WhatsApp.png Icon=/home/$USER/.local/share/omakub/applications/icons/WhatsApp.png

View File

@@ -1,23 +0,0 @@
set -e
ascii_art='________ __ ___.
\_____ \ _____ _____ | | ____ _\_ |__
/ | \ / \\__ \ | |/ / | \ __ \
/ | \ Y Y \/ __ \| <| | / \_\ \
\_______ /__|_| (____ /__|_ \____/|___ /
\/ \/ \/ \/ \/
'
echo -e "$ascii_art"
echo "=> Omakub is for fresh Ubuntu 24.04 installations only!"
echo -e "\nBegin installation (or abort with ctrl+c)..."
sudo apt-get update >/dev/null
sudo apt-get install -y git >/dev/null
echo "Cloning Omakub..."
rm -rf ~/.local/share/omakub
git clone https://github.com/basecamp/omakub.git ~/.local/share/omakub >/dev/null
echo "Installation starting..."
source ~/.local/share/omakub/install.sh

9
boot.sh Normal file → Executable file
View File

@@ -15,9 +15,14 @@ echo -e "\nBegin installation (or abort with ctrl+c)..."
sudo apt-get update >/dev/null sudo apt-get update >/dev/null
sudo apt-get install -y git >/dev/null sudo apt-get install -y git >/dev/null
echo "Cloning stable Omakub..." echo "Cloning Omakub..."
rm -rf ~/.local/share/omakub rm -rf ~/.local/share/omakub
git clone -b stable https://github.com/basecamp/omakub.git ~/.local/share/omakub >/dev/null git clone https://github.com/basecamp/omakub.git ~/.local/share/omakub >/dev/null
if [[ $OMAKUB_REF != "master" ]]; then
cd ~/.local/share/omakub
git fetch origin "${OMAKUB_REF:-stable}" && git checkout FETCH_HEAD
cd -
fi
echo "Installation starting..." echo "Installation starting..."
source ~/.local/share/omakub/install.sh source ~/.local/share/omakub/install.sh

View File

@@ -4,28 +4,31 @@ set -e
# Desktop software and tweaks will only be installed if we're running Gnome # Desktop software and tweaks will only be installed if we're running Gnome
RUNNING_GNOME=$([[ "$XDG_CURRENT_DESKTOP" == *"GNOME"* ]] && echo true || echo false) RUNNING_GNOME=$([[ "$XDG_CURRENT_DESKTOP" == *"GNOME"* ]] && echo true || echo false)
# Check the distribution name and version and abort if incompatible
source ~/.local/share/omakub/install/check-version.sh
if $RUNNING_GNOME; then if $RUNNING_GNOME; then
# Ensure computer doesn't go to sleep or lock while installing # 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.screensaver lock-enabled false
gsettings set org.gnome.desktop.session idle-delay 0 gsettings set org.gnome.desktop.session idle-delay 0
echo "Get ready to make a few choices..." echo "Get ready to make a few choices..."
source ~/.local/share/omakub/install/terminal/required/app-gum.sh >/dev/null source ~/.local/share/omakub/install/terminal/required/app-gum.sh >/dev/null
source ~/.local/share/omakub/first_run_choices.sh source ~/.local/share/omakub/install/first-run-choices.sh
echo "Installing terminal and desktop tools.." echo "Installing terminal and desktop tools.."
else else
echo "Only installing terminal tools..." echo "Only installing terminal tools..."
fi fi
# Install terminal tools # Install terminal tools
source ~/.local/share/omakub/install/terminal.sh source ~/.local/share/omakub/install/terminal.sh
if $RUNNING_GNOME; then if $RUNNING_GNOME; then
# Install desktop tools and tweaks # Install desktop tools and tweaks
source ~/.local/share/omakub/install/desktop.sh source ~/.local/share/omakub/install/desktop.sh
# Revert to normal idle and lock settings # Revert to normal idle and lock settings
gsettings set org.gnome.desktop.screensaver lock-enabled true gsettings set org.gnome.desktop.screensaver lock-enabled true
gsettings set org.gnome.desktop.session idle-delay 300 gsettings set org.gnome.desktop.session idle-delay 300
fi fi

27
install/check-version.sh Normal file
View File

@@ -0,0 +1,27 @@
#!/bin/bash
# Function to check if running on Ubuntu 24.04 or higher
check_ubuntu_version() {
if [ -f /etc/os-release ]; then
. /etc/os-release
if [ "$ID" = "ubuntu" ]; then
if awk -v ver="$VERSION_ID" 'BEGIN {exit !(ver >= 24.04)}'; then
return 0
else
echo "Error: Ubuntu version must be 24.04 or higher. Current version: $VERSION_ID" >&2
return 1
fi
else
echo "Error: This script must be run on Ubuntu. Current OS: $ID" >&2
return 1
fi
else
echo "Error: Unable to determine OS. /etc/os-release file not found." >&2
return 1
fi
}
if ! check_ubuntu_version; then
echo "Script execution failed due to system requirements not being met." >&2
exit 1
fi

View File

@@ -1 +1 @@
sudo apt install -y fzf ripgrep bat eza zoxide plocate btop apache2-utils fd-find sudo apt install -y fzf ripgrep bat eza zoxide plocate btop apache2-utils fd-find tldr

View File

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

View File

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

14
migrations/1722091912.sh Normal file
View File

@@ -0,0 +1,14 @@
sudo echo "Running upgrade migration..."
# Add rustc and pgsql client libs
source $OMAKUB_PATH/install/terminal/libraries.sh
# Set name and class for desktop files
source $OMAKUB_PATH/applications/About.sh
source $OMAKUB_PATH/applications/Activity.sh
source $OMAKUB_PATH/applications/Basecamp.sh
source $OMAKUB_PATH/applications/HEY.sh
source $OMAKUB_PATH/applications/Docker.sh
source $OMAKUB_PATH/applications/Neovim.sh
source $OMAKUB_PATH/applications/Omakub.sh
source $OMAKUB_PATH/applications/WhatsApp.sh