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
|
||||
wget https://dl.google.com/linux/direct/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
|
||||
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/
|
||||
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
|
||||
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
|
||||
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
|
||||
wget https://zoom.us/client/latest/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=(
|
||||
"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"
|
||||
@@ -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'
|
||||
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
|
||||
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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
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 \
|
||||
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
|
||||
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
|
||||
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 -
|
||||
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