mirror of
https://github.com/aljazceru/omakub.git
synced 2025-12-17 04:24:20 +01:00
Split into desktop and terminal
And add a bunch more apps
This commit is contained in:
@@ -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
13
install/desktop.sh
Normal 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
|
||||||
7
install/desktop/app-alacritty.sh
Normal file
7
install/desktop/app-alacritty.sh
Normal 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
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
# Browse the web with the most popular browser. See https://www.google.com/chrome/
|
||||||
cd /tmp
|
cd /tmp
|
||||||
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
|
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
|
||||||
sudo apt install -y ./google-chrome-stable_current_amd64.deb
|
sudo apt install -y ./google-chrome-stable_current_amd64.deb
|
||||||
2
install/desktop/app-gnome-sushi.sh
Normal file
2
install/desktop/app-gnome-sushi.sh
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# Gives you previews in the file manager when pressing space
|
||||||
|
sudo apt install -y gnome-sushi
|
||||||
2
install/desktop/app-obsidian.sh
Normal file
2
install/desktop/app-obsidian.sh
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# Obsidian is a multi-platform note taking application. See https://obsidian.md
|
||||||
|
flatpak install -y flathub md.obsidian.Obsidian
|
||||||
@@ -5,5 +5,5 @@ sudo apt install -y typora
|
|||||||
|
|
||||||
# Add iA Typora theme
|
# Add iA Typora theme
|
||||||
mkdir -p ~/.config/Typora/themes
|
mkdir -p ~/.config/Typora/themes
|
||||||
cp ~/.local/share/omakub/themes/typora/ia_typora.css ~/.config/Typora/themes/
|
cp ~/.local/share/omakub/configs/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_night.css ~/.config/Typora/themes/
|
||||||
1
install/desktop/optional/app-audacity.sh
Normal file
1
install/desktop/optional/app-audacity.sh
Normal file
@@ -0,0 +1 @@
|
|||||||
|
flatpak install -y flathub org.audacityteam.Audacity
|
||||||
4
install/desktop/optional/app-brave.sh
Normal file
4
install/desktop/optional/app-brave.sh
Normal 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
|
||||||
2
install/desktop/optional/app-dropbox.sh
Normal file
2
install/desktop/optional/app-dropbox.sh
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# Sync files across machines using https://dropbox.com
|
||||||
|
sudo apt install -y nautilus-dropbox >/dev/null
|
||||||
2
install/desktop/optional/app-obs-studio.sh
Normal file
2
install/desktop/optional/app-obs-studio.sh
Normal 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
|
||||||
1
install/desktop/optional/app-rubymine.sh
Normal file
1
install/desktop/optional/app-rubymine.sh
Normal file
@@ -0,0 +1 @@
|
|||||||
|
sudo snap install rubymine --classic
|
||||||
@@ -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
|
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
|
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
|
sudo apt update -y
|
||||||
6
install/desktop/optional/app-steam.sh
Executable file
6
install/desktop/optional/app-steam.sh
Executable 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 -
|
||||||
10
install/desktop/optional/app-windows.sh
Normal file
10
install/desktop/optional/app-windows.sh
Normal 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
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
# Make video calls using https://zoom.us/
|
||||||
cd /tmp
|
cd /tmp
|
||||||
wget https://zoom.us/client/latest/zoom_amd64.deb
|
wget https://zoom.us/client/latest/zoom_amd64.deb
|
||||||
sudo apt install -y ./zoom_amd64.deb
|
sudo apt install -y ./zoom_amd64.deb
|
||||||
9
install/desktop/select-optional-apps.sh
Normal file
9
install/desktop/select-optional-apps.sh
Normal 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
|
||||||
22
install/desktop/set-app-grid.sh
Normal file
22
install/desktop/set-app-grid.sh
Normal 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']"
|
||||||
@@ -2,18 +2,22 @@
|
|||||||
apps=(
|
apps=(
|
||||||
"google-chrome.desktop"
|
"google-chrome.desktop"
|
||||||
"Alacritty.desktop"
|
"Alacritty.desktop"
|
||||||
|
"Neovim.desktop"
|
||||||
"code.desktop"
|
"code.desktop"
|
||||||
"WhatsApp.desktop"
|
"WhatsApp.desktop"
|
||||||
"signal-desktop.desktop"
|
"signal-desktop.desktop"
|
||||||
"spotify.desktop"
|
|
||||||
"typora.desktop"
|
|
||||||
"Zoom.desktop"
|
"Zoom.desktop"
|
||||||
"pinta_pinta.desktop"
|
"spotify.desktop"
|
||||||
"com.github.xournalpp.xournalpp.desktop"
|
|
||||||
"steam.desktop"
|
"steam.desktop"
|
||||||
|
"pinta_pinta.desktop"
|
||||||
|
"md.obsidian.Obsidian.desktop"
|
||||||
|
"Activity.desktop"
|
||||||
|
"Docker.desktop"
|
||||||
|
"Omakub.desktop"
|
||||||
"1password.desktop"
|
"1password.desktop"
|
||||||
"org.gnome.Settings.desktop"
|
"org.gnome.Settings.desktop"
|
||||||
"org.gnome.Nautilus.desktop"
|
"org.gnome.Nautilus.desktop"
|
||||||
|
"localsend_app.desktop"
|
||||||
)
|
)
|
||||||
|
|
||||||
# Array to hold installed favorite apps
|
# Array to hold installed favorite apps
|
||||||
@@ -21,6 +25,7 @@ installed_apps=()
|
|||||||
|
|
||||||
# Directory where .desktop files are typically stored
|
# Directory where .desktop files are typically stored
|
||||||
desktop_dirs=(
|
desktop_dirs=(
|
||||||
|
"/var/lib/flatpak/exports/share/applications"
|
||||||
"/usr/share/applications"
|
"/usr/share/applications"
|
||||||
"/usr/local/share/applications"
|
"/usr/local/share/applications"
|
||||||
"$HOME/.local/share/applications"
|
"$HOME/.local/share/applications"
|
||||||
@@ -8,7 +8,7 @@ gnome-extensions disable ubuntu-dock@ubuntu.com
|
|||||||
gnome-extensions disable ding@rastersoft.com
|
gnome-extensions disable ding@rastersoft.com
|
||||||
|
|
||||||
# Pause to assure user is ready to accept confirmations
|
# 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
|
# Install new extensions
|
||||||
gext install tactile@lundal.io
|
gext install tactile@lundal.io
|
||||||
@@ -16,12 +16,24 @@ gext install just-perfection-desktop@just-perfection
|
|||||||
gext install blur-my-shell@aunetx
|
gext install blur-my-shell@aunetx
|
||||||
gext install space-bar@luchrioh
|
gext install space-bar@luchrioh
|
||||||
gext install undecorate@sun.wxg@gmail.com
|
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
|
# 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/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/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/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/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/
|
sudo glib-compile-schemas /usr/share/glib-2.0/schemas/
|
||||||
|
|
||||||
# Configure Tactile
|
# 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 enable-move-to-workspace-shortcuts true
|
||||||
gsettings set org.gnome.shell.extensions.space-bar.shortcuts open-menu "@as []"
|
gsettings set org.gnome.shell.extensions.space-bar.shortcuts open-menu "@as []"
|
||||||
|
|
||||||
# Configure tweaks
|
# Configure Pano
|
||||||
gsettings set org.gnome.mutter center-new-windows true
|
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
|
# Configure Vitals
|
||||||
gsettings set org.gnome.desktop.interface monospace-font-name 'CaskaydiaMono Nerd Font 10'
|
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'
|
||||||
5
install/desktop/set-gnome-settings.sh
Normal file
5
install/desktop/set-gnome-settings.sh
Normal 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'
|
||||||
1
install/desktop/set-gnome-theme.sh
Normal file
1
install/desktop/set-gnome-theme.sh
Normal file
@@ -0,0 +1 @@
|
|||||||
|
source ~/.local/share/omakub/themes/tokyo-night/gnome.sh
|
||||||
@@ -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
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
sudo apt install -y nautilus-dropbox
|
|
||||||
gtk-launch dropbox.desktop
|
|
||||||
@@ -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 -
|
|
||||||
@@ -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
|
|
||||||
@@ -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
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
# Setup default theme
|
|
||||||
source ~/.local/share/omakub/themes/gnome/tokyo-night.sh
|
|
||||||
7
install/terminal.sh
Normal file
7
install/terminal.sh
Normal 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
|
||||||
@@ -1,6 +1,10 @@
|
|||||||
|
# Configure the bash shell using Omakub defaults
|
||||||
[ -f "~/.bashrc" ] && mv ~/.bashrc ~/.bashrc.bak
|
[ -f "~/.bashrc" ] && mv ~/.bashrc ~/.bashrc.bak
|
||||||
cp ~/.local/share/omakub/configs/bashrc ~/.bashrc
|
cp ~/.local/share/omakub/configs/bashrc ~/.bashrc
|
||||||
|
|
||||||
|
# Load the PATH for use later in the installers
|
||||||
source ~/.local/share/omakub/defaults/bash/shell
|
source ~/.local/share/omakub/defaults/bash/shell
|
||||||
|
|
||||||
[ -f "~/.inputrc" ] && mv ~/.inputrc ~/.inputrc.bak
|
[ -f "~/.inputrc" ] && mv ~/.inputrc ~/.inputrc.bak
|
||||||
|
# Configure the inputrc using Omakub defaults
|
||||||
cp ~/.local/share/omakub/configs/inputrc ~/.inputrc
|
cp ~/.local/share/omakub/configs/inputrc ~/.inputrc
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
# Display system information in the terminal
|
||||||
sudo add-apt-repository -y ppa:zhangsongcui3371/fastfetch
|
sudo add-apt-repository -y ppa:zhangsongcui3371/fastfetch
|
||||||
sudo apt update -y
|
sudo apt update -y
|
||||||
sudo apt install -y fastfetch
|
sudo apt install -y fastfetch
|
||||||
@@ -2,17 +2,32 @@ cd /tmp
|
|||||||
wget -O nvim.tar.gz "https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz"
|
wget -O nvim.tar.gz "https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz"
|
||||||
tar -xf nvim.tar.gz
|
tar -xf nvim.tar.gz
|
||||||
sudo install nvim-linux64/bin/nvim /usr/local/bin/nvim
|
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
|
rm -rf nvim-linux64 nvim.tar.gz
|
||||||
cd -
|
cd -
|
||||||
|
|
||||||
|
# Only attempt to set configuration if Neovim has never been run
|
||||||
if [ ! -d "$HOME/.config/nvim" ]; then
|
if [ ! -d "$HOME/.config/nvim" ]; then
|
||||||
|
# Use LazyVim
|
||||||
git clone https://github.com/LazyVim/starter ~/.config/nvim
|
git clone https://github.com/LazyVim/starter ~/.config/nvim
|
||||||
|
|
||||||
# Disable update notification popup in starter config
|
# 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
|
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
|
mkdir -p ~/.config/nvim/plugin/after
|
||||||
cp ~/.local/share/omakub/configs/neovim/transparency.lua ~/.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
|
# Enable default extras
|
||||||
cp ~/.local/share/omakub/configs/neovim/lazyvim.json ~/.config/nvim/lazyvim.json
|
cp ~/.local/share/omakub/configs/neovim/lazyvim.json ~/.config/nvim/lazyvim.json
|
||||||
fi
|
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
|
||||||
@@ -5,6 +5,6 @@ sudo install zellij /usr/local/bin
|
|||||||
rm zellij.tar.gz zellij
|
rm zellij.tar.gz zellij
|
||||||
cd -
|
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
|
[ ! -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
|
||||||
11
install/terminal/docker.sh
Normal file
11
install/terminal/docker.sh
Normal 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
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
sudo apt install -y \
|
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 \
|
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
|
||||||
1
install/terminal/optional/app-ollama.sh
Normal file
1
install/terminal/optional/app-ollama.sh
Normal file
@@ -0,0 +1 @@
|
|||||||
|
curl -fsSL https://ollama.com/install.sh | sh
|
||||||
@@ -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.1" # Use known good version
|
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"
|
wget -qO gum.deb "https://github.com/charmbracelet/gum/releases/latest/download/gum_${GUM_VERSION}_amd64.deb"
|
||||||
sudo apt install -y ./gum.deb
|
sudo apt-get install -y ./gum.deb
|
||||||
rm gum.deb
|
rm gum.deb
|
||||||
cd -
|
cd -
|
||||||
45
install/terminal/select-dev-language.sh
Normal file
45
install/terminal/select-dev-language.sh
Normal 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
|
||||||
23
install/terminal/select-dev-storage.sh
Normal file
23
install/terminal/select-dev-storage.sh
Normal 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
|
||||||
Reference in New Issue
Block a user