diff --git a/bin/omakub-install b/bin/omakub-install index 3fccb20..c162fc5 100644 --- a/bin/omakub-install +++ b/bin/omakub-install @@ -1,4 +1,4 @@ #!/bin/bash INSTALLER=$(gum file $OMAKUB_PATH/install) -[ -n "$INSTALLER" ] && gum confirm "Run installer?" && FORCE=1 source $INSTALLER +[ -n "$INSTALLER" ] && gum confirm "Run installer?" && source $INSTALLER diff --git a/install/app-flameshot.sh b/install/app-flameshot.sh index 5c21d1c..ee6e610 100644 --- a/install/app-flameshot.sh +++ b/install/app-flameshot.sh @@ -1,4 +1,2 @@ # Flameshot is a nice step-up over the default Gnome screenshot tool -if [ -n "$FORCE" ] || ! command -v flameshot &>/dev/null; then - sudo apt install -y flameshot -fi +sudo apt install -y flameshot diff --git a/install/app-github-cli.sh b/install/app-github-cli.sh index 9e9c627..c73d7de 100644 --- a/install/app-github-cli.sh +++ b/install/app-github-cli.sh @@ -1,7 +1,5 @@ -if ! command -v gh &>/dev/null; then - 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 -fi +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 diff --git a/install/app-neovim.sh b/install/app-neovim.sh index 85b6995..c25f27a 100644 --- a/install/app-neovim.sh +++ b/install/app-neovim.sh @@ -1,7 +1,8 @@ -if [ -n "$FORCE" ] || ! command -v neovim &>/dev/null; then - sudo add-apt-repository -y ppa:neovim-ppa/stable - sudo apt update -y - sudo apt install -y neovim +sudo add-apt-repository -y ppa:neovim-ppa/stable +sudo apt update +sudo apt install -y neovim + +if [ ! -d "$HOME/.config/nvim" ]; then git clone https://github.com/LazyVim/starter ~/.config/nvim cp ~/.local/share/omakub/themes/neovim/tokyo-night.lua ~/.config/nvim/lua/plugins/theme.lua fi diff --git a/install/app-typora.sh b/install/app-typora.sh index 8d6a0d7..dd689c7 100644 --- a/install/app-typora.sh +++ b/install/app-typora.sh @@ -1,10 +1,8 @@ -if ! command -v typora &>/dev/null; then - wget -qO - https://typoraio.cn/linux/public-key.asc | sudo tee /etc/apt/trusted.gpg.d/typora.asc - sudo add-apt-repository 'deb https://typora.io/linux ./' - sudo apt-get update - sudo apt-get install -y typora +wget -qO - https://typoraio.cn/linux/public-key.asc | sudo tee /etc/apt/trusted.gpg.d/typora.asc +sudo add-apt-repository 'deb https://typora.io/linux ./' +sudo apt update +sudo apt install -y typora - # Add iA Typora theme - ln -s ~/.local/share/omakub/themes/typora/ia_typora.css ~/.config/Typora/themes/ - ln -s ~/.local/share/omakub/themes/typora/ia_typora_night.css ~/.config/Typora/themes/ -fi +# Add iA Typora theme +ln -s ~/.local/share/omakub/themes/typora/ia_typora.css ~/.config/Typora/themes/ +ln -s ~/.local/share/omakub/themes/typora/ia_typora_night.css ~/.config/Typora/themes/ diff --git a/install/docker.sh b/install/docker.sh index bb5a2cd..9c3e840 100644 --- a/install/docker.sh +++ b/install/docker.sh @@ -1,14 +1,12 @@ -if [ -n "$FORCE" ] || ! command -v docker &>/dev/null; then - sudo apt install -y docker.io docker-buildx - sudo usermod -aG docker ${USER} +sudo apt install -y docker.io docker-buildx +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 - chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose +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 - # FIXME: Add postgresql as a default configured DB as well - sudo docker create --restart unless-stopped -p 3306:3306 --name=mysql8 -e MYSQL_ROOT_PASSWORD= -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:8 - sudo docker create --restart unless-stopped -p 6379:6379 --name=redis redis -fi +# FIXME: Add postgresql as a default configured DB as well +sudo docker create --restart unless-stopped -p 3306:3306 --name=mysql8 -e MYSQL_ROOT_PASSWORD= -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:8 +sudo docker create --restart unless-stopped -p 6379:6379 --name=redis redis diff --git a/install/emojis.sh b/install/emojis.sh index 4d84147..0091df1 100644 --- a/install/emojis.sh +++ b/install/emojis.sh @@ -1,5 +1,3 @@ -if [ -n "$FORCE" ] || [ ! -f "~/.XCompose" ]; then - cp ~/.local/share/omakub/configs/xcompose ~/.XCompose - ibus restart - gsettings set org.gnome.desktop.input-sources xkb-options "['compose:caps']" -fi +cp ~/.local/share/omakub/configs/xcompose ~/.XCompose +ibus restart +gsettings set org.gnome.desktop.input-sources xkb-options "['compose:caps']" diff --git a/install/gnome-extensions.sh b/install/gnome-extensions.sh index c3b5f4f..ced60ef 100644 --- a/install/gnome-extensions.sh +++ b/install/gnome-extensions.sh @@ -1,61 +1,59 @@ -if [ -n "$FORCE" ] || ! command -v gnome-shell-extension-manager &>/dev/null; then - sudo apt install -y gnome-shell-extension-manager pipx - pipx install gnome-extensions-cli --system-site-packages +sudo apt install -y gnome-shell-extension-manager pipx +pipx install gnome-extensions-cli --system-site-packages - # Turn off default Ubuntu extensions - gnome-extensions disable tiling-assistant@ubuntu.com - gnome-extensions disable ubuntu-appindicators@ubuntu.com - gnome-extensions disable ubuntu-dock@ubuntu.com - gnome-extensions disable ding@rastersoft.com +# Turn off default Ubuntu extensions +gnome-extensions disable tiling-assistant@ubuntu.com +gnome-extensions disable ubuntu-appindicators@ubuntu.com +gnome-extensions disable ubuntu-dock@ubuntu.com +gnome-extensions disable ding@rastersoft.com - # Install new extensions - # FIXME: Install these manually to avoid needing the pop-up confirmation during the installation process - gext install tactile@lundal.io - gext install just-perfection-desktop@just-perfection - gext install blur-my-shell@aunetx - gext install space-bar@luchrioh +# Install new extensions +# FIXME: Install these manually to avoid needing the pop-up confirmation during the installation process +gext install tactile@lundal.io +gext install just-perfection-desktop@just-perfection +gext install blur-my-shell@aunetx +gext install space-bar@luchrioh - # 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 glib-compile-schemas /usr/share/glib-2.0/schemas/ +# 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 glib-compile-schemas /usr/share/glib-2.0/schemas/ - # Configure Tactile - gsettings set org.gnome.shell.extensions.tactile col-0 1 - gsettings set org.gnome.shell.extensions.tactile col-0 1 - gsettings set org.gnome.shell.extensions.tactile col-1 2 - gsettings set org.gnome.shell.extensions.tactile col-2 1 - gsettings set org.gnome.shell.extensions.tactile col-3 0 - gsettings set org.gnome.shell.extensions.tactile row-0 1 - gsettings set org.gnome.shell.extensions.tactile row-1 1 - gsettings set org.gnome.shell.extensions.tactile gap-size 32 +# Configure Tactile +gsettings set org.gnome.shell.extensions.tactile col-0 1 +gsettings set org.gnome.shell.extensions.tactile col-0 1 +gsettings set org.gnome.shell.extensions.tactile col-1 2 +gsettings set org.gnome.shell.extensions.tactile col-2 1 +gsettings set org.gnome.shell.extensions.tactile col-3 0 +gsettings set org.gnome.shell.extensions.tactile row-0 1 +gsettings set org.gnome.shell.extensions.tactile row-1 1 +gsettings set org.gnome.shell.extensions.tactile gap-size 32 - # Configure Just Perfection - gsettings set org.gnome.shell.extensions.just-perfection animation 2 - gsettings set org.gnome.shell.extensions.just-perfection dash-app-running true - gsettings set org.gnome.shell.extensions.just-perfection workspace true - gsettings set org.gnome.shell.extensions.just-perfection workspace-popup false +# Configure Just Perfection +gsettings set org.gnome.shell.extensions.just-perfection animation 2 +gsettings set org.gnome.shell.extensions.just-perfection dash-app-running true +gsettings set org.gnome.shell.extensions.just-perfection workspace true +gsettings set org.gnome.shell.extensions.just-perfection workspace-popup false - # Configure Blur My Shell - gsettings set org.gnome.shell.extensions.blur-my-shell.appfolder blur false - gsettings set org.gnome.shell.extensions.blur-my-shell.lockscreen blur false - gsettings set org.gnome.shell.extensions.blur-my-shell.screenshot blur false - gsettings set org.gnome.shell.extensions.blur-my-shell.window-list blur false - gsettings set org.gnome.shell.extensions.blur-my-shell.panel brightness 0.6 - gsettings set org.gnome.shell.extensions.blur-my-shell.panel sigma 30 - gsettings set org.gnome.shell.extensions.blur-my-shell.panel pipeline 'pipeline_default' - gsettings set org.gnome.shell.extensions.blur-my-shell.overview blur true - gsettings set org.gnome.shell.extensions.blur-my-shell.overview pipeline 'pipeline_default' - gsettings set org.gnome.shell.extensions.blur-my-shell.dash-to-dock blur true - gsettings set org.gnome.shell.extensions.blur-my-shell.dash-to-dock brightness 0.6 - gsettings set org.gnome.shell.extensions.blur-my-shell.dash-to-dock sigma 30 - gsettings set org.gnome.shell.extensions.blur-my-shell.dash-to-dock static-blur true - gsettings set org.gnome.shell.extensions.blur-my-shell.dash-to-dock style-dash-to-dock 0 +# Configure Blur My Shell +gsettings set org.gnome.shell.extensions.blur-my-shell.appfolder blur false +gsettings set org.gnome.shell.extensions.blur-my-shell.lockscreen blur false +gsettings set org.gnome.shell.extensions.blur-my-shell.screenshot blur false +gsettings set org.gnome.shell.extensions.blur-my-shell.window-list blur false +gsettings set org.gnome.shell.extensions.blur-my-shell.panel brightness 0.6 +gsettings set org.gnome.shell.extensions.blur-my-shell.panel sigma 30 +gsettings set org.gnome.shell.extensions.blur-my-shell.panel pipeline 'pipeline_default' +gsettings set org.gnome.shell.extensions.blur-my-shell.overview blur true +gsettings set org.gnome.shell.extensions.blur-my-shell.overview pipeline 'pipeline_default' +gsettings set org.gnome.shell.extensions.blur-my-shell.dash-to-dock blur true +gsettings set org.gnome.shell.extensions.blur-my-shell.dash-to-dock brightness 0.6 +gsettings set org.gnome.shell.extensions.blur-my-shell.dash-to-dock sigma 30 +gsettings set org.gnome.shell.extensions.blur-my-shell.dash-to-dock static-blur true +gsettings set org.gnome.shell.extensions.blur-my-shell.dash-to-dock style-dash-to-dock 0 - # Configure Space Bar - gsettings set org.gnome.shell.extensions.space-bar.behavior smart-workspace-names false - gsettings set org.gnome.shell.extensions.space-bar.shortcuts enable-activate-workspace-shortcuts false - gsettings set org.gnome.shell.extensions.space-bar.shortcuts open-menu "@as []" -fi +# Configure Space Bar +gsettings set org.gnome.shell.extensions.space-bar.behavior smart-workspace-names false +gsettings set org.gnome.shell.extensions.space-bar.shortcuts enable-activate-workspace-shortcuts false +gsettings set org.gnome.shell.extensions.space-bar.shortcuts open-menu "@as []" diff --git a/install/nodenv.sh b/install/nodenv.sh index 1f7950a..5e8bff0 100644 --- a/install/nodenv.sh +++ b/install/nodenv.sh @@ -1,4 +1,4 @@ -if [ -n "$FORCE" ] || ! command -v nodenv &>/dev/null; then +if ! command -v nodenv &>/dev/null; then # FIXME: Make this pick whatever the latest LTS is DEFAULT_NODE_VERSION="20.13.1" diff --git a/install/ruby.sh b/install/ruby.sh index 5c89f5f..26a939e 100644 --- a/install/ruby.sh +++ b/install/ruby.sh @@ -1,9 +1,18 @@ -if [ -n "$FORCE" ] || ! command -v rbenv &>/dev/null; then - # FIXME: Change to use whatever latest release is - DEFAULT_RUBY_VERSION="3.3.1" +# FIXME: Change to use whatever latest release is +DEFAULT_RUBY_VERSION="3.3.1" - sudo apt install -y rbenv - git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build - rbenv install $DEFAULT_RUBY_VERSION - rbenv global $DEFAULT_RUBY_VERSION +sudo apt install -y rbenv + +RUBY_BUILD_DIR="$(rbenv root)/plugins/ruby-build" + +# Check if the directory exists +if [ -d "$RUBY_BUILD_DIR" ]; then + cd "$RUBY_BUILD_DIR" && git pull + cd - +else + git clone https://github.com/rbenv/ruby-build.git "$RUBY_BUILD_DIR" fi + +git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build +rbenv install $DEFAULT_RUBY_VERSION +rbenv global $DEFAULT_RUBY_VERSION diff --git a/install/zzz-ulauncher.sh b/install/zzz-ulauncher.sh index ee050eb..7053373 100644 --- a/install/zzz-ulauncher.sh +++ b/install/zzz-ulauncher.sh @@ -1,13 +1,11 @@ -if [ -n "$FORCE" ] || ! command -v ulauncher &>/dev/null; then - sudo add-apt-repository universe -y - sudo add-apt-repository ppa:agornostal/ulauncher -y - sudo apt update -y - sudo apt install -y ulauncher +sudo add-apt-repository universe -y +sudo add-apt-repository ppa:agornostal/ulauncher -y +sudo apt update -y +sudo apt install -y ulauncher - # Start ulauncher to have it populate config before we overwrite - mkdir -p ~/.config/autostart/ - cp ~/.local/share/omakub/configs/ulauncher.desktop ~/.config/autostart/ulauncher.desktop - gtk-launch ulauncher.desktop - sleep 2 # ensure enough time for ulauncher to set defaults - cp ~/.local/share/omakub/configs/ulauncher.json ~/.config/ulauncher/settings.json -fi +# Start ulauncher to have it populate config before we overwrite +mkdir -p ~/.config/autostart/ +cp ~/.local/share/omakub/configs/ulauncher.desktop ~/.config/autostart/ulauncher.desktop +gtk-launch ulauncher.desktop +sleep 2 # ensure enough time for ulauncher to set defaults +cp ~/.local/share/omakub/configs/ulauncher.json ~/.config/ulauncher/settings.json