diff --git a/applications/About.sh b/applications/About.sh new file mode 100644 index 00000000..1b149bb3 --- /dev/null +++ b/applications/About.sh @@ -0,0 +1,12 @@ +cat <~/.local/share/applications/About.desktop +[Desktop Entry] +Version=1.0 +Name=About +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' +Terminal=false +Type=Application +Icon=/home/$USER/.local/share/omakub/applications/icons/Ubuntu.png +Categories=GTK; +StartupNotify=false +EOF diff --git a/applications/Activity.sh b/applications/Activity.sh new file mode 100644 index 00000000..87d88cbc --- /dev/null +++ b/applications/Activity.sh @@ -0,0 +1,12 @@ +cat <~/.local/share/applications/Activity.desktop +[Desktop Entry] +Version=1.0 +Name=Activity +Comment=System activity from btop +Exec=alacritty --config-file /home/$USER/.local/share/omakub/defaults/alacritty/btop.toml -e btop +Terminal=false +Type=Application +Icon=/home/$USER/.local/share/omakub/applications/icons/Activity.png +Categories=GTK; +StartupNotify=false +EOF diff --git a/web-apps/Basecamp.sh b/applications/Basecamp.sh similarity index 68% rename from web-apps/Basecamp.sh rename to applications/Basecamp.sh index 9f51a0e3..ab4d2ab9 100644 --- a/web-apps/Basecamp.sh +++ b/applications/Basecamp.sh @@ -1,4 +1,4 @@ -cat < ~/.local/share/applications/Basecamp.desktop +cat <~/.local/share/applications/Basecamp.desktop [Desktop Entry] Version=1.0 Name=Basecamp @@ -6,7 +6,7 @@ Comment=Basecamp Project Management Exec=google-chrome --app="https://launchpad.37signals.com" --name=Basecamp Terminal=false Type=Application -Icon=/home/$USER/.local/share/omakub/web-apps/icons/Basecamp.png +Icon=/home/$USER/.local/share/omakub/applications/icons/Basecamp.png Categories=GTK; MimeType=text/html;text/xml;application/xhtml_xml; StartupNotify=true diff --git a/applications/Docker.sh b/applications/Docker.sh new file mode 100644 index 00000000..82aa4ee8 --- /dev/null +++ b/applications/Docker.sh @@ -0,0 +1,12 @@ +cat <~/.local/share/applications/Docker.desktop +[Desktop Entry] +Version=1.0 +Name=Docker +Comment=Manage Docker containers with LazyDocker +Exec=alacritty --config-file /home/$USER/.local/share/omakub/defaults/alacritty/pane.toml -e lazydocker +Terminal=false +Type=Application +Icon=/home/$USER/.local/share/omakub/applications/icons/Docker.png +Categories=GTK; +StartupNotify=false +EOF diff --git a/web-apps/HEY.sh b/applications/HEY.sh similarity index 82% rename from web-apps/HEY.sh rename to applications/HEY.sh index 2c99be09..769260c7 100644 --- a/web-apps/HEY.sh +++ b/applications/HEY.sh @@ -6,7 +6,7 @@ Comment=HEY Email + Calendar Exec=google-chrome --app="https://app.hey.com/" --name=HEY Terminal=false Type=Application -Icon=/home/$USER/.local/share/omakub/web-apps/icons/HEY.png +Icon=/home/$USER/.local/share/omakub/applications/icons/HEY.png Categories=GTK; MimeType=text/html;text/xml;application/xhtml_xml; StartupNotify=true diff --git a/applications/Neovim.sh b/applications/Neovim.sh new file mode 100644 index 00000000..2a479ffe --- /dev/null +++ b/applications/Neovim.sh @@ -0,0 +1,12 @@ +cat <~/.local/share/applications/Neovim.desktop +[Desktop Entry] +Version=1.0 +Name=Neovim +Comment=Edit text files +Exec=alacritty --config-file /home/$USER/.local/share/omakub/defaults/alacritty/pane.toml -e nvim %F +Terminal=false +Type=Application +Icon=nvim +Categories=Utilities;TextEditor; +StartupNotify=false +EOF diff --git a/applications/Omakub.sh b/applications/Omakub.sh new file mode 100644 index 00000000..f6475bd8 --- /dev/null +++ b/applications/Omakub.sh @@ -0,0 +1,12 @@ +cat <~/.local/share/applications/Omakub.desktop +[Desktop Entry] +Version=1.0 +Name=Omakub +Comment=Omakub Controls +Exec=alacritty --config-file /home/$USER/.local/share/omakub/defaults/alacritty/pane.toml -e omakub +Terminal=false +Type=Application +Icon=/home/$USER/.local/share/omakub/applications/icons/Omakub.png +Categories=GTK; +StartupNotify=false +EOF diff --git a/web-apps/WhatsApp.sh b/applications/WhatsApp.sh similarity index 67% rename from web-apps/WhatsApp.sh rename to applications/WhatsApp.sh index af413a78..c744d926 100644 --- a/web-apps/WhatsApp.sh +++ b/applications/WhatsApp.sh @@ -1,4 +1,4 @@ -cat < ~/.local/share/applications/WhatsApp.desktop +cat <~/.local/share/applications/WhatsApp.desktop [Desktop Entry] Version=1.0 Name=WhatsApp @@ -6,7 +6,7 @@ Comment=WhatsApp Messenger Exec=google-chrome --app="https://web.whatsapp.com" --name=WhatsApp Terminal=false Type=Application -Icon=/home/$USER/.local/share/omakub/web-apps/icons/WhatsApp.png +Icon=/home/$USER/.local/share/omakub/applications/icons/WhatsApp.png Categories=GTK; MimeType=text/html;text/xml;application/xhtml_xml; StartupNotify=true diff --git a/applications/icons/Activity.png b/applications/icons/Activity.png new file mode 100644 index 00000000..e0713bff Binary files /dev/null and b/applications/icons/Activity.png differ diff --git a/web-apps/icons/Basecamp.png b/applications/icons/Basecamp.png similarity index 100% rename from web-apps/icons/Basecamp.png rename to applications/icons/Basecamp.png diff --git a/applications/icons/Docker.png b/applications/icons/Docker.png new file mode 100644 index 00000000..c0257594 Binary files /dev/null and b/applications/icons/Docker.png differ diff --git a/web-apps/icons/HEY.png b/applications/icons/HEY.png similarity index 100% rename from web-apps/icons/HEY.png rename to applications/icons/HEY.png diff --git a/applications/icons/Omakub.png b/applications/icons/Omakub.png new file mode 100644 index 00000000..bd363572 Binary files /dev/null and b/applications/icons/Omakub.png differ diff --git a/applications/icons/Ubuntu.png b/applications/icons/Ubuntu.png new file mode 100644 index 00000000..602aa2b3 Binary files /dev/null and b/applications/icons/Ubuntu.png differ diff --git a/web-apps/icons/WhatsApp.png b/applications/icons/WhatsApp.png similarity index 100% rename from web-apps/icons/WhatsApp.png rename to applications/icons/WhatsApp.png diff --git a/bin/omakub b/bin/omakub index 581ca8c0..41e47455 100755 --- a/bin/omakub +++ b/bin/omakub @@ -1,11 +1,7 @@ #!/bin/bash source $OMAKUB_PATH/ascii.sh - -if [ $# -eq 0 ]; then - SUB=$(gum choose "Help" "Theme" "Font" "Install" "Uninstall" "Update" --height 9 --header "" | tr '[:upper:]' '[:lower:]') -else - SUB=$1 -fi - -[ -n "$SUB" ] && source $OMAKUB_PATH/bin/omakub-$SUB +echo "" # Add spacing +echo " $(cat $OMAKUB_PATH/version)" +echo "" # Add spacing +source $OMAKUB_PATH/bin/omakub-sub/menu.sh diff --git a/bin/omakub-font b/bin/omakub-font deleted file mode 100644 index 9174ddb1..00000000 --- a/bin/omakub-font +++ /dev/null @@ -1,18 +0,0 @@ -# Pick a preconfigured theme -FONT=$(gum choose "Cascadia Mono" "Fira Mono" "JetBrains Mono" "Meslo" --header "Choose your programming font:" --height 6 | tr '[:upper:]' '[:lower:]' | sed 's/ /-/g') - -[ ! -n "$FONT" ] && exit 0 - -if [ "$FONT" == "cascadia-mono" ]; then - NERD_FONT="CaskaydiaMono Nerd Font" -elif [ "$FONT" == "fira-mono" ]; then - NERD_FONT="FiraMono Nerd Font" -elif [ "$FONT" == "jetbrains-mono" ]; then - NERD_FONT="JetBrainsMono NFM" -elif [ "$FONT" == "meslo" ]; then - NERD_FONT="MesloLGLDZ Nerd Font" -fi - -gsettings set org.gnome.desktop.interface monospace-font-name "$NERD_FONT 10" -cp $OMAKUB_PATH/fonts/alacritty/$FONT.toml ~/.config/alacritty/font.toml -sed -i "s/\"editor.fontFamily\": \".*\"/\"editor.fontFamily\": \"$NERD_FONT\"/g" ~/.config/Code/User/settings.json diff --git a/bin/omakub-help b/bin/omakub-help deleted file mode 100644 index 22820bf7..00000000 --- a/bin/omakub-help +++ /dev/null @@ -1,2 +0,0 @@ -HELP=$(gum choose "Hotkeys" "Commands" "Tactile" --header "What do you need help with?" --height 5 | tr '[:upper:]' '[:lower:]') -[ -n "$HELP" ] && gum pager --soft-wrap <$OMAKUB_PATH/help/$HELP.md diff --git a/bin/omakub-install b/bin/omakub-install deleted file mode 100644 index 40f5d656..00000000 --- a/bin/omakub-install +++ /dev/null @@ -1,2 +0,0 @@ -INSTALLER=$(gum file $OMAKUB_PATH/install) -[ -n "$INSTALLER" ] && gum confirm "Run installer?" && source $INSTALLER diff --git a/bin/omakub-sub/font-size.sh b/bin/omakub-sub/font-size.sh new file mode 100644 index 00000000..83a702e1 --- /dev/null +++ b/bin/omakub-sub/font-size.sh @@ -0,0 +1,8 @@ +choice=$(gum choose {7..14} "<< Back" --height 11 --header "Choose your terminal font size") + +if [[ $choice =~ ^[0-9]+$ ]]; then + sed -i "s/^size = .*$/size = $choice/g" ~/.config/alacritty/font-size.toml + source $OMAKUB_PATH/bin/omakub-sub/font-size.sh +else + source $OMAKUB_PATH/bin/omakub-sub/font.sh +fi diff --git a/bin/omakub-sub/font.sh b/bin/omakub-sub/font.sh new file mode 100644 index 00000000..933749f2 --- /dev/null +++ b/bin/omakub-sub/font.sh @@ -0,0 +1,49 @@ +set_font() { + local font_name=$1 + local url=$2 + local file_type=$3 + local file_name="${font_name/ Nerd Font/}" + + if ! $(fc-list | grep -i "$font_name" >/dev/null); then + cd /tmp + wget -O "$file_name.zip" "$url" + unzip "$file_name.zip" -d "$file_name" + cp "$file_name"/*."$file_type" ~/.local/share/fonts + rm -rf "$file_name.zip" "$file_name" + fc-cache + cd - + clear + source $OMAKUB_PATH/ascii.sh + fi + + gsettings set org.gnome.desktop.interface monospace-font-name "$font_name 10" + cp "$OMAKUB_PATH/configs/alacritty/fonts/$file_name.toml" ~/.config/alacritty/font.toml + sed -i "s/\"editor.fontFamily\": \".*\"/\"editor.fontFamily\": \"$font_name\"/g" ~/.config/Code/User/settings.json +} + +if [ "$#" -gt 1 ]; then + choice=${!#} +else + choice=$(gum choose "Cascadia Mono" "Fira Mono" "JetBrains Mono" "Meslo" "> Change size" "<< Back" --height 8 --header "Choose your programming font") +fi + +case $choice in +"Cascadia Mono") + set_font "CaskaydiaMono Nerd Font" "https://github.com/ryanoasis/nerd-fonts/releases/latest/download/CascadiaMono.zip" "ttf" + ;; +"Fira Mono") + set_font "FiraMono Nerd Font" "https://github.com/ryanoasis/nerd-fonts/releases/latest/download/FiraMono.zip" "otf" + ;; +"JetBrains Mono") + set_font "JetBrainsMono Nerd Font" "https://github.com/ryanoasis/nerd-fonts/releases/latest/download/JetBrainsMono.zip" "ttf" + ;; +"Meslo") + set_font "MesloLGS Nerd Font" "https://github.com/ryanoasis/nerd-fonts/releases/latest/download/Meslo.zip" "ttf" + ;; +"> Change size") + source $OMAKUB_PATH/bin/omakub-sub/font-size.sh + exit + ;; +esac + +source $OMAKUB_PATH/bin/omakub-sub/menu.sh diff --git a/bin/omakub-sub/install.sh b/bin/omakub-sub/install.sh new file mode 100644 index 00000000..f7413f30 --- /dev/null +++ b/bin/omakub-sub/install.sh @@ -0,0 +1,45 @@ +CHOICES=( + "Dev Language Install programming language environment" + "Dev Database Install development database in Docker" + "1password Manage your passwords securely across devices" + "Brave Chrome-based browser with built-in ad blocking" + "Dropbox Sync files across computers with ease" + "OBS Studio Record screencasts with inputs from both display + webcam" + "Audacity Record and edit audio" + "Ollama Run LLMs, like Meta's Llama3, locally" + "RubyMine IntelliJ's commercial Ruby editor" + "Spotify Stream music from the world's most popular service" + "Steam Play games from Valve's store" + "Zoom Attend and host video chat meetings" + "VirtualBox Virtual machines to run Windows/Linux" + "> All Re-run any of the default installers" + "<< Back " +) + +CHOICE=$(gum choose "${CHOICES[@]}" --height 17 --header "Install application") + +if [[ "$CHOICE" == "<< Back"* ]] || [[ -z "$CHOICE" ]]; then + # Don't install anything + echo "" +elif [[ "$CHOICE" == "> All"* ]]; then + INSTALLER_FILE=$(gum file $OMAKUB_PATH/install) + + [[ -n "$INSTALLER_FILE" ]] && + gum confirm "Run installer?" && + source $INSTALLER_FILE && + gum spin --spinner globe --title "Install completed!" -- sleep 3 +else + INSTALLER=$(echo "$CHOICE" | awk -F ' {2,}' '{print $1}' | tr '[:upper:]' '[:lower:]' | sed 's/ /-/g') + + case "$INSTALLER" in + "dev-language") INSTALLER_FILE="$OMAKUB_PATH/install/terminal/select-dev-language.sh" ;; + "dev-database") INSTALLER_FILE="$OMAKUB_PATH/install/terminal/select-dev-storage.sh" ;; + "ollama") INSTALLER_FILE="$OMAKUB_PATH/install/terminal/optional/app-ollama.sh" ;; + *) INSTALLER_FILE="$OMAKUB_PATH/install/desktop/optional/app-$INSTALLER.sh" ;; + esac + + source $INSTALLER_FILE && gum spin --spinner globe --title "Install completed!" -- sleep 3 +fi + +clear +source $OMAKUB_PATH/bin/omakub diff --git a/bin/omakub-sub/manual.sh b/bin/omakub-sub/manual.sh new file mode 100644 index 00000000..c062fa39 --- /dev/null +++ b/bin/omakub-sub/manual.sh @@ -0,0 +1,2 @@ +google-chrome "https://manual.omakub.org" >/dev/null +source $OMAKUB_PATH/bin/omakub-sub/menu.sh diff --git a/bin/omakub-sub/menu.sh b/bin/omakub-sub/menu.sh new file mode 100644 index 00000000..1b2def12 --- /dev/null +++ b/bin/omakub-sub/menu.sh @@ -0,0 +1,7 @@ +if [ $# -eq 0 ]; then + SUB=$(gum choose "Theme" "Font" "Update" "Install" "Uninstall" "Manual" "Quit" --height 10 --header "" | tr '[:upper:]' '[:lower:]') +else + SUB=$1 +fi + +[ -n "$SUB" ] && [ "$SUB" != "quit" ] && source $OMAKUB_PATH/bin/omakub-sub/$SUB.sh diff --git a/bin/omakub-sub/migrate.sh b/bin/omakub-sub/migrate.sh new file mode 100644 index 00000000..6749731a --- /dev/null +++ b/bin/omakub-sub/migrate.sh @@ -0,0 +1,15 @@ +cd $OMAKUB_PATH +last_updated_at=$(git log -1 --format=%cd --date=unix) +git pull + +for file in $OMAKUB_PATH/migrations/*.sh; do + filename=$(basename "$file") + migrate_at="${filename%.sh}" + + if [ $migrate_at -gt $last_updated_at ]; then + echo "Running migration for $migrate_at" + source $file + fi +done + +cd - diff --git a/bin/omakub-sub/theme.sh b/bin/omakub-sub/theme.sh new file mode 100644 index 00000000..461c97dc --- /dev/null +++ b/bin/omakub-sub/theme.sh @@ -0,0 +1,18 @@ +THEME_NAMES=("Tokyo Night" "Catppuccin" "Nord" "Everforest" "Gruvbox" "Kanagawa" "Rose Pine") +THEME=$(gum choose "${THEME_NAMES[@]}" "<< Back" --header "Choose your theme" --height 10 | tr '[:upper:]' '[:lower:]' | sed 's/ /-/g') + +if [ -n "$THEME" ] && [ "$THEME" != "<<-back" ]; then + cp $OMAKUB_PATH/themes/$THEME/alacritty.toml ~/.config/alacritty/theme.toml + cp $OMAKUB_PATH/themes/$THEME/zellij.kdl ~/.config/zellij/themes/$THEME.kdl + sed -i "s/theme \".*\"/theme \"$THEME\"/g" ~/.config/zellij/config.kdl + cp $OMAKUB_PATH/themes/$THEME/neovim.lua ~/.config/nvim/lua/plugins/theme.lua + + source $OMAKUB_PATH/themes/$THEME/gnome.sh + source $OMAKUB_PATH/themes/$THEME/vscode.sh + + # Forgo setting the Chrome theme until we might find a less disruptive way of doing it. + # Having to quit Chrome, and all Chrome-based apps, is too much of an inposition. + # source $OMAKUB_PATH/themes/$THEME/chrome.sh +fi + +source $OMAKUB_PATH/bin/omakub-sub/menu.sh diff --git a/bin/omakub-sub/uninstall.sh b/bin/omakub-sub/uninstall.sh new file mode 100644 index 00000000..f9c633cf --- /dev/null +++ b/bin/omakub-sub/uninstall.sh @@ -0,0 +1,4 @@ +UNINSTALLER=$(gum file $OMAKUB_PATH/uninstall) +[ -n "$UNINSTALLER" ] && gum confirm "Run uninstaller?" && source $UNINSTALLER && gum spin --spinner globe --title "Uninstall completed!" -- sleep 3 +clear +source $OMAKUB_PATH/bin/omakub diff --git a/bin/omakub-sub/update.sh b/bin/omakub-sub/update.sh new file mode 100644 index 00000000..1b0808c8 --- /dev/null +++ b/bin/omakub-sub/update.sh @@ -0,0 +1,30 @@ +CHOICES=( + "Omakub Update Omakub itself and run any migrations" + "Ollama Run LLMs, like Meta's Llama3, locally" + "LazyGit TUI for Git" + "LazyDocker TUI for Docker" + "Neovim Text editor that runs in the terminal" + "Zellij Adds panes, tabs, and sessions to the terminal" + "<< Back " +) + +CHOICE=$(gum choose "${CHOICES[@]}" --height 10 --header "Update manually-managed applications") + +if [[ "$CHOICE" == "<< Back"* ]] || [[ -z "$CHOICE" ]]; then + # Don't update anything + echo "" +else + INSTALLER=$(echo "$CHOICE" | awk -F ' {2,}' '{print $1}' | tr '[:upper:]' '[:lower:]' | sed 's/ /-/g') + + case "$INSTALLER" in + "omakub") INSTALLER_FILE="$OMAKUB_PATH/bin/omakub-sub/migrate.sh" ;; + "localsend") INSTALLER_FILE="$OMAKUB_PATH/install/desktop/app-localsend.sh" ;; + "ollama") INSTALLER_FILE="$OMAKUB_PATH/install/terminal/optional/app-ollama.sh" ;; + *) INSTALLER_FILE="$OMAKUB_PATH/install/terminal/app-$INSTALLER.sh" ;; + esac + + source $INSTALLER_FILE && gum spin --spinner globe --title "Update completed!" -- sleep 3 +fi + +clear +source $OMAKUB_PATH/bin/omakub diff --git a/bin/omakub-theme b/bin/omakub-theme deleted file mode 100644 index 165a0ba4..00000000 --- a/bin/omakub-theme +++ /dev/null @@ -1,45 +0,0 @@ -# Pick a preconfigured theme -THEME_NAMES=("Tokyo Night" "Catppuccin" "Nord" "Everforest" "Gruvbox" "Kanagawa" "Rose Pine") -THEME=$(gum choose "${THEME_NAMES[@]}" --header "Choose your theme" --height 9 | tr '[:upper:]' '[:lower:]' | sed 's/ /-/g') - -[ ! -n "$THEME" ] && exit 0 - -# Install theme in Gnome, Terminal, and both default editors -source $OMAKUB_PATH/themes/gnome/$THEME.sh -cp $OMAKUB_PATH/themes/alacritty/$THEME.toml ~/.config/alacritty/theme.toml - -if [ ! -f ~/.config/nvim/plugin/after/transparency.lua ]; then - mkdir -p ~/.config/nvim/plugin/after - cp $OMAKUB_PATH/configs/neovim/transparency.lua ~/.config/nvim/plugin/after/transparency.lua -fi - -cp $OMAKUB_PATH/themes/neovim/$THEME.lua ~/.config/nvim/lua/plugins/theme.lua -sed -i "s/theme \".*\"/theme \"$THEME\"/g" ~/.config/zellij/config.kdl - -# Translate to specific VSC theme name -if [ "$THEME" == "gruvbox" ]; then - VSC_THEME="Gruvbox Dark Medium" - VSC_EXTENSION="jdinhlife.gruvbox" -elif [ "$THEME" == "catppuccin" ]; then - VSC_THEME="Catppuccin Macchiato" - VSC_EXTENSION="Catppuccin.catppuccin-vsc" -elif [ "$THEME" == "tokyo-night" ]; then - VSC_THEME="Tokyo Night" - VSC_EXTENSION="enkia.tokyo-night" -elif [ "$THEME" == "everforest" ]; then - VSC_THEME="Everforest Dark" - VSC_EXTENSION="sainnhe.everforest" -elif [ "$THEME" == "rose-pine" ]; then - VSC_THEME="RosΓ© Pine Dawn" - VSC_EXTENSION="mvllow.rose-pine" -elif [ "$THEME" == "nord" ]; then - VSC_THEME="Nord" - VSC_EXTENSION="arcticicestudio.nord-visual-studio-code" -elif [ "$THEME" == "kanagawa" ]; then - VSC_THEME="Kanagawa" - VSC_EXTENSION="qufiwefefwoyn.kanagawa" -fi -code --install-extension $VSC_EXTENSION > /dev/null -sed -i "s/\"workbench.colorTheme\": \".*\"/\"workbench.colorTheme\": \"$VSC_THEME\"/g" ~/.config/Code/User/settings.json - -echo "Restart your terminal for a full theme change (Super + W, then start again with Alt + 2)" diff --git a/bin/omakub-uninstall b/bin/omakub-uninstall deleted file mode 100644 index f30c503b..00000000 --- a/bin/omakub-uninstall +++ /dev/null @@ -1,2 +0,0 @@ -UNINSTALLER=$(gum file $OMAKUB_PATH/uninstall) -[ -n "$UNINSTALLER" ] && gum confirm "Run uninstaller?" && source $UNINSTALLER diff --git a/bin/omakub-update b/bin/omakub-update deleted file mode 100644 index 60061341..00000000 --- a/bin/omakub-update +++ /dev/null @@ -1,3 +0,0 @@ -cd $OMAKUB_PATH -git pull -cd - diff --git a/boot-dev.sh b/boot-dev.sh new file mode 100644 index 00000000..b8481783 --- /dev/null +++ b/boot-dev.sh @@ -0,0 +1,23 @@ +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 diff --git a/boot.sh b/boot.sh new file mode 100644 index 00000000..7ba7fe87 --- /dev/null +++ b/boot.sh @@ -0,0 +1,23 @@ +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 stable Omakub..." +rm -rf ~/.local/share/omakub +git clone -b stable https://github.com/basecamp/omakub.git ~/.local/share/omakub >/dev/null + +echo "Installation starting..." +source ~/.local/share/omakub/install.sh diff --git a/configs/alacritty.toml b/configs/alacritty.toml index dbe7b35f..26fecf37 100644 --- a/configs/alacritty.toml +++ b/configs/alacritty.toml @@ -1,4 +1 @@ -import = [ "~/.config/alacritty/theme.toml", "~/.config/alacritty/font.toml", "~/.local/share/omakub/defaults/alacritty.toml" ] - -[font] -size = 9 +import = [ "~/.config/alacritty/theme.toml", "~/.config/alacritty/font.toml", "~/.config/alacritty/font-size.toml", "~/.local/share/omakub/defaults/alacritty.toml" ] diff --git a/configs/alacritty/font-size.toml b/configs/alacritty/font-size.toml new file mode 100644 index 00000000..dce905ae --- /dev/null +++ b/configs/alacritty/font-size.toml @@ -0,0 +1,3 @@ +# Leave this file in place for omakub to rely on a shared font size for all terminal apps +[font] +size = 9 diff --git a/configs/alacritty/font.toml b/configs/alacritty/font.toml deleted file mode 100644 index cbc8bd37..00000000 --- a/configs/alacritty/font.toml +++ /dev/null @@ -1,2 +0,0 @@ -# Leave this file as-is to allow omakub to swap fonts system wide -import = [ "~/.local/share/omakub/fonts/alacritty/cascadia-mono.toml" ] diff --git a/fonts/alacritty/cascadia-mono.toml b/configs/alacritty/fonts/CaskaydiaMono.toml similarity index 100% rename from fonts/alacritty/cascadia-mono.toml rename to configs/alacritty/fonts/CaskaydiaMono.toml diff --git a/configs/alacritty/fonts/FiraMono.toml b/configs/alacritty/fonts/FiraMono.toml new file mode 100644 index 00000000..06893fde --- /dev/null +++ b/configs/alacritty/fonts/FiraMono.toml @@ -0,0 +1,4 @@ +[font] +normal = { family = "FiraMono Nerd Font Mono", style = "Regular" } +bold = { family = "FiraMono Nerd Font Mono", style = "Bold" } +italic = { family = "FiraMono Nerd Font Mono", style = "Italic" } diff --git a/configs/alacritty/fonts/JetBrainsMono.toml b/configs/alacritty/fonts/JetBrainsMono.toml new file mode 100644 index 00000000..2277b0eb --- /dev/null +++ b/configs/alacritty/fonts/JetBrainsMono.toml @@ -0,0 +1,4 @@ +[font] +normal = { family = "JetBrainsMono Nerd Font Mono", style = "Regular" } +bold = { family = "JetBrainsMono Nerd Font Mono", style = "Bold" } +italic = { family = "JetBrainsMono Nerd Font Mono", style = "Italic" } diff --git a/configs/alacritty/fonts/MesloLGS.toml b/configs/alacritty/fonts/MesloLGS.toml new file mode 100644 index 00000000..f6b4fc41 --- /dev/null +++ b/configs/alacritty/fonts/MesloLGS.toml @@ -0,0 +1,4 @@ +[font] +normal = { family = "MesloLGLDZ Nerd Font Mono", style = "Regular" } +bold = { family = "MesloLGLDZ Nerd Font Mono", style = "Bold" } +italic = { family = "MesloLGLDZ Nerd Font Mono", style = "Italic" } diff --git a/configs/alacritty/theme.toml b/configs/alacritty/theme.toml deleted file mode 100644 index bd8fa4bf..00000000 --- a/configs/alacritty/theme.toml +++ /dev/null @@ -1,2 +0,0 @@ -# Leave this file as-is to allow omakub to swap themes system wide -import = [ "~/.local/share/omakub/themes/alacritty/tokyo-night.toml" ] diff --git a/configs/bashrc b/configs/bashrc index 96291d47..6606211c 100644 --- a/configs/bashrc +++ b/configs/bashrc @@ -2,4 +2,4 @@ source ~/.local/share/omakub/defaults/bash/rc # Editor used by CLI export EDITOR="nvim" -export SUDO_EDITOR="nvim" +export SUDO_EDITOR="$EDITOR" diff --git a/configs/neovim/transparency.lua b/configs/neovim/transparency.lua index a7717fc6..d0090f07 100644 --- a/configs/neovim/transparency.lua +++ b/configs/neovim/transparency.lua @@ -1,22 +1,45 @@ -- transparent background -vim.api.nvim_set_hl(0, 'Normal', { bg = 'none' }) -vim.api.nvim_set_hl(0, 'NormalFloat', { bg = 'none' }) -vim.api.nvim_set_hl(0, 'FloatBorder', { bg = 'none' }) -vim.api.nvim_set_hl(0, 'Pmenu', { bg = 'none' }) -vim.api.nvim_set_hl(0, 'Terminal', { bg = 'none' }) -vim.api.nvim_set_hl(0, 'EndOfBuffer', { bg = 'none' }) -vim.api.nvim_set_hl(0, 'FoldColumn', { bg = 'none' }) -vim.api.nvim_set_hl(0, 'Folded', { bg = 'none' }) -vim.api.nvim_set_hl(0, 'SignColumn', { bg = 'none' }) +vim.api.nvim_set_hl(0, "Normal", { bg = "none" }) +vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" }) +vim.api.nvim_set_hl(0, "FloatBorder", { bg = "none" }) +vim.api.nvim_set_hl(0, "Pmenu", { bg = "none" }) +vim.api.nvim_set_hl(0, "Terminal", { bg = "none" }) +vim.api.nvim_set_hl(0, "EndOfBuffer", { bg = "none" }) +vim.api.nvim_set_hl(0, "FoldColumn", { bg = "none" }) +vim.api.nvim_set_hl(0, "Folded", { bg = "none" }) +vim.api.nvim_set_hl(0, "SignColumn", { bg = "none" }) +vim.api.nvim_set_hl(0, "NormalNC", { bg = "none" }) +vim.api.nvim_set_hl(0, "WhichKeyFloat", { bg = "none" }) +vim.api.nvim_set_hl(0, "TelescopeBorder", { bg = "none" }) +vim.api.nvim_set_hl(0, "TelescopeNormal", { bg = "none" }) +vim.api.nvim_set_hl(0, "TelescopePromptBorder", { bg = "none" }) +vim.api.nvim_set_hl(0, "TelescopePromptTitle", { bg = "none" }) -- transparent background for neotree -vim.api.nvim_set_hl(0, 'NeoTreeNormal', { bg = 'none' }) -vim.api.nvim_set_hl(0, 'NeoTreeNormalNC', { bg = 'none' }) -vim.api.nvim_set_hl(0, 'NeoTreeVertSplit', { bg = 'none' }) -vim.api.nvim_set_hl(0, 'NeoTreeWinSeparator', { bg = 'none' }) -vim.api.nvim_set_hl(0, 'NeoTreeEndOfBuffer', { bg = 'none' }) +vim.api.nvim_set_hl(0, "NeoTreeNormal", { bg = "none" }) +vim.api.nvim_set_hl(0, "NeoTreeNormalNC", { bg = "none" }) +vim.api.nvim_set_hl(0, "NeoTreeVertSplit", { bg = "none" }) +vim.api.nvim_set_hl(0, "NeoTreeWinSeparator", { bg = "none" }) +vim.api.nvim_set_hl(0, "NeoTreeEndOfBuffer", { bg = "none" }) -- transparent background for nvim-tree -vim.api.nvim_set_hl(0, 'NvimTreeNormal', { bg = 'none' }) -vim.api.nvim_set_hl(0, 'NvimTreeVertSplit', { bg = 'none' }) -vim.api.nvim_set_hl(0, 'NvimTreeEndOfBuffer', { bg = 'none' }) +vim.api.nvim_set_hl(0, "NvimTreeNormal", { bg = "none" }) +vim.api.nvim_set_hl(0, "NvimTreeVertSplit", { bg = "none" }) +vim.api.nvim_set_hl(0, "NvimTreeEndOfBuffer", { bg = "none" }) + +-- transparent notify background +vim.api.nvim_set_hl(0, "NotifyINFOBody", { bg = "none" }) +vim.api.nvim_set_hl(0, "NotifyERRORBody", { bg = "none" }) +vim.api.nvim_set_hl(0, "NotifyWARNBody", { bg = "none" }) +vim.api.nvim_set_hl(0, "NotifyTRACEBody", { bg = "none" }) +vim.api.nvim_set_hl(0, "NotifyDEBUGBody", { bg = "none" }) +vim.api.nvim_set_hl(0, "NotifyINFOTitle", { bg = "none" }) +vim.api.nvim_set_hl(0, "NotifyERRORTitle", { bg = "none" }) +vim.api.nvim_set_hl(0, "NotifyWARNTitle", { bg = "none" }) +vim.api.nvim_set_hl(0, "NotifyTRACETitle", { bg = "none" }) +vim.api.nvim_set_hl(0, "NotifyDEBUGTitle", { bg = "none" }) +vim.api.nvim_set_hl(0, "NotifyINFOBorder", { bg = "none" }) +vim.api.nvim_set_hl(0, "NotifyERRORBorder", { bg = "none" }) +vim.api.nvim_set_hl(0, "NotifyWARNBorder", { bg = "none" }) +vim.api.nvim_set_hl(0, "NotifyTRACEBorder", { bg = "none" }) +vim.api.nvim_set_hl(0, "NotifyDEBUGBorder", { bg = "none" }) diff --git a/themes/typora/ia_typora.css b/configs/typora/ia_typora.css similarity index 100% rename from themes/typora/ia_typora.css rename to configs/typora/ia_typora.css diff --git a/themes/typora/ia_typora_night.css b/configs/typora/ia_typora_night.css similarity index 100% rename from themes/typora/ia_typora_night.css rename to configs/typora/ia_typora_night.css diff --git a/configs/zellij.kdl b/configs/zellij.kdl index 5554b70e..8c761c0b 100644 --- a/configs/zellij.kdl +++ b/configs/zellij.kdl @@ -1,2 +1,3 @@ theme "tokyo-night" default_layout "compact" +on_force_close "quit" diff --git a/defaults/alacritty.toml b/defaults/alacritty.toml index 1fdbb6e3..f3c227c3 100644 --- a/defaults/alacritty.toml +++ b/defaults/alacritty.toml @@ -8,7 +8,7 @@ program = "zellij" padding.x = 16 padding.y = 14 decorations = "None" -opacity = 0.97 +opacity = 0.98 [keyboard] bindings = [ diff --git a/defaults/alacritty/btop.toml b/defaults/alacritty/btop.toml new file mode 100644 index 00000000..0170ebd0 --- /dev/null +++ b/defaults/alacritty/btop.toml @@ -0,0 +1,11 @@ +import = [ "~/.local/share/omakub/defaults/alacritty/pane.toml" ] + +[window] +dimensions.columns = 121 +dimensions.lines = 40 + +[colors] +[colors.primary] +foreground = '#ffffff' +background = '#000000' + diff --git a/defaults/alacritty/omakub.toml b/defaults/alacritty/omakub.toml new file mode 100644 index 00000000..cf5c4859 --- /dev/null +++ b/defaults/alacritty/omakub.toml @@ -0,0 +1,5 @@ +import = [ "~/.local/share/omakub/defaults/alacritty/pane.toml" ] + +[window] +dimensions.columns = 90 +dimensions.lines = 30 diff --git a/defaults/alacritty/pane.toml b/defaults/alacritty/pane.toml new file mode 100644 index 00000000..fa68811c --- /dev/null +++ b/defaults/alacritty/pane.toml @@ -0,0 +1,5 @@ +import = [ "~/.config/alacritty/theme.toml", "~/.config/alacritty/font.toml", "~/.config/alacritty/font-size.toml", "~/.local/share/omakub/defaults/alacritty.toml" ] + +[window] +padding.x = 30 +padding.y = 30 diff --git a/defaults/bash/aliases b/defaults/bash/aliases index 77b5b657..5232f64e 100644 --- a/defaults/bash/aliases +++ b/defaults/bash/aliases @@ -4,6 +4,8 @@ alias lsa='ls -a' alias lt='eza --tree --level=2 --long --icons --git' alias lta='lt -a' alias ff="fzf --preview 'batcat --style=numbers --color=always {}'" +alias fd='fdfind' +alias cd='z' # Directories alias ..='cd ..' @@ -16,6 +18,8 @@ alias g='git' alias d='docker' alias r='rails' alias bat='batcat' +alias lzg='lazygit' +alias lzd='lazydocker' # Git alias gcm='git commit -m' @@ -25,3 +29,10 @@ alias gcad='git commit -a --amend' # Compression compress() { tar -czf "${1%/}.tar.gz" "${1%/}"; } alias decompress="tar -xzf" + +# Convert webm files generated by the Gnome screenshot video recorder to mp4s that are more compatible +webm2mp4() { + input_file="$1" + output_file="${input_file%.webm}.mp4" + ffmpeg -i "$input_file" -c:v libx264 -preset slow -crf 22 -c:a aac -b:a 192k "$output_file" +} diff --git a/defaults/bash/init b/defaults/bash/init index 15ecc586..25fb3ffe 100644 --- a/defaults/bash/init +++ b/defaults/bash/init @@ -1,9 +1,12 @@ if command -v mise &> /dev/null; then eval "$(mise activate bash)" -else - gum confirm "You're missing mise (replacement for rbenv + nodenv). Install now?" && \ - source $OMAKUB_PATH/install/mise.sh fi -eval "$(zoxide init bash)" -source /usr/share/doc/fzf/examples/key-bindings.bash +if command -v zoxide &> /dev/null; then + eval "$(zoxide init bash)" +fi + +if command -v fzf &> /dev/null; then + source /usr/share/bash-completion/completions/fzf + source /usr/share/doc/fzf/examples/key-bindings.bash +fi diff --git a/defaults/bash/prompt b/defaults/bash/prompt index 2546dfb5..3a52ba75 100644 --- a/defaults/bash/prompt +++ b/defaults/bash/prompt @@ -1,5 +1,7 @@ +# Technicolor dreams force_color_prompt=yes color_prompt=yes +# Simple prompt with path in the window/pane title and carat for typing line PS1=$'\uf0a9 ' PS1="\[\e]0;\w\a\]$PS1" diff --git a/defaults/bash/shell b/defaults/bash/shell index 350ab734..50754396 100644 --- a/defaults/bash/shell +++ b/defaults/bash/shell @@ -8,7 +8,7 @@ HISTFILESIZE="${HISTSIZE}" source /usr/share/bash-completion/bash_completion # Set complete path -export PATH="./bin:$HOME/.local/bin:$HOME/.local/share/omakub/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin" +export PATH="./bin:$HOME/.local/bin:$HOME/.local/share/omakub/bin:$PATH" set +h export OMAKUB_PATH="/home/$USER/.local/share/omakub" diff --git a/defaults/xcompose b/defaults/xcompose index 49e1539d..fbf76668 100644 --- a/defaults/xcompose +++ b/defaults/xcompose @@ -17,3 +17,4 @@ include "%L" : "πŸŽ‰" # xellebrate <1> : "πŸ’―" # 100% : "πŸ₯‚" # toast +

: "πŸ™" # pray diff --git a/first_run_choices.sh b/first_run_choices.sh new file mode 100644 index 00000000..dc6964c7 --- /dev/null +++ b/first_run_choices.sh @@ -0,0 +1,11 @@ +OPTIONAL_APPS=("1password" "Spotify" "Zoom" "Dropbox") +DEFAULT_OPTIONAL_APPS='1password,Spotify,Zoom' +export OMAKUB_FIRST_RUN_OPTIONAL_APPS=$(gum choose "${OPTIONAL_APPS[@]}" --no-limit --selected $DEFAULT_OPTIONAL_APPS --height 7 --header "Select optional apps" | tr ' ' '-') + +AVAILABLE_LANGUAGES=("Ruby on Rails" "Node.js" "Go" "PHP" "Python" "Elixir" "Rust" "Java") +SELECTED_LANGUAGES="Ruby on Rails","Node.js" +export OMAKUB_FIRST_RUN_LANGUAGES=$(gum choose "${AVAILABLE_LANGUAGES[@]}" --no-limit --selected "$SELECTED_LANGUAGES" --height 10 --header "Select programming languages") + +AVAILABLE_DBS=("MySQL" "Redis" "PostgreSQL") +SELECTED_DBS="MySQL,Redis" +export OMAKUB_FIRST_RUN_DBS=$(gum choose "${AVAILABLE_DBS[@]}" --no-limit --selected "$SELECTED_DBS" --height 5 --header "Select databases (runs in Docker)") diff --git a/fonts/alacritty/fira-mono.toml b/fonts/alacritty/fira-mono.toml deleted file mode 100644 index c1b1def6..00000000 --- a/fonts/alacritty/fira-mono.toml +++ /dev/null @@ -1,4 +0,0 @@ -[font] -normal = { family = "FiraMono Nerd Font", style = "Regular" } -bold = { family = "FiraMono Nerd Font", style = "Bold" } -italic = { family = "FiraMono Nerd Font", style = "Italic" } diff --git a/fonts/alacritty/jetbrains-mono.toml b/fonts/alacritty/jetbrains-mono.toml deleted file mode 100644 index 349a43ec..00000000 --- a/fonts/alacritty/jetbrains-mono.toml +++ /dev/null @@ -1,4 +0,0 @@ -[font] -normal = { family = "JetBrainsMono Nerd Font", style = "Regular" } -bold = { family = "JetBrainsMono Nerd Font", style = "Bold" } -italic = { family = "JetBrainsMono Nerd Font", style = "Italic" } diff --git a/fonts/alacritty/meslo.toml b/fonts/alacritty/meslo.toml deleted file mode 100644 index a70953fa..00000000 --- a/fonts/alacritty/meslo.toml +++ /dev/null @@ -1,4 +0,0 @@ -[font] -normal = { family = "MesloLGLDZ Nerd Font", style = "Regular" } -bold = { family = "MesloLGLDZ Nerd Font", style = "Bold" } -italic = { family = "MesloLGLDZ Nerd Font", style = "Italic" } diff --git a/help/commands.md b/help/commands.md deleted file mode 100644 index 99692bb6..00000000 --- a/help/commands.md +++ /dev/null @@ -1,16 +0,0 @@ -# Commands - -Omakub installs a host of modern commands that improve on the Linux stables. You should eventually read up on all eza, fzf, zoxide, bat has to offer.But here are the most important ways. - -| Command | Function | -| ------------------------- | ------------------------------------------- | -| lt | Show nested files and directories | -| ff | Fuzzy find files from current dir | -| .. | Go up one directory from current | -| ... | Go up two directories from current | -| .... | Go up three directories from current | -| z

| Quick jump to nested dir you've used before | -| n . | Open neovim with current dir | -| g | Git | -| compress | Compress named file/dir as tar.gz | -| decompress | Decompress tar.gz file | diff --git a/help/hotkeys.md b/help/hotkeys.md deleted file mode 100644 index 4b59d52e..00000000 --- a/help/hotkeys.md +++ /dev/null @@ -1,95 +0,0 @@ -# Hotkeys - -The joy of Linux flows from the keyboard. Training yourself to navigate and command as much of the operating system through hotkeys is the path to mastery of your machine. - -## Navigating - -| Hotkey | Function | -| ----------------------- | --------------------- | -| Super + Space | Type app to launch | -| Super + W | Close app | -| Super + 1/2/3/4 | Jump to workspace | -| Shift + Super + 1/2/3/4 | Move app to workspace | -| Alt + 1/2/3/.. | Jump to dock app | -| Ctrl + 1/2/3/.. | Jump to browser tab | - -## Tiling - -| Hotkey | Function | -| ------------------- | --------------------------- | -| F11 | Go full screen | -| Shift + F11 | Go full screen w/ title bar | -| Super + Left arrow | Fill left half | -| Super + Right arrow | Fill right half | -| Super + Up arrow | Fill full screen | -| Super + T | Tiling overlay | -| Super + T W S | Fill center vertical | -| Super + T Q A | Fill left vertical | -| Super + T E D | Fill right vertical | -| Super + T Q Q | Fill upper left | -| Super + T A A | Fill lower left | - -## Terminal - -| Hotkey | Function | -| ------------------- | --------------------------- | -| Ctrl + P R | New vertical pane | -| Ctrl + P D | New horizontal pane | -| Alt + Arrow | Navigate panes (and tabs) | -| Alt + = | Expand pane | -| Alt + - | Shrink pane | -| Ctrl + T N | New tab | -| Ctrl + T R | Rename tab | -| Ctrl + O D | Suspend session | -| Ctrl + S | Scroll mode (use pgup/down) | -| Ctrl + R | Reveal command history | - -## Neovim (w/ lazyvim) - -### Navigation - -| Hotkey | Function | -| ------------------------ | ------------------------------- | -| Space | Show command options | -| Space Space | Open file via fuzzy search | -| Space E | Toggle sidebar | -| Space G G | Show git controls | -| Space S G | Search file content | -| Ctrl + W W | Jump between sidebar and editor | -| Ctrl + Left/right arrow | Change size of sidebar | -| [ B | Go to left file tab | -| ] B | Go to right file tab | -| Space B D | Close file tab | - -### While in sidebar - -| Hotkey | Function | -| ------------------------ | ------------------------------- | -| A | Add new file in parent dir | -| Shift + A | Add new subdir in parent dir | -| D | Delete highlighted file/dir | -| M | Move highlighted file/dir | -| R | Rename highlighted file/dir | -| ? | Show help for all commands | - -## Quick Emojis - -| Hotkey | EM | Clue | -| ------------ | -- | ---------- | -| CapsLock M S | πŸ˜€ | smile | -| CapsLock M C | πŸ˜‚ | cry | -| CapsLock M L | 😍 | love | -| CapsLock M V | ✌️" | victory | -| CapsLock M H | ❀️" | heart | -| CapsLock M Y | πŸ‘ | yes | -| CapsLock M N | πŸ‘Ž | no | -| CapsLock M F | πŸ–• | fuck | -| CapsLock M W | 🀞 | wish | -| CapsLock M R | 🀘 | rock | -| CapsLock M K | 😘 | kiss | -| CapsLock M E | πŸ™„ | eyeroll | -| CapsLock M D | 🀀 | droll | -| CapsLock M M | πŸ’° | money | -| CapsLock M X | πŸŽ‰ | xellebrate | -| CapsLock M 1 | πŸ’― | 100% | -| CapsLock M T | πŸ₯‚ | toast | diff --git a/help/tactile.md b/help/tactile.md deleted file mode 100644 index 084ccc79..00000000 --- a/help/tactile.md +++ /dev/null @@ -1,27 +0,0 @@ -# Tactile - -Tactile is a tool for tiling windows on larger displays. It's not a tiling windows manager, like i3 or Hyprland, -so it works alongside the regular Ubuntu Gnome window system that anyone coming from Windows or Mac would be -familiar with. By default, Omakub has configured it with 6 slots, using one main column, and two wings. This is -a great setup for having your editor in the center, flanked by docs and browser and AI helpers and what else. - -You don't need or probably even want to use this when using a smaller laptop, like a Framework 13. On a screen -like that, you're better off either using your applications full-screen and switching between workspaces, or -just using the two-way default Gnome tiling. Super+ and Super+ controls the default -Gnome window tiler, putting the active application on either the left or the right. Super+ will -maximize the application. And, finally, F11 takes an application full screen. - -But when you are on that big screen, use Tactile with Super+T to bring up the tiling overview. Then press W+S -to make the application take up the two center slots. You can also do Super+Q+Q to take up just the Q slot in -the upper left slot. Or even Super+Q+S to take up the four slots on the left of the screen. - -## Hotkeys - -| Hotkey | Function | -| ------------- | -------------------- | -| Super+T | Tiling overlay | -| Super+W+S | Fill center vertical | -| Super+Q+A | Fill left vertical | -| Super+E+D | Fill right vertical | -| Super+Q+Q | Fill upper left | -| Super+A+A | Fill lower left | diff --git a/help/zellij.md b/help/zellij.md deleted file mode 100644 index f8cf568f..00000000 --- a/help/zellij.md +++ /dev/null @@ -1,3 +0,0 @@ -# Zellij - - diff --git a/install.sh b/install.sh index 0a712edc..9a2a499a 100644 --- a/install.sh +++ b/install.sh @@ -1,26 +1,31 @@ -# Be fancy -source ~/.local/share/omakub/ascii.sh - # Exit immediately if a command exits with a non-zero status -set -e +# set -e + +# Desktop software and tweaks will only be installed if we're running Gnome +RUNNING_GNOME=$([[ "$XDG_CURRENT_DESKTOP" == *"GNOME"* ]] && echo true || echo false) -# Needed for all installers -sudo apt update -y -sudo apt install -y curl git unzip +if $RUNNING_GNOME; then + # 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 -# 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 + echo "Get ready to make a few choices..." + source ~/.local/share/omakub/install/terminal/required/app-gum.sh >/dev/null + source ~/.local/share/omakub/first_run_choices.sh -# Run installers -for script in ~/.local/share/omakub/install/*.sh; do source $script; done + echo "Installing terminal and desktop tools.." +else + echo "Only installing terminal tools..." +fi -# Upgrade everything that might ask for a reboot last -sudo apt upgrade -y +# Install terminal tools +source ~/.local/share/omakub/install/terminal.sh -# 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 +if $RUNNING_GNOME; then + # Install desktop tools and tweaks + source ~/.local/share/omakub/install/desktop.sh -# Logout to pickup changes -gum confirm "Ready to logout for all settings to take effect?" && gnome-session-quit --logout --no-prompt + # 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 +fi diff --git a/install/app-1password.sh b/install/app-1password.sh deleted file mode 100644 index 3e02ff31..00000000 --- a/install/app-1password.sh +++ /dev/null @@ -1,5 +0,0 @@ -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 - diff --git a/install/app-alacritty.sh b/install/app-alacritty.sh deleted file mode 100644 index f3133800..00000000 --- a/install/app-alacritty.sh +++ /dev/null @@ -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 diff --git a/install/app-gum.sh b/install/app-gum.sh deleted file mode 100644 index 589f11b8..00000000 --- a/install/app-gum.sh +++ /dev/null @@ -1,7 +0,0 @@ -# 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 -wget -O gum.deb "https://github.com/charmbracelet/gum/releases/latest/download/gum_${GUM_VERSION}_amd64.deb" -sudo apt install -y ./gum.deb -rm gum.deb -cd - diff --git a/install/app-neovim.sh b/install/app-neovim.sh deleted file mode 100644 index 1548e636..00000000 --- a/install/app-neovim.sh +++ /dev/null @@ -1,11 +0,0 @@ -sudo apt install -y neovim - -if [ ! -d "$HOME/.config/nvim" ]; then - git clone https://github.com/LazyVim/starter ~/.config/nvim - 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 - - # Enable default extras - cp ~/.local/share/omakub/configs/neovim/lazyvim.json ~/.config/nvim/lazyvim.json -fi diff --git a/install/apps-web.sh b/install/apps-web.sh deleted file mode 100644 index e44fc85f..00000000 --- a/install/apps-web.sh +++ /dev/null @@ -1 +0,0 @@ -for script in ~/.local/share/omakub/web-apps/*.sh; do source $script; done diff --git a/install/desktop.sh b/install/desktop.sh new file mode 100644 index 00000000..090f70cc --- /dev/null +++ b/install/desktop.sh @@ -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 diff --git a/install/desktop/a-flatpak.sh b/install/desktop/a-flatpak.sh new file mode 100644 index 00000000..c49b421e --- /dev/null +++ b/install/desktop/a-flatpak.sh @@ -0,0 +1,3 @@ +sudo apt install -y flatpak +sudo apt install -y gnome-software-plugin-flatpak +sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo diff --git a/install/desktop/app-alacritty.sh b/install/desktop/app-alacritty.sh new file mode 100644 index 00000000..49577339 --- /dev/null +++ b/install/desktop/app-alacritty.sh @@ -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 diff --git a/install/app-chrome.sh b/install/desktop/app-chrome.sh similarity index 55% rename from install/app-chrome.sh rename to install/desktop/app-chrome.sh index d2ef64ec..97e1361a 100644 --- a/install/app-chrome.sh +++ b/install/desktop/app-chrome.sh @@ -1,5 +1,7 @@ -cd ~/Downloads +# 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 rm google-chrome-stable_current_amd64.deb +xdg-settings set default-web-browser google-chrome.desktop cd - diff --git a/install/app-flameshot.sh b/install/desktop/app-flameshot.sh similarity index 100% rename from install/app-flameshot.sh rename to install/desktop/app-flameshot.sh diff --git a/install/desktop/app-gnome-sushi.sh b/install/desktop/app-gnome-sushi.sh new file mode 100644 index 00000000..e237dbd0 --- /dev/null +++ b/install/desktop/app-gnome-sushi.sh @@ -0,0 +1,2 @@ +# Gives you previews in the file manager when pressing space +sudo apt install -y gnome-sushi diff --git a/install/app-gnome-tweak-tool.sh b/install/desktop/app-gnome-tweak-tool.sh similarity index 100% rename from install/app-gnome-tweak-tool.sh rename to install/desktop/app-gnome-tweak-tool.sh diff --git a/install/app-localsend.sh b/install/desktop/app-localsend.sh similarity index 95% rename from install/app-localsend.sh rename to install/desktop/app-localsend.sh index 14cdefa8..56b571ec 100644 --- a/install/app-localsend.sh +++ b/install/desktop/app-localsend.sh @@ -1,4 +1,4 @@ -cd ~/Downloads +cd /tmp 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 -y ./localsend.deb diff --git a/install/desktop/app-obsidian.sh b/install/desktop/app-obsidian.sh new file mode 100644 index 00000000..fef1d90f --- /dev/null +++ b/install/desktop/app-obsidian.sh @@ -0,0 +1,2 @@ +# Obsidian is a multi-platform note taking application. See https://obsidian.md +flatpak install -y flathub md.obsidian.Obsidian diff --git a/install/app-pinta.sh b/install/desktop/app-pinta.sh similarity index 100% rename from install/app-pinta.sh rename to install/desktop/app-pinta.sh diff --git a/install/app-signal.sh b/install/desktop/app-signal.sh similarity index 93% rename from install/app-signal.sh rename to install/desktop/app-signal.sh index c35b7894..924aec48 100644 --- a/install/app-signal.sh +++ b/install/desktop/app-signal.sh @@ -2,5 +2,6 @@ wget -qO- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor >signa 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 +rm signal-desktop-keyring.gpg sudo apt update sudo apt install -y signal-desktop diff --git a/install/app-typora.sh b/install/desktop/app-typora.sh similarity index 60% rename from install/app-typora.sh rename to install/desktop/app-typora.sh index f61cf8b8..ee0fc47c 100644 --- a/install/app-typora.sh +++ b/install/desktop/app-typora.sh @@ -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/ diff --git a/install/app-vlc.sh b/install/desktop/app-vlc.sh similarity index 100% rename from install/app-vlc.sh rename to install/desktop/app-vlc.sh diff --git a/install/app-vscode.sh b/install/desktop/app-vscode.sh similarity index 78% rename from install/app-vscode.sh rename to install/desktop/app-vscode.sh index 531d4370..2c2e349a 100644 --- a/install/app-vscode.sh +++ b/install/desktop/app-vscode.sh @@ -1,4 +1,4 @@ -cd ~/Downloads +cd /tmp wget -O code.deb 'https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64' sudo apt install -y ./code.deb rm code.deb @@ -9,6 +9,3 @@ cp ~/.local/share/omakub/configs/vscode.json ~/.config/Code/User/settings.json # Install default supported themes code --install-extension enkia.tokyo-night - -# Install default language extensions -code --install-extension golang.go diff --git a/install/app-xournalpp.sh b/install/desktop/app-xournalpp.sh similarity index 100% rename from install/app-xournalpp.sh rename to install/desktop/app-xournalpp.sh diff --git a/install/desktop/applications.sh b/install/desktop/applications.sh new file mode 100644 index 00000000..c4ccf6cb --- /dev/null +++ b/install/desktop/applications.sh @@ -0,0 +1 @@ +for script in ~/.local/share/omakub/applications/*.sh; do source $script; done diff --git a/install/desktop/fonts.sh b/install/desktop/fonts.sh new file mode 100644 index 00000000..035f331d --- /dev/null +++ b/install/desktop/fonts.sh @@ -0,0 +1,15 @@ +mkdir -p ~/.local/share/fonts + +cd /tmp +wget https://github.com/ryanoasis/nerd-fonts/releases/latest/download/CascadiaMono.zip +unzip CascadiaMono.zip -d CascadiaFont +cp CascadiaFont/*.ttf ~/.local/share/fonts +rm -rf CascadiaMono.zip CascadiaFont + +wget -O iafonts.zip https://github.com/iaolo/iA-Fonts/archive/refs/heads/master.zip +unzip iafonts.zip -d iaFonts +cp iaFonts/iA-Fonts-master/iA\ Writer\ Mono/Static/iAWriterMonoS-*.ttf ~/.local/share/fonts +rm -rf iafonts.zip iaFonts + +fc-cache +cd - diff --git a/install/desktop/optional/app-1password.sh b/install/desktop/optional/app-1password.sh new file mode 100755 index 00000000..f6cb80e9 --- /dev/null +++ b/install/desktop/optional/app-1password.sh @@ -0,0 +1,18 @@ +# Install 1password and 1password-cli single script +curl -sS https://downloads.1password.com/linux/keys/1password.asc | \ +sudo gpg --dearmor --output /usr/share/keyrings/1password-archive-keyring.gpg + +# Add apt repository +echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/1password-archive-keyring.gpg] https://downloads.1password.com/linux/debian/$(dpkg --print-architecture) stable main" | +sudo tee /etc/apt/sources.list.d/1password.list + +# Add the debsig-verify policy +sudo mkdir -p /etc/debsig/policies/AC2D62742012EA22/ +curl -sS https://downloads.1password.com/linux/debian/debsig/1password.pol | \ +sudo tee /etc/debsig/policies/AC2D62742012EA22/1password.pol +sudo mkdir -p /usr/share/debsig/keyrings/AC2D62742012EA22 +curl -sS https://downloads.1password.com/linux/keys/1password.asc | \ +sudo gpg --dearmor --output /usr/share/debsig/keyrings/AC2D62742012EA22/debsig.gpg + +# Install 1Password & 1password-cli +sudo apt update && sudo apt install -y 1password 1password-cli \ No newline at end of file diff --git a/install/desktop/optional/app-audacity.sh b/install/desktop/optional/app-audacity.sh new file mode 100644 index 00000000..0b65d989 --- /dev/null +++ b/install/desktop/optional/app-audacity.sh @@ -0,0 +1 @@ +flatpak install -y flathub org.audacityteam.Audacity diff --git a/install/desktop/optional/app-brave.sh b/install/desktop/optional/app-brave.sh new file mode 100644 index 00000000..21d8e772 --- /dev/null +++ b/install/desktop/optional/app-brave.sh @@ -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 diff --git a/install/desktop/optional/app-dropbox.sh b/install/desktop/optional/app-dropbox.sh new file mode 100644 index 00000000..7943fb50 --- /dev/null +++ b/install/desktop/optional/app-dropbox.sh @@ -0,0 +1,2 @@ +# Sync files across machines using https://dropbox.com +sudo apt install -y nautilus-dropbox >/dev/null diff --git a/install/desktop/optional/app-obs-studio.sh b/install/desktop/optional/app-obs-studio.sh new file mode 100644 index 00000000..40e3df2c --- /dev/null +++ b/install/desktop/optional/app-obs-studio.sh @@ -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 diff --git a/install/desktop/optional/app-rubymine.sh b/install/desktop/optional/app-rubymine.sh new file mode 100644 index 00000000..e5336a7f --- /dev/null +++ b/install/desktop/optional/app-rubymine.sh @@ -0,0 +1 @@ +sudo snap install rubymine --classic diff --git a/install/app-spotify.sh b/install/desktop/optional/app-spotify.sh similarity index 84% rename from install/app-spotify.sh rename to install/desktop/optional/app-spotify.sh index 662416cc..ceba0fc6 100644 --- a/install/app-spotify.sh +++ b/install/desktop/optional/app-spotify.sh @@ -1,4 +1,5 @@ +# 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 +sudo apt update -y sudo apt install -y spotify-client diff --git a/install/desktop/optional/app-steam.sh b/install/desktop/optional/app-steam.sh new file mode 100755 index 00000000..491382c8 --- /dev/null +++ b/install/desktop/optional/app-steam.sh @@ -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 - diff --git a/install/optional/app-virtualbox.sh b/install/desktop/optional/app-virtualbox.sh similarity index 100% rename from install/optional/app-virtualbox.sh rename to install/desktop/optional/app-virtualbox.sh diff --git a/install/desktop/optional/app-windows.sh b/install/desktop/optional/app-windows.sh new file mode 100644 index 00000000..31399d1b --- /dev/null +++ b/install/desktop/optional/app-windows.sh @@ -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 diff --git a/install/app-zoom.sh b/install/desktop/optional/app-zoom.sh similarity index 68% rename from install/app-zoom.sh rename to install/desktop/optional/app-zoom.sh index 57eec373..a773e58d 100644 --- a/install/app-zoom.sh +++ b/install/desktop/optional/app-zoom.sh @@ -1,4 +1,5 @@ -cd ~/Downloads +# 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 rm zoom_amd64.deb diff --git a/install/desktop/select-optional-apps.sh b/install/desktop/select-optional-apps.sh new file mode 100644 index 00000000..a5edf13e --- /dev/null +++ b/install/desktop/select-optional-apps.sh @@ -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 diff --git a/install/desktop/set-app-grid.sh b/install/desktop/set-app-grid.sh new file mode 100644 index 00000000..9907fa3d --- /dev/null +++ b/install/desktop/set-app-grid.sh @@ -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']" diff --git a/install/desktop/set-dock.sh b/install/desktop/set-dock.sh new file mode 100644 index 00000000..a0275ea6 --- /dev/null +++ b/install/desktop/set-dock.sh @@ -0,0 +1,49 @@ +# Favorite apps for dock +apps=( + "google-chrome.desktop" + "Alacritty.desktop" + "Neovim.desktop" + "code.desktop" + "WhatsApp.desktop" + "signal-desktop.desktop" + "Zoom.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 +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" +) + +# Check if a .desktop file exists for each app +for app in "${apps[@]}"; do + for dir in "${desktop_dirs[@]}"; do + if [ -f "$dir/$app" ]; then + installed_apps+=("$app") + break + fi + done +done + +# Convert the array to a format suitable for gsettings +favorites_list=$(printf "'%s'," "${installed_apps[@]}") +favorites_list="[${favorites_list%,}]" + +# Set the favorite apps +gsettings set org.gnome.shell favorite-apps "$favorites_list" diff --git a/install/set-emojis.sh b/install/desktop/set-emojis.sh similarity index 100% rename from install/set-emojis.sh rename to install/desktop/set-emojis.sh diff --git a/install/set-framework-text-scaling.sh b/install/desktop/set-framework-text-scaling.sh similarity index 100% rename from install/set-framework-text-scaling.sh rename to install/desktop/set-framework-text-scaling.sh diff --git a/install/set-gnome-extensions.sh b/install/desktop/set-gnome-extensions.sh similarity index 65% rename from install/set-gnome-extensions.sh rename to install/desktop/set-gnome-extensions.sh index fc3acc69..019d5453 100644 --- a/install/set-gnome-extensions.sh +++ b/install/desktop/set-gnome-extensions.sh @@ -8,19 +8,32 @@ 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 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 @@ -59,3 +72,19 @@ gsettings set org.gnome.shell.extensions.space-bar.behavior smart-workspace-name gsettings set org.gnome.shell.extensions.space-bar.shortcuts enable-activate-workspace-shortcuts false 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 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)' + +# 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' diff --git a/install/set-gnome-hotkeys.sh b/install/desktop/set-gnome-hotkeys.sh similarity index 97% rename from install/set-gnome-hotkeys.sh rename to install/desktop/set-gnome-hotkeys.sh index 6783777b..02e3569f 100644 --- a/install/set-gnome-hotkeys.sh +++ b/install/desktop/set-gnome-hotkeys.sh @@ -4,6 +4,9 @@ gsettings set org.gnome.desktop.wm.keybindings close "['w']" # Make it easy to maximize like you can fill left/right gsettings set org.gnome.desktop.wm.keybindings maximize "['Up']" +# Make it easy to resize undecorated windows +gsettings set org.gnome.desktop.wm.keybindings begin-resize "['BackSpace']" + # For keyboards that only have a start/stop button for music, like Logitech MX Keys Mini gsettings set org.gnome.settings-daemon.plugins.media-keys next "['AudioPlay']" diff --git a/install/desktop/set-gnome-settings.sh b/install/desktop/set-gnome-settings.sh new file mode 100644 index 00000000..7aceb5b7 --- /dev/null +++ b/install/desktop/set-gnome-settings.sh @@ -0,0 +1,8 @@ +# 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' + +# Reveal week numbers in the Gnome calendar +gsettings set org.gnome.desktop.calendar show-weekdate true diff --git a/install/desktop/set-gnome-theme.sh b/install/desktop/set-gnome-theme.sh new file mode 100644 index 00000000..68891112 --- /dev/null +++ b/install/desktop/set-gnome-theme.sh @@ -0,0 +1 @@ +source ~/.local/share/omakub/themes/tokyo-night/gnome.sh diff --git a/install/ulauncher.sh b/install/desktop/ulauncher.sh similarity index 100% rename from install/ulauncher.sh rename to install/desktop/ulauncher.sh diff --git a/install/fonts.sh b/install/fonts.sh deleted file mode 100644 index d536bf52..00000000 --- a/install/fonts.sh +++ /dev/null @@ -1,33 +0,0 @@ -mkdir -p ~/.local/share/fonts - -cd ~/Downloads -wget https://github.com/ryanoasis/nerd-fonts/releases/latest/download/CascadiaMono.zip -unzip CascadiaMono.zip -d CascadiaFont -cp CascadiaFont/*.ttf ~/.local/share/fonts -rm -rf CascadiaMono.zip CascadiaFont - -wget https://github.com/ryanoasis/nerd-fonts/releases/latest/download/FiraMono.zip -unzip FiraMono.zip -d FiraMono -cp FiraMono/*.otf ~/.local/share/fonts -rm -rf FiraMono.zip FiraMono - -wget https://github.com/ryanoasis/nerd-fonts/releases/latest/download/JetBrainsMono.zip -unzip JetBrainsMono.zip -d JetBrainsMono -cp JetBrainsMono/*.ttf ~/.local/share/fonts -rm -rf JetBrainsMono.zip JetBrainsMono - -wget https://github.com/ryanoasis/nerd-fonts/releases/latest/download/Meslo.zip -unzip Meslo.zip -d Meslo -cp Meslo/*.ttf ~/.local/share/fonts -rm -rf Meslo.zip Meslo - -wget https://github.com/iaolo/iA-Fonts/archive/refs/heads/master.zip -unzip master.zip -d iaFonts -cp iaFonts/iA-Fonts-master/iA\ Writer\ Mono/Static/iAWriterMonoS-*.ttf ~/.local/share/fonts -rm -rf master.zip iaFonts - -fc-cache -cd - - -# Set Cascadia Mono as the default -gsettings set org.gnome.desktop.interface monospace-font-name 'CaskaydiaMono Nerd Font 10' diff --git a/install/optional/app-dropbox.sh b/install/optional/app-dropbox.sh deleted file mode 100644 index ed356b47..00000000 --- a/install/optional/app-dropbox.sh +++ /dev/null @@ -1,2 +0,0 @@ -sudo apt install -y nautilus-dropbox -gtk-launch dropbox.desktop diff --git a/install/set-dock.sh b/install/set-dock.sh deleted file mode 100644 index cb405454..00000000 --- a/install/set-dock.sh +++ /dev/null @@ -1,2 +0,0 @@ -# Set default pinned applications (funny installer name to ensure it runs after all app installations!) -gsettings set org.gnome.shell favorite-apps "['google-chrome.desktop', 'Alacritty.desktop', 'code.desktop', 'WhatsApp.desktop', 'signal-desktop.desktop', 'spotify.desktop', 'typora.desktop', 'Zoom.desktop', 'pinta_pinta.desktop', 'com.github.xournalpp.xournalpp.desktop', '1password.desktop', 'org.gnome.Settings.desktop', 'org.gnome.Nautilus.desktop']" diff --git a/install/set-theme.sh b/install/set-theme.sh deleted file mode 100644 index 157a11a7..00000000 --- a/install/set-theme.sh +++ /dev/null @@ -1,2 +0,0 @@ -# Setup default theme -source ~/.local/share/omakub/themes/gnome/tokyo-night.sh diff --git a/install/terminal.sh b/install/terminal.sh new file mode 100644 index 00000000..94f5844b --- /dev/null +++ b/install/terminal.sh @@ -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 diff --git a/install/a-shell.sh b/install/terminal/a-shell.sh similarity index 63% rename from install/a-shell.sh rename to install/terminal/a-shell.sh index 32c6eb8e..1ccf8ea8 100644 --- a/install/a-shell.sh +++ b/install/terminal/a-shell.sh @@ -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 diff --git a/install/terminal/app-fastfetch.sh b/install/terminal/app-fastfetch.sh new file mode 100644 index 00000000..fcc1a5fb --- /dev/null +++ b/install/terminal/app-fastfetch.sh @@ -0,0 +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 diff --git a/install/app-github-cli.sh b/install/terminal/app-github-cli.sh similarity index 100% rename from install/app-github-cli.sh rename to install/terminal/app-github-cli.sh diff --git a/install/app-lazydocker.sh b/install/terminal/app-lazydocker.sh similarity index 96% rename from install/app-lazydocker.sh rename to install/terminal/app-lazydocker.sh index afe2191b..6f62afbb 100644 --- a/install/app-lazydocker.sh +++ b/install/terminal/app-lazydocker.sh @@ -1,4 +1,4 @@ -cd ~/Downloads +cd /tmp 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" tar -xf lazydocker.tar.gz lazydocker diff --git a/install/app-lazygit.sh b/install/terminal/app-lazygit.sh similarity index 96% rename from install/app-lazygit.sh rename to install/terminal/app-lazygit.sh index b038cc28..70f90fe5 100644 --- a/install/app-lazygit.sh +++ b/install/terminal/app-lazygit.sh @@ -1,4 +1,4 @@ -cd ~/Downloads +cd /tmp 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" tar -xf lazygit.tar.gz lazygit diff --git a/install/terminal/app-neovim.sh b/install/terminal/app-neovim.sh new file mode 100644 index 00000000..a5ea1a42 --- /dev/null +++ b/install/terminal/app-neovim.sh @@ -0,0 +1,33 @@ +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/ + + # 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 diff --git a/install/app-zellij.sh b/install/terminal/app-zellij.sh similarity index 69% rename from install/app-zellij.sh rename to install/terminal/app-zellij.sh index 50585af6..170b334e 100644 --- a/install/app-zellij.sh +++ b/install/terminal/app-zellij.sh @@ -1,10 +1,10 @@ -cd ~/Downloads +cd /tmp wget -O zellij.tar.gz "https://github.com/zellij-org/zellij/releases/latest/download/zellij-x86_64-unknown-linux-musl.tar.gz" tar -xf zellij.tar.gz zellij 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 diff --git a/install/apps-terminal.sh b/install/terminal/apps-terminal.sh similarity index 78% rename from install/apps-terminal.sh rename to install/terminal/apps-terminal.sh index 1dabba24..9ca622fa 100644 --- a/install/apps-terminal.sh +++ b/install/terminal/apps-terminal.sh @@ -1 +1 @@ -sudo apt install -y fzf ripgrep bat eza zoxide plocate btop apache2-utils +sudo apt install -y fzf ripgrep bat eza zoxide plocate btop apache2-utils fd-find diff --git a/install/docker.sh b/install/terminal/docker.sh similarity index 59% rename from install/docker.sh rename to install/terminal/docker.sh index 205e7c9a..c683c8fa 100644 --- a/install/docker.sh +++ b/install/terminal/docker.sh @@ -9,7 +9,3 @@ 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 - -sudo docker create --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 -sudo docker create --restart unless-stopped -p "127.0.0.1:6379:6379" --name=redis redis:7 -sudo docker create --restart unless-stopped -p "127.0.0.1:5432:5432" --name=postgres16 -e POSTGRES_HOST_AUTH_METHOD=trust postgres:16 diff --git a/install/libraries.sh b/install/terminal/libraries.sh similarity index 80% rename from install/libraries.sh rename to install/terminal/libraries.sh index 74b4c9c4..bbed439c 100644 --- a/install/libraries.sh +++ b/install/terminal/libraries.sh @@ -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 diff --git a/install/mise.sh b/install/terminal/mise.sh similarity index 82% rename from install/mise.sh rename to install/terminal/mise.sh index 18fb8224..9a7e3ebd 100644 --- a/install/mise.sh +++ b/install/terminal/mise.sh @@ -5,8 +5,3 @@ wget -qO - https://mise.jdx.dev/gpg-key.pub | gpg --dearmor | sudo tee /etc/apt/ echo "deb [signed-by=/etc/apt/keyrings/mise-archive-keyring.gpg arch=amd64] https://mise.jdx.dev/deb stable main" | sudo tee /etc/apt/sources.list.d/mise.list sudo apt update sudo apt install -y mise - -# Install default languages -mise use --global ruby@3.3 -mise use --global node@lts -mise use --global go@latest diff --git a/install/terminal/optional/app-ollama.sh b/install/terminal/optional/app-ollama.sh new file mode 100644 index 00000000..138ec502 --- /dev/null +++ b/install/terminal/optional/app-ollama.sh @@ -0,0 +1 @@ +curl -fsSL https://ollama.com/install.sh | sh diff --git a/install/terminal/required/app-gum.sh b/install/terminal/required/app-gum.sh new file mode 100644 index 00000000..b915eec9 --- /dev/null +++ b/install/terminal/required/app-gum.sh @@ -0,0 +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 -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 - diff --git a/install/terminal/select-dev-language.sh b/install/terminal/select-dev-language.sh new file mode 100644 index 00000000..08c5ee89 --- /dev/null +++ b/install/terminal/select-dev-language.sh @@ -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 diff --git a/install/terminal/select-dev-storage.sh b/install/terminal/select-dev-storage.sh new file mode 100644 index 00000000..3dcac1fb --- /dev/null +++ b/install/terminal/select-dev-storage.sh @@ -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 diff --git a/install/set-git.sh b/install/terminal/set-git.sh similarity index 100% rename from install/set-git.sh rename to install/terminal/set-git.sh diff --git a/migrations/1718359027.sh b/migrations/1718359027.sh new file mode 100644 index 00000000..72ed7327 --- /dev/null +++ b/migrations/1718359027.sh @@ -0,0 +1,71 @@ +# Catch 1.0.0 up to 1.1.0 + +sudo echo "Running upgrade migration..." + +# Change Zellij directory to be realized rather than a symlink +ZELLIJ_THEMES_DIR="$HOME/.config/zellij/themes" +if [ -L $ZELLIJ_THEMES_DIR ]; then + rm $ZELLIJ_THEMES_DIR + mkdir -p $ZELLIJ_THEMES_DIR + for dir in $OMAKUB_PATH/themes/*; do + if [ -d "$dir" ]; then + zellij_file="$dir/zellij.kdl" + dir_name=$(basename "$dir") + dest_file="$ZELLIJ_THEMES_DIR/$dir_name.kdl" + cp "$zellij_file" "$dest_file" + fi + done +fi + +# New neovim settings +mkdir -p ~/.config/nvim/plugin/after +cp $OMAKUB_PATH/configs/neovim/transparency.lua ~/.config/nvim/plugin/after/ +sed -i 's/checker = { enabled = true }/checker = { enabled = true, notify = false }/g' ~/.config/nvim/lua/config/lazy.lua +source ~/.local/share/omakub/applications/Neovim.sh + +# New font size setup +cp $OMAKUB_PATH/configs/alacritty/font-size.toml ~/.config/alacritty/ +cp ~/.config/alacritty/alacritty.toml ~/.config/alacritty/alacritty.toml.bak +cp $OMAKUB_PATH/configs/alacritty.toml ~/.config/alacritty/alacritty.toml +source $OMAKUB_PATH/install/desktop/set-framework-text-scaling.sh + +cp $OMAKUB_PATH/themes/tokyo-night/alacritty.toml ~/.config/alacritty/theme.toml +cp $OMAKUB_PATH/configs/alacritty/fonts/CaskaydiaMono.toml ~/.config/alacritty/font.toml + +# Set new Gnome settings +source $OMAKUB_PATH/install/desktop/set-gnome-settings.sh + +# Install new apps +source $OMAKUB_PATH/install/desktop/a-flatpak.sh +source $OMAKUB_PATH/install/desktop/app-gnome-sushi.sh +source $OMAKUB_PATH/install/desktop/app-localsend.sh +source $OMAKUB_PATH/install/desktop/app-obsidian.sh +source $OMAKUB_PATH/install/terminal/app-fastfetch.sh +source $OMAKUB_PATH/install/terminal/apps-terminal.sh + +# Add new desktop applications icons +source $OMAKUB_PATH/applications/Omakub.sh +source $OMAKUB_PATH/applications/About.sh +source $OMAKUB_PATH/applications/Activity.sh +source $OMAKUB_PATH/applications/Docker.sh + +# Update icons of apps still installed +[ -f ~/.local/share/applications/Basecamp.desktop ] && source $OMAKUB_PATH/applications/HEY.sh +[ -f ~/.local/share/applications/HEY.desktop ] && source $OMAKUB_PATH/applications/Basecamp.sh +[ -f ~/.local/share/applications/WhatsApp.desktop ] && source $OMAKUB_PATH/applications/WhatsApp.sh + +# Set new app grid +source $OMAKUB_PATH/install/desktop/set-app-grid.sh + +# Add new Gnome extensions +source $OMAKUB_PATH/install/desktop/set-gnome-extensions.sh + +gum style \ + --foreground 212 --border-foreground 212 --border double \ + --align left --width 80 --margin "1 2" --padding "2 4" \ + "1. alacritty.toml config moved to .bak to include new font-size.toml" \ + "2. Alacritty theme/font has been reset. Use omakub app to set again." \ + "3. To use Pano, the new clipboard manager, enable in Gnome Extensions." + +gum confirm "Set your application dock to default with new apps?" && source $OMAKUB_PATH/install/desktop/set-dock.sh +gum confirm "Ready to logout for all settings to take effect?" && gnome-session-quit --logout --no-prompt diff --git a/themes/alacritty/catppuccin.toml b/themes/catppuccin/alacritty.toml similarity index 100% rename from themes/alacritty/catppuccin.toml rename to themes/catppuccin/alacritty.toml diff --git a/backgrounds/catppuccintotoro.png b/themes/catppuccin/background.png similarity index 100% rename from backgrounds/catppuccintotoro.png rename to themes/catppuccin/background.png diff --git a/themes/catppuccin/chrome.sh b/themes/catppuccin/chrome.sh new file mode 100644 index 00000000..0aef2e64 --- /dev/null +++ b/themes/catppuccin/chrome.sh @@ -0,0 +1,5 @@ +CHROME_COLOR="1579044" +CHROME_COLOR_SCHEME=2 +CHROME_COLOR_VARIANT=1 +CHROME_BACKGROUND="catppuccin/background.png" +source $OMAKUB_PATH/themes/set-chrome-theme.sh diff --git a/themes/catppuccin/gnome.sh b/themes/catppuccin/gnome.sh new file mode 100644 index 00000000..a346e047 --- /dev/null +++ b/themes/catppuccin/gnome.sh @@ -0,0 +1,3 @@ +OMAKUB_THEME_COLOR="magenta" +OMAKUB_THEME_BACKGROUND="catppuccin/background.png" +source $OMAKUB_PATH/themes/set-gnome-theme.sh diff --git a/themes/neovim/catppuccin.lua b/themes/catppuccin/neovim.lua similarity index 100% rename from themes/neovim/catppuccin.lua rename to themes/catppuccin/neovim.lua diff --git a/themes/catppuccin/vscode.sh b/themes/catppuccin/vscode.sh new file mode 100644 index 00000000..ec4a5363 --- /dev/null +++ b/themes/catppuccin/vscode.sh @@ -0,0 +1,3 @@ +VSC_THEME="Catppuccin Macchiato" +VSC_EXTENSION="Catppuccin.catppuccin-vsc" +source $OMAKUB_PATH/themes/set-vscode-theme.sh diff --git a/themes/zellij/catppuccin.kdl b/themes/catppuccin/zellij.kdl similarity index 100% rename from themes/zellij/catppuccin.kdl rename to themes/catppuccin/zellij.kdl diff --git a/themes/alacritty/everforest.toml b/themes/everforest/alacritty.toml similarity index 100% rename from themes/alacritty/everforest.toml rename to themes/everforest/alacritty.toml diff --git a/backgrounds/fog_forest_2.jpg b/themes/everforest/background.jpg similarity index 100% rename from backgrounds/fog_forest_2.jpg rename to themes/everforest/background.jpg diff --git a/themes/everforest/chrome.sh b/themes/everforest/chrome.sh new file mode 100644 index 00000000..8c82ce12 --- /dev/null +++ b/themes/everforest/chrome.sh @@ -0,0 +1,5 @@ +CHROME_COLOR="-7829368" +CHROME_COLOR_SCHEME=2 +CHROME_COLOR_VARIANT=2 +CHROME_BACKGROUND="everforest/background.jpg" +source $OMAKUB_PATH/themes/set-chrome-theme.sh diff --git a/themes/everforest/gnome.sh b/themes/everforest/gnome.sh new file mode 100644 index 00000000..d5045157 --- /dev/null +++ b/themes/everforest/gnome.sh @@ -0,0 +1,3 @@ +OMAKUB_THEME_COLOR="bark" +OMAKUB_THEME_BACKGROUND="everforest/background.jpg" +source $OMAKUB_PATH/themes/set-gnome-theme.sh diff --git a/themes/neovim/everforest.lua b/themes/everforest/neovim.lua similarity index 100% rename from themes/neovim/everforest.lua rename to themes/everforest/neovim.lua diff --git a/themes/everforest/vscode.sh b/themes/everforest/vscode.sh new file mode 100644 index 00000000..c42228c2 --- /dev/null +++ b/themes/everforest/vscode.sh @@ -0,0 +1,3 @@ +VSC_THEME="Everforest Dark" +VSC_EXTENSION="sainnhe.everforest" +source $OMAKUB_PATH/themes/set-vscode-theme.sh diff --git a/themes/zellij/everforest.kdl b/themes/everforest/zellij.kdl similarity index 100% rename from themes/zellij/everforest.kdl rename to themes/everforest/zellij.kdl diff --git a/themes/gnome/catppuccin.sh b/themes/gnome/catppuccin.sh deleted file mode 100644 index 7408bfbf..00000000 --- a/themes/gnome/catppuccin.sh +++ /dev/null @@ -1,3 +0,0 @@ -OMAKUB_THEME_COLOR="magenta" -OMAKUB_THEME_BACKGROUND="catppuccintotoro.png" -source $OMAKUB_PATH/themes/gnome/_set-gnome-theme.sh diff --git a/themes/gnome/everforest.sh b/themes/gnome/everforest.sh deleted file mode 100644 index b3715726..00000000 --- a/themes/gnome/everforest.sh +++ /dev/null @@ -1,3 +0,0 @@ -OMAKUB_THEME_COLOR="bark" -OMAKUB_THEME_BACKGROUND="fog_forest_2.jpg" -source $OMAKUB_PATH/themes/gnome/_set-gnome-theme.sh diff --git a/themes/gnome/gruvbox.sh b/themes/gnome/gruvbox.sh deleted file mode 100644 index b9ecdf50..00000000 --- a/themes/gnome/gruvbox.sh +++ /dev/null @@ -1,3 +0,0 @@ -OMAKUB_THEME_COLOR="sage" -OMAKUB_THEME_BACKGROUND="ferns-green.jpg" -source $OMAKUB_PATH/themes/gnome/_set-gnome-theme.sh diff --git a/themes/gnome/kanagawa.sh b/themes/gnome/kanagawa.sh deleted file mode 100644 index 029180ff..00000000 --- a/themes/gnome/kanagawa.sh +++ /dev/null @@ -1,3 +0,0 @@ -OMAKUB_THEME_COLOR="purple" -OMAKUB_THEME_BACKGROUND="kanagawa.jpg" -source $OMAKUB_PATH/themes/gnome/_set-gnome-theme.sh diff --git a/themes/gnome/nord.sh b/themes/gnome/nord.sh deleted file mode 100644 index 5daf98c9..00000000 --- a/themes/gnome/nord.sh +++ /dev/null @@ -1,3 +0,0 @@ -OMAKUB_THEME_COLOR="blue" -OMAKUB_THEME_BACKGROUND="nord_scenary.png" -source $OMAKUB_PATH/themes/gnome/_set-gnome-theme.sh diff --git a/themes/gnome/rose-pine.sh b/themes/gnome/rose-pine.sh deleted file mode 100644 index f00cc888..00000000 --- a/themes/gnome/rose-pine.sh +++ /dev/null @@ -1,4 +0,0 @@ -OMAKUB_THEME_COLOR="red" -OMAKUB_THEME_BACKGROUND="simple-pastel-by-triarts-from-freepik.jpg" -source $OMAKUB_PATH/themes/gnome/_set-gnome-theme.sh -gsettings set org.gnome.desktop.interface color-scheme 'prefer-light' diff --git a/themes/gnome/tokyo-night.sh b/themes/gnome/tokyo-night.sh deleted file mode 100644 index a26eb262..00000000 --- a/themes/gnome/tokyo-night.sh +++ /dev/null @@ -1,3 +0,0 @@ -OMAKUB_THEME_COLOR="purple" -OMAKUB_THEME_BACKGROUND="80s-retro-tropical-sunset-by-freepik.jpg" -source $OMAKUB_PATH/themes/gnome/_set-gnome-theme.sh diff --git a/themes/alacritty/gruvbox.toml b/themes/gruvbox/alacritty.toml similarity index 100% rename from themes/alacritty/gruvbox.toml rename to themes/gruvbox/alacritty.toml diff --git a/backgrounds/ferns-green.jpg b/themes/gruvbox/background.jpg similarity index 100% rename from backgrounds/ferns-green.jpg rename to themes/gruvbox/background.jpg diff --git a/themes/gruvbox/chrome.sh b/themes/gruvbox/chrome.sh new file mode 100644 index 00000000..fecf63c2 --- /dev/null +++ b/themes/gruvbox/chrome.sh @@ -0,0 +1,5 @@ +CHROME_COLOR="-8847616" +CHROME_COLOR_SCHEME=2 +CHROME_COLOR_VARIANT=2 +CHROME_BACKGROUND="gruvbox/background.jpg" +source $OMAKUB_PATH/themes/set-chrome-theme.sh diff --git a/themes/gruvbox/gnome.sh b/themes/gruvbox/gnome.sh new file mode 100644 index 00000000..e48aa2e9 --- /dev/null +++ b/themes/gruvbox/gnome.sh @@ -0,0 +1,3 @@ +OMAKUB_THEME_COLOR="sage" +OMAKUB_THEME_BACKGROUND="gruvbox/background.jpg" +source $OMAKUB_PATH/themes/set-gnome-theme.sh diff --git a/themes/neovim/gruvbox.lua b/themes/gruvbox/neovim.lua similarity index 100% rename from themes/neovim/gruvbox.lua rename to themes/gruvbox/neovim.lua diff --git a/themes/gruvbox/vscode.sh b/themes/gruvbox/vscode.sh new file mode 100644 index 00000000..e0c5b854 --- /dev/null +++ b/themes/gruvbox/vscode.sh @@ -0,0 +1,3 @@ +VSC_THEME="Gruvbox Dark Medium" +VSC_EXTENSION="jdinhlife.gruvbox" +source $OMAKUB_PATH/themes/set-vscode-theme.sh diff --git a/themes/zellij/gruvbox.kdl b/themes/gruvbox/zellij.kdl similarity index 100% rename from themes/zellij/gruvbox.kdl rename to themes/gruvbox/zellij.kdl diff --git a/themes/alacritty/kanagawa.toml b/themes/kanagawa/alacritty.toml similarity index 100% rename from themes/alacritty/kanagawa.toml rename to themes/kanagawa/alacritty.toml diff --git a/backgrounds/kanagawa.jpg b/themes/kanagawa/background.jpg similarity index 100% rename from backgrounds/kanagawa.jpg rename to themes/kanagawa/background.jpg diff --git a/themes/kanagawa/chrome.sh b/themes/kanagawa/chrome.sh new file mode 100644 index 00000000..24e9dba5 --- /dev/null +++ b/themes/kanagawa/chrome.sh @@ -0,0 +1,5 @@ +CHROME_COLOR="6632704" +CHROME_COLOR_SCHEME=1 +CHROME_COLOR_VARIANT=1 +CHROME_BACKGROUND="kanagawa/background.jpg" +source $OMAKUB_PATH/themes/set-chrome-theme.sh diff --git a/themes/kanagawa/gnome.sh b/themes/kanagawa/gnome.sh new file mode 100644 index 00000000..00640ec4 --- /dev/null +++ b/themes/kanagawa/gnome.sh @@ -0,0 +1,3 @@ +OMAKUB_THEME_COLOR="purple" +OMAKUB_THEME_BACKGROUND="kanagawa/background.jpg" +source $OMAKUB_PATH/themes/set-gnome-theme.sh diff --git a/themes/neovim/kanagawa.lua b/themes/kanagawa/neovim.lua similarity index 100% rename from themes/neovim/kanagawa.lua rename to themes/kanagawa/neovim.lua diff --git a/themes/kanagawa/vscode.sh b/themes/kanagawa/vscode.sh new file mode 100644 index 00000000..fda95e09 --- /dev/null +++ b/themes/kanagawa/vscode.sh @@ -0,0 +1,3 @@ +VSC_THEME="Kanagawa" +VSC_EXTENSION="qufiwefefwoyn.kanagawa" +source $OMAKUB_PATH/themes/set-vscode-theme.sh diff --git a/themes/zellij/kanagawa.kdl b/themes/kanagawa/zellij.kdl similarity index 100% rename from themes/zellij/kanagawa.kdl rename to themes/kanagawa/zellij.kdl diff --git a/themes/alacritty/nord.toml b/themes/nord/alacritty.toml similarity index 100% rename from themes/alacritty/nord.toml rename to themes/nord/alacritty.toml diff --git a/backgrounds/nord_scenary.png b/themes/nord/background.png similarity index 100% rename from backgrounds/nord_scenary.png rename to themes/nord/background.png diff --git a/themes/nord/chrome.sh b/themes/nord/chrome.sh new file mode 100644 index 00000000..62f153fa --- /dev/null +++ b/themes/nord/chrome.sh @@ -0,0 +1,5 @@ +CHROME_COLOR="5002858" +CHROME_COLOR_SCHEME=2 +CHROME_COLOR_VARIANT=2 +CHROME_BACKGROUND="nord/background.png" +source $OMAKUB_PATH/themes/set-chrome-theme.sh diff --git a/themes/nord/gnome.sh b/themes/nord/gnome.sh new file mode 100644 index 00000000..2c634928 --- /dev/null +++ b/themes/nord/gnome.sh @@ -0,0 +1,3 @@ +OMAKUB_THEME_COLOR="blue" +OMAKUB_THEME_BACKGROUND="nord/background.png" +source $OMAKUB_PATH/themes/set-gnome-theme.sh diff --git a/themes/neovim/nord.lua b/themes/nord/neovim.lua similarity index 100% rename from themes/neovim/nord.lua rename to themes/nord/neovim.lua diff --git a/themes/nord/vscode.sh b/themes/nord/vscode.sh new file mode 100644 index 00000000..37407e62 --- /dev/null +++ b/themes/nord/vscode.sh @@ -0,0 +1,3 @@ +VSC_THEME="Nord" +VSC_EXTENSION="arcticicestudio.nord-visual-studio-code" +source $OMAKUB_PATH/themes/set-vscode-theme.sh diff --git a/themes/zellij/nord.kdl b/themes/nord/zellij.kdl similarity index 100% rename from themes/zellij/nord.kdl rename to themes/nord/zellij.kdl diff --git a/themes/alacritty/rose-pine.toml b/themes/rose-pine/alacritty.toml similarity index 100% rename from themes/alacritty/rose-pine.toml rename to themes/rose-pine/alacritty.toml diff --git a/backgrounds/simple-pastel-by-triarts-from-freepik.jpg b/themes/rose-pine/background.jpg similarity index 100% rename from backgrounds/simple-pastel-by-triarts-from-freepik.jpg rename to themes/rose-pine/background.jpg diff --git a/themes/rose-pine/chrome.sh b/themes/rose-pine/chrome.sh new file mode 100644 index 00000000..2a7abb00 --- /dev/null +++ b/themes/rose-pine/chrome.sh @@ -0,0 +1,5 @@ +CHROME_COLOR="-65281" +CHROME_COLOR_SCHEME=1 +CHROME_COLOR_VARIANT=1 +CHROME_BACKGROUND="rose-pine/background.jpg" +source $OMAKUB_PATH/themes/set-chrome-theme.sh diff --git a/themes/rose-pine/gnome.sh b/themes/rose-pine/gnome.sh new file mode 100644 index 00000000..63439b08 --- /dev/null +++ b/themes/rose-pine/gnome.sh @@ -0,0 +1,4 @@ +OMAKUB_THEME_COLOR="red" +OMAKUB_THEME_BACKGROUND="rose-pine/background.jpg" +source $OMAKUB_PATH/themes/set-gnome-theme.sh +gsettings set org.gnome.desktop.interface color-scheme 'prefer-light' diff --git a/themes/neovim/rose-pine.lua b/themes/rose-pine/neovim.lua similarity index 100% rename from themes/neovim/rose-pine.lua rename to themes/rose-pine/neovim.lua diff --git a/themes/rose-pine/vscode.sh b/themes/rose-pine/vscode.sh new file mode 100644 index 00000000..c427123e --- /dev/null +++ b/themes/rose-pine/vscode.sh @@ -0,0 +1,3 @@ +VSC_THEME="RosΓ© Pine Dawn" +VSC_EXTENSION="mvllow.rose-pine" +source $OMAKUB_PATH/themes/set-vscode-theme.sh diff --git a/themes/zellij/rose-pine.kdl b/themes/rose-pine/zellij.kdl similarity index 100% rename from themes/zellij/rose-pine.kdl rename to themes/rose-pine/zellij.kdl diff --git a/themes/set-chrome-theme.sh b/themes/set-chrome-theme.sh new file mode 100644 index 00000000..b087c468 --- /dev/null +++ b/themes/set-chrome-theme.sh @@ -0,0 +1,15 @@ +# Updating the Chrome settings require that we first quit the application, since settings aren't picked up live, +# and they're overwritten on exit. +if gum confirm "Update Chrome theme? If yes, Chrome (and all Chrome-based apps) will closed!"; then + pkill -f chrome + + while pgrep -f chrome >/dev/null; do + sleep 0.1 + done + + cd ~/.config/google-chrome/Default + jq '.extensions.theme += {"id": "user_color_theme_id", "system_theme": 0}' Preferences >tmp.json && mv tmp.json Preferences + jq ".browser.theme.color_scheme = $CHROME_COLOR_SCHEME | .browser.theme.color_variant = $CHROME_COLOR_VARIANT | .browser.theme.user_color = $CHROME_COLOR" Preferences >tmp.json && mv tmp.json Preferences + jq ".ntp += {\"custom_background_dict\":{\"background_url\": \"https://github.com/basecamp/omakub/blob/master/themes/$CHROME_BACKGROUND?raw=true\"}}" Preferences >tmp.json && mv tmp.json Preferences + cd ~ +fi diff --git a/themes/gnome/_set-gnome-theme.sh b/themes/set-gnome-theme.sh similarity index 81% rename from themes/gnome/_set-gnome-theme.sh rename to themes/set-gnome-theme.sh index 59a97fd6..5760dede 100644 --- a/themes/gnome/_set-gnome-theme.sh +++ b/themes/set-gnome-theme.sh @@ -3,9 +3,9 @@ gsettings set org.gnome.desktop.interface cursor-theme 'Yaru' gsettings set org.gnome.desktop.interface gtk-theme "Yaru-$OMAKUB_THEME_COLOR-dark" gsettings set org.gnome.desktop.interface icon-theme "Yaru-$OMAKUB_THEME_COLOR" -BACKGROUND_ORG_PATH="$HOME/.local/share/omakub/backgrounds/$OMAKUB_THEME_BACKGROUND" +BACKGROUND_ORG_PATH="$HOME/.local/share/omakub/themes/$OMAKUB_THEME_BACKGROUND" BACKGROUND_DEST_DIR="$HOME/.local/share/backgrounds" -BACKGROUND_DEST_PATH="$BACKGROUND_DEST_DIR/$OMAKUB_THEME_BACKGROUND" +BACKGROUND_DEST_PATH="$BACKGROUND_DEST_DIR/$(echo $OMAKUB_THEME_BACKGROUND | tr '/' '-')" if [ ! -d "$BACKGROUND_DEST_DIR" ]; then mkdir -p "$BACKGROUND_DEST_DIR"; fi diff --git a/themes/set-vscode-theme.sh b/themes/set-vscode-theme.sh new file mode 100644 index 00000000..bfd8fdbf --- /dev/null +++ b/themes/set-vscode-theme.sh @@ -0,0 +1,2 @@ +code --install-extension $VSC_EXTENSION >/dev/null +sed -i "s/\"workbench.colorTheme\": \".*\"/\"workbench.colorTheme\": \"$VSC_THEME\"/g" ~/.config/Code/User/settings.json diff --git a/themes/alacritty/tokyo-night.toml b/themes/tokyo-night/alacritty.toml similarity index 100% rename from themes/alacritty/tokyo-night.toml rename to themes/tokyo-night/alacritty.toml diff --git a/backgrounds/80s-retro-tropical-sunset-by-freepik.jpg b/themes/tokyo-night/background.jpg similarity index 100% rename from backgrounds/80s-retro-tropical-sunset-by-freepik.jpg rename to themes/tokyo-night/background.jpg diff --git a/themes/tokyo-night/chrome.sh b/themes/tokyo-night/chrome.sh new file mode 100644 index 00000000..4cdecd32 --- /dev/null +++ b/themes/tokyo-night/chrome.sh @@ -0,0 +1,5 @@ +CHROME_COLOR="3094106" +CHROME_COLOR_SCHEME=2 +CHROME_COLOR_VARIANT=1 +CHROME_BACKGROUND="tokyo-night/background.jpg" +source $OMAKUB_PATH/themes/set-chrome-theme.sh diff --git a/themes/tokyo-night/gnome.sh b/themes/tokyo-night/gnome.sh new file mode 100644 index 00000000..1baab2b7 --- /dev/null +++ b/themes/tokyo-night/gnome.sh @@ -0,0 +1,3 @@ +OMAKUB_THEME_COLOR="purple" +OMAKUB_THEME_BACKGROUND="tokyo-night/background.jpg" +source $OMAKUB_PATH/themes/set-gnome-theme.sh diff --git a/themes/neovim/tokyo-night.lua b/themes/tokyo-night/neovim.lua similarity index 100% rename from themes/neovim/tokyo-night.lua rename to themes/tokyo-night/neovim.lua diff --git a/themes/tokyo-night/vscode.sh b/themes/tokyo-night/vscode.sh new file mode 100644 index 00000000..2d37d382 --- /dev/null +++ b/themes/tokyo-night/vscode.sh @@ -0,0 +1,3 @@ +VSC_THEME="Tokyo Night" +VSC_EXTENSION="enkia.tokyo-night" +source $OMAKUB_PATH/themes/set-vscode-theme.sh diff --git a/themes/zellij/tokyo-night.kdl b/themes/tokyo-night/zellij.kdl similarity index 100% rename from themes/zellij/tokyo-night.kdl rename to themes/tokyo-night/zellij.kdl diff --git a/uninstall/app-1password.sh b/uninstall/app-1password.sh old mode 100644 new mode 100755 index d033c51f..e8155222 --- a/uninstall/app-1password.sh +++ b/uninstall/app-1password.sh @@ -1 +1,5 @@ -sudo apt remove -y 1password +sudo rm /etc/apt/sources.list.d/1password.list +sudo rm /usr/share/keyrings/1password-archive-keyring.gpg +sudo rm /usr/share/debsig/keyrings/AC2D62742012EA22/debsig.gpg +sudo rm -r /etc/debsig/policies/AC2D62742012EA22/ +sudo apt-get remove --purge -y 1password 1password-cli diff --git a/uninstall/app-audacity.sh b/uninstall/app-audacity.sh new file mode 100644 index 00000000..5d20bcd8 --- /dev/null +++ b/uninstall/app-audacity.sh @@ -0,0 +1 @@ +flatpak uninstall -y flathub org.audacityteam.Audacity diff --git a/uninstall/app-brave.sh b/uninstall/app-brave.sh new file mode 100644 index 00000000..5ff59bbd --- /dev/null +++ b/uninstall/app-brave.sh @@ -0,0 +1,3 @@ +sudo apt remove --purge -y brave-browser +sudo rm /etc/apt/sources.list.d/brave-browser-release.list +sudo rm /usr/share/keyrings/brave-browser-*.gpg diff --git a/uninstall/app-chrome.sh b/uninstall/app-chrome.sh new file mode 100644 index 00000000..a76d8eaf --- /dev/null +++ b/uninstall/app-chrome.sh @@ -0,0 +1 @@ +sudo apt remove -y google-chrome-stable \ No newline at end of file diff --git a/uninstall/app-fastfetch.sh b/uninstall/app-fastfetch.sh new file mode 100644 index 00000000..c1623514 --- /dev/null +++ b/uninstall/app-fastfetch.sh @@ -0,0 +1 @@ +sudo apt remove -y fastfetch diff --git a/uninstall/app-obs-studio.sh b/uninstall/app-obs-studio.sh new file mode 100644 index 00000000..a56beaf7 --- /dev/null +++ b/uninstall/app-obs-studio.sh @@ -0,0 +1 @@ +sudo apt remove -y obs-studio diff --git a/uninstall/app-obsidian.sh b/uninstall/app-obsidian.sh new file mode 100644 index 00000000..427a2880 --- /dev/null +++ b/uninstall/app-obsidian.sh @@ -0,0 +1 @@ +flatpak uninstall -y flathub md.obsidian.Obsidian diff --git a/uninstall/app-ollama.sh b/uninstall/app-ollama.sh new file mode 100644 index 00000000..33ca55c6 --- /dev/null +++ b/uninstall/app-ollama.sh @@ -0,0 +1,12 @@ +# Remove service +sudo systemctl stop ollama +sudo systemctl disable ollama +sudo rm /etc/systemd/system/ollama.service + +# Remove command +sudo rm $(which ollama) + +# Remove installed models +sudo rm -r /usr/share/ollama +sudo userdel ollama +sudo groupdel ollama diff --git a/uninstall/app-rubymine.sh b/uninstall/app-rubymine.sh new file mode 100644 index 00000000..fb02964c --- /dev/null +++ b/uninstall/app-rubymine.sh @@ -0,0 +1 @@ +sudo snap remove rubymine diff --git a/uninstall/app-signal.sh b/uninstall/app-signal.sh new file mode 100644 index 00000000..b7ceb44a --- /dev/null +++ b/uninstall/app-signal.sh @@ -0,0 +1 @@ +sudo apt remove --purge -y signal-desktop diff --git a/uninstall/app-steam.sh b/uninstall/app-steam.sh new file mode 100644 index 00000000..54bacc13 --- /dev/null +++ b/uninstall/app-steam.sh @@ -0,0 +1 @@ +sudo apt remove -y steam steam-launcher diff --git a/uninstall/app-typora.sh b/uninstall/app-typora.sh index 05bc0456..a79c9f4d 100644 --- a/uninstall/app-typora.sh +++ b/uninstall/app-typora.sh @@ -1,2 +1,2 @@ sudo apt remove typora -rm ~/.config/Typora +rm -rf ~/.config/Typora diff --git a/uninstall/docker.sh b/uninstall/docker.sh index 0ac4a52a..f0218875 100644 --- a/uninstall/docker.sh +++ b/uninstall/docker.sh @@ -1,2 +1,2 @@ -sudo apt remove -y docker.io docker-buildx +sudo apt purge --auto-remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras sudo groupdel docker diff --git a/uninstall/php.sh b/uninstall/php.sh new file mode 100644 index 00000000..da7db13f --- /dev/null +++ b/uninstall/php.sh @@ -0,0 +1,4 @@ +sudo apt -y purge "php8.3*" +sudo add-apt-repository -y --remove ppa:ondrej/php + +sudo rm /usr/local/bin/composer diff --git a/uninstall/rust.sh b/uninstall/rust.sh new file mode 100644 index 00000000..93dcd9d9 --- /dev/null +++ b/uninstall/rust.sh @@ -0,0 +1 @@ +rustup self uninstall -y diff --git a/version b/version new file mode 100644 index 00000000..c7c6d268 --- /dev/null +++ b/version @@ -0,0 +1 @@ +1.1.0.alpha