Skip to content
Closed
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion install.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# Determine architecture
ARCH=$(dpkg --print-architecture)
export ARCH

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One nice property of the install/* scripts is that they can be invoked independently. Introducing global env vars breaks that. Would keep this invocation in each script.

Alternatively, you could

: "${ARCH:=$(dpkg --print-architecture)}"

in the scripts to lazy-set the env var.

# Be fancy
source ~/.local/share/omakub/ascii.sh

Expand All @@ -17,5 +21,5 @@ gsettings set org.gnome.desktop.session idle-delay 300
# Upgrade everything that might ask for a reboot last
sudo apt upgrade -y

# Reboot to pickup changes
# Reboot to pick up changes
gum confirm "Ready to logout for all settings to take effect?" && gnome-session-quit --logout --no-prompt
17 changes: 12 additions & 5 deletions install/app-1password.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
cd ~/Downloads
wget https://downloads.1password.com/linux/debian/amd64/stable/1password-latest.deb
sudo apt install -y ./1password-latest.deb
rm 1password-latest.deb
cd -
if [[ $ARCH == "amd64" ]]; then
wget https://downloads.1password.com/linux/debian/amd64/stable/1password-latest.deb
sudo apt install -y ./1password-latest.deb
rm 1password-latest.deb
elif [[ $ARCH == "arm64" ]]; then
curl -sSO https://downloads.1password.com/linux/tar/stable/aarch64/1password-latest.tar.gz
sudo tar -xf 1password-latest.tar.gz
sudo mkdir -p /opt/1Password
sudo mv 1password-*/* /opt/1Password
sudo /opt/1Password/after-install.sh
rm 1password-latest.tar.gz
fi
12 changes: 7 additions & 5 deletions install/app-chrome.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
cd ~/Downloads
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb
rm google-chrome-stable_current_amd64.deb
cd -
if [[ $ARCH == "amd64" ]]; then
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
elif [[ $ARCH == "arm64" ]]; then
Copy link

@dre-hh dre-hh Jun 17, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

chromium has no widevine on arm64, thereofre cannot play netflix, spotify etc.
Also it might require certain flags for launching with gpu acceleration suuport to watch youtube properly. (guess the latter can only be properly tested on the actual device)
For widevine people often pull some bins from chromeos projects

Copy link

@dre-hh dre-hh Jun 28, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After some recent reserach on this, there is still no binary package with widevine for ubuntu or an arm browser which ships with it.

AsahiLinux is hosting a widevine installer script from crhomeos project which is pulling it from googleapis.com

And Brave browser published a manual how to link it #28903.

Chrome has released an arm64 version for windows. Guess a an arm chrome with widevine support is also likely to happen in future. But for now, probably going asahilinux way is best: adding custom installer, updater via chromeos binaries. Probably its best done in another PR once arm support ist merged

echo "Chrome is not supported on arm64 architecture."
fi
8 changes: 4 additions & 4 deletions install/app-github-cli.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg &&
sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg &&
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list >/dev/null &&
sudo apt update &&
sudo apt install gh -y
sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg &&
echo "deb [arch=$ARCH signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list >/dev/null &&
sudo apt update &&
sudo apt install gh -y
6 changes: 3 additions & 3 deletions install/app-gum.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Gum is used for the Omakub commands for tailoring Omakub after the initial install
cd ~/Downloads
GUM_VERSION="0.14.1" # Use known good version
curl -sLo gum.deb "https://github.com/charmbracelet/gum/releases/latest/download/gum_${GUM_VERSION}_amd64.deb"
sudo apt install ./gum.deb
curl -sLo gum.deb "https://github.com/charmbracelet/gum/releases/latest/download/gum_${GUM_VERSION}_${ARCH}.deb"
sudo apt install -y ./gum.deb
rm gum.deb
cd -
cd -
8 changes: 7 additions & 1 deletion install/app-lazydocker.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
cd ~/Downloads
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"

#For some reason, Lazydocker uses x86_64 instead of amd64 for naming, which means we can't use the variable ARCH for a 1 liner
if [[ $ARCH == "arm64" ]]; then
curl -sLo lazydocker.tar.gz "https://github.com/jesseduffield/lazydocker/releases/latest/download/lazydocker_${LAZYDOCKER_VERSION}_Linux_${ARCH}.tar.gz"
elif [[ $ARCH == "amd64" ]]; then
curl -sLo lazydocker.tar.gz "https://github.com/jesseduffield/lazydocker/releases/latest/download/lazydocker${LAZYDOCKER_VERSION}_Linux_x86_64.tar.gz"
fi
tar -xf lazydocker.tar.gz lazydocker
sudo install lazydocker /usr/local/bin
rm lazydocker.tar.gz
Expand Down
8 changes: 7 additions & 1 deletion install/app-lazygit.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
cd ~/Downloads
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"

#For some reason, Lazygit uses x86_64 instead of amd64 for naming, which means we can't use the variable ARCH for a 1 liner
if [[ $ARCH == "arm64" ]]; then
curl -sLo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit${LAZYGIT_VERSION}_Linux_${ARCH}.tar.gz"
elif [[ $ARCH == "amd64" ]]; then
curl -sLo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit${LAZYGIT_VERSION}_Linux_x86_64.tar.gz"
fi
tar -xf lazygit.tar.gz lazygit
sudo install lazygit /usr/local/bin
rm lazygit.tar.gz
Expand Down
10 changes: 8 additions & 2 deletions install/app-localsend.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
cd ~/Downloads
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 ./localsend.deb

#For some reason, Localsend uses x86_64 instead of amd64 for naming, which means we can't use the variable ARCH for a 1 liner
if [[ $ARCH == "arm64" ]]; then
wget -O localsend.deb "https://github.com/localsend/localsend/releases/latest/download/LocalSend-${LOCALSEND_VERSION}-linux-arm-64.deb"
elif [[ $ARCH == "amd64" ]]; then
wget -O localsend.deb "https://github.com/localsend/localsend/releases/latest/download/LocalSend-${LOCALSEND_VERSION}-linux-x86-64.deb"
fi
sudo apt install -y ./localsend.deb
rm localsend.deb
cd -
5 changes: 3 additions & 2 deletions install/app-pinta.sh
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
# FIXME: Get this out of snap
sudo snap install pinta
sudo add-apt-repository -y ppa:pinta-maintainers/pinta-stable
sudo apt-get update
sudo apt-get install -y pinta
13 changes: 9 additions & 4 deletions install/app-signal.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
wget -qO- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor >signal-desktop-keyring.gpg
cat signal-desktop-keyring.gpg | sudo tee /usr/share/keyrings/signal-desktop-keyring.gpg >/dev/null
echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main' |
sudo tee /etc/apt/sources.list.d/signal-xenial.list
sudo apt update
sudo apt install -y signal-desktop

if [[ $ARCH == "amd64" ]]; then
echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main' |
sudo tee /etc/apt/sources.list.d/signal-xenial.list
sudo apt update
sudo apt install -y signal-desktop
elif [[ $ARCH == "arm64" ]]; then
echo "Signal Desktop is only available for amd64 architecture."
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh wow, sounds great I'il look into it soon :D

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or use snap: sudo snap install signal-desktop

fi
10 changes: 7 additions & 3 deletions install/app-spotify.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
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
sudo apt install -y spotify-client
if [[ $ARCH == "amd64" ]]; then
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
sudo apt install -y spotify-client
elif [[ $ARCH == "arm64" ]]; then
echo "Spotify for arm64 is not officially supported yet."
fi
6 changes: 5 additions & 1 deletion install/app-vscode.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
cd ~/Downloads
wget -O code.deb 'https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64'
if [[ $ARCH == "amd64" ]]; then
wget -O code.deb 'https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64'
elif [[ $ARCH == "arm64" ]]; then
wget -O code.deb 'https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-arm64'
fi
sudo apt install ./code.deb
rm code.deb
cd -
Expand Down
6 changes: 5 additions & 1 deletion install/app-zellij.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
cd ~/Downloads
wget -O zellij.tar.gz "https://github.com/zellij-org/zellij/releases/latest/download/zellij-x86_64-unknown-linux-musl.tar.gz"
if [[ $ARCH == "amd64" ]]; then
wget -O zellij.tar.gz "https://github.com/zellij-org/zellij/releases/latest/download/zellij-x86_64-unknown-linux-musl.tar.gz"
elif [[ $ARCH == "arm64" ]]; then
wget -O zellij.tar.gz "https://github.com/zellij-org/zellij/releases/latest/download/zellij-aarch64-unknown-linux-musl.tar.gz"
fi
tar -xf zellij.tar.gz zellij
sudo install zellij /usr/local/bin
rm zellij.tar.gz
Expand Down
12 changes: 8 additions & 4 deletions install/app-zoom.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
cd ~/Downloads
wget https://zoom.us/client/latest/zoom_amd64.deb
sudo apt install -y ./zoom_amd64.deb
rm zoom_amd64.deb
cd -
if [[ $ARCH == "amd64" ]]; then
wget https://zoom.us/client/latest/zoom_amd64.deb
sudo apt install -y ./zoom_amd64.deb
rm zoom_amd64.deb
elif [[ $ARCH == "arm64" ]]; then
echo "Zoom is only available for amd64 architecture."
fi
cd -
6 changes: 5 additions & 1 deletion install/docker.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,11 @@ sudo usermod -aG docker ${USER}
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
if [[ $ARCH == "amd64" ]]; then
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
elif [[ $ARCH == "arm64" ]]; then
curl -sSL https://github.com/docker/compose/releases/download/v${DOCKER_COMPOSE_VERSION}/docker-compose-linux-aarch64 -o ${DOCKER_CONFIG}/cli-plugins/docker-compose
fi
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose

# FIXME: Add postgresql as a default configured DB as well
Expand Down
9 changes: 7 additions & 2 deletions install/optional/app-dropbox.sh
Original file line number Diff line number Diff line change
@@ -1,2 +1,7 @@
sudo apt install -y nautilus-dropbox
gtk-launch dropbox.desktop
if [[ $ARCH == "amd64" ]]; then
sudo apt install -y nautilus-dropbox
gtk-launch dropbox.desktop
elif [[ $ARCH == "arm64" ]]; then
#https://packages.ubuntu.com/noble/nautilus-dropbox
echo "Dropbox is not supported on arm64 architecture."
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

idk building from source seems kinda sketchy? we could do that but ehh...
Maestral seems nice, and is perhaps something @dhh would like also, perhaps as just a replacement for dropbox?

fi
2 changes: 1 addition & 1 deletion install/ruby.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# FIXME: Change to use whatever latest release is
DEFAULT_RUBY_VERSION="3.3.1"
DEFAULT_RUBY_VERSION=$(curl -s https://api.github.com/repos/ruby/ruby/tags | jq -r '[.[].name | select(test("preview|rc") | not)] | .[0]')

sudo apt install -y rbenv

Expand Down