Repository: basecamp/omakub Branch: master Commit: c873902f1a5d Files: 259 Total size: 154.7 KB Directory structure: gitextract_wu3rr8nv/ ├── EXTENSIONS.md ├── README.md ├── applications/ │ ├── About.sh │ ├── Activity.sh │ ├── Basecamp.sh │ ├── Docker.sh │ ├── HEY.sh │ ├── Neovim.sh │ ├── Omakub.sh │ └── WhatsApp.sh ├── ascii.sh ├── bin/ │ ├── omakub │ └── omakub-sub/ │ ├── font-size.sh │ ├── font.sh │ ├── header.sh │ ├── install-dev-editor.sh │ ├── install.sh │ ├── manual.sh │ ├── menu.sh │ ├── migrate.sh │ ├── theme.sh │ ├── uninstall.sh │ └── update.sh ├── boot.sh ├── configs/ │ ├── alacritty/ │ │ ├── btop.toml │ │ ├── font-size.toml │ │ ├── fonts/ │ │ │ ├── CaskaydiaMono.toml │ │ │ ├── FiraMono.toml │ │ │ ├── JetBrainsMono.toml │ │ │ └── MesloLGS.toml │ │ ├── pane.toml │ │ └── shared.toml │ ├── alacritty.toml │ ├── bashrc │ ├── btop.conf │ ├── fastfetch.jsonc │ ├── inputrc │ ├── neovim/ │ │ ├── lazyvim.json │ │ ├── snacks-animated-scrolling-off.lua │ │ └── transparency.lua │ ├── typora/ │ │ ├── ia_typora.css │ │ └── ia_typora_night.css │ ├── ulauncher.desktop │ ├── ulauncher.json │ ├── vscode.json │ ├── xcompose │ └── zellij.kdl ├── defaults/ │ ├── bash/ │ │ ├── aliases │ │ ├── functions │ │ ├── init │ │ ├── inputrc │ │ ├── prompt │ │ ├── rc │ │ └── shell │ └── xcompose ├── install/ │ ├── check-version.sh │ ├── desktop/ │ │ ├── a-flatpak.sh │ │ ├── app-alacritty.sh │ │ ├── app-chrome.sh │ │ ├── app-flameshot.sh │ │ ├── app-gnome-sushi.sh │ │ ├── app-gnome-tweak-tool.sh │ │ ├── app-libreoffice.sh │ │ ├── app-localsend.sh │ │ ├── app-obsidian.sh │ │ ├── app-pinta.sh │ │ ├── app-signal.sh │ │ ├── app-typora.sh │ │ ├── app-vlc.sh │ │ ├── app-vscode.sh │ │ ├── app-wl-clipboard.sh │ │ ├── app-xournalpp.sh │ │ ├── applications.sh │ │ ├── fonts.sh │ │ ├── optional/ │ │ │ ├── app-1password.sh │ │ │ ├── app-asdcontrol.sh │ │ │ ├── app-audacity.sh │ │ │ ├── app-brave.sh │ │ │ ├── app-cursor.sh │ │ │ ├── app-discord.sh │ │ │ ├── app-doom-emacs.sh │ │ │ ├── app-dropbox.sh │ │ │ ├── app-gimp.sh │ │ │ ├── app-mainline-kernels.sh │ │ │ ├── app-minecraft.sh │ │ │ ├── app-obs-studio.sh │ │ │ ├── app-retroarch.sh │ │ │ ├── app-rubymine.sh │ │ │ ├── app-spotify.sh │ │ │ ├── app-steam.sh │ │ │ ├── app-virtualbox.sh │ │ │ ├── app-windows.sh │ │ │ ├── app-windsurf.sh │ │ │ ├── app-zed.sh │ │ │ ├── app-zoom.sh │ │ │ └── select-web-apps.sh │ │ ├── select-optional-apps.sh │ │ ├── set-alacritty-default.sh │ │ ├── set-app-grid.sh │ │ ├── set-dock.sh │ │ ├── set-framework-text-scaling.sh │ │ ├── set-gnome-extensions.sh │ │ ├── set-gnome-hotkeys.sh │ │ ├── set-gnome-settings.sh │ │ ├── set-gnome-theme.sh │ │ ├── set-xcompose.sh │ │ └── ulauncher.sh │ ├── desktop.sh │ ├── first-run-choices.sh │ ├── identification.sh │ ├── terminal/ │ │ ├── a-shell.sh │ │ ├── app-btop.sh │ │ ├── app-fastfetch.sh │ │ ├── app-github-cli.sh │ │ ├── app-lazydocker.sh │ │ ├── app-lazygit.sh │ │ ├── app-neovim.sh │ │ ├── app-zellij.sh │ │ ├── apps-terminal.sh │ │ ├── docker.sh │ │ ├── libraries.sh │ │ ├── mise.sh │ │ ├── optional/ │ │ │ ├── app-geekbench.sh │ │ │ ├── app-ollama.sh │ │ │ └── app-tailscale.sh │ │ ├── required/ │ │ │ └── app-gum.sh │ │ ├── select-dev-language.sh │ │ ├── select-dev-storage.sh │ │ └── set-git.sh │ └── terminal.sh ├── install.sh ├── migrations/ │ ├── 1718359027.sh │ ├── 1722091912.sh │ ├── 1722387070.sh │ ├── 1723756122.sh │ ├── 1724344367.sh │ ├── 1738744474.sh │ ├── 1741193162.sh │ ├── 1744854733.sh │ ├── 1745060743.sh │ ├── 1747237126.sh │ ├── 1747501295.sh │ ├── 1747736884.sh │ ├── 1747737304.sh │ ├── 1753775930.sh │ ├── 1761481687.sh │ └── 1770656330.sh ├── themes/ │ ├── catppuccin/ │ │ ├── alacritty.toml │ │ ├── btop.theme │ │ ├── gnome.sh │ │ ├── neovim.lua │ │ ├── tophat.sh │ │ ├── vscode.sh │ │ └── zellij.kdl │ ├── everforest/ │ │ ├── alacritty.toml │ │ ├── btop.theme │ │ ├── gnome.sh │ │ ├── neovim.lua │ │ ├── tophat.sh │ │ ├── vscode.sh │ │ └── zellij.kdl │ ├── gruvbox/ │ │ ├── alacritty.toml │ │ ├── btop.theme │ │ ├── gnome.sh │ │ ├── neovim.lua │ │ ├── tophat.sh │ │ ├── vscode.sh │ │ └── zellij.kdl │ ├── kanagawa/ │ │ ├── alacritty.toml │ │ ├── btop.theme │ │ ├── gnome.sh │ │ ├── neovim.lua │ │ ├── tophat.sh │ │ ├── vscode.sh │ │ └── zellij.kdl │ ├── matte-black/ │ │ ├── alacritty.toml │ │ ├── btop.theme │ │ ├── gnome.sh │ │ ├── neovim.lua │ │ ├── tophat.sh │ │ ├── vscode.sh │ │ └── zellij.kdl │ ├── nord/ │ │ ├── alacritty.toml │ │ ├── btop.theme │ │ ├── gnome.sh │ │ ├── neovim.lua │ │ ├── tophat.sh │ │ ├── vscode.sh │ │ └── zellij.kdl │ ├── osaka-jade/ │ │ ├── alacritty.toml │ │ ├── btop.theme │ │ ├── gnome.sh │ │ ├── neovim.lua │ │ ├── tophat.sh │ │ ├── vscode.sh │ │ └── zellij.kdl │ ├── ristretto/ │ │ ├── alacritty.toml │ │ ├── btop.theme │ │ ├── gnome.sh │ │ ├── neovim.lua │ │ ├── tophat.sh │ │ ├── vscode.sh │ │ └── zellij.kdl │ ├── rose-pine/ │ │ ├── alacritty.toml │ │ ├── btop.theme │ │ ├── gnome.sh │ │ ├── neovim.lua │ │ ├── tophat.sh │ │ ├── vscode.sh │ │ └── zellij.kdl │ ├── set-gnome-theme.sh │ ├── set-vscode-theme.sh │ └── tokyo-night/ │ ├── alacritty.toml │ ├── btop.theme │ ├── gnome.sh │ ├── neovim.lua │ ├── tophat.sh │ ├── vscode.sh │ └── zellij.kdl ├── uninstall/ │ ├── app-1password.sh │ ├── app-audacity.sh │ ├── app-brave.sh │ ├── app-chrome.sh │ ├── app-cursor.sh │ ├── app-discord.sh │ ├── app-doom-emacs.sh │ ├── app-fastfetch.sh │ ├── app-flameshot.sh │ ├── app-geekbench.sh │ ├── app-gimp.sh │ ├── app-github-cli.sh │ ├── app-libreoffice.sh │ ├── app-localsend.sh │ ├── app-mainline-kernels.sh │ ├── app-minecraft.sh │ ├── app-neovim.sh │ ├── app-obs-studio.sh │ ├── app-obsidian.sh │ ├── app-ollama.sh │ ├── app-pinta.sh │ ├── app-retroarch.sh │ ├── app-rubymine.sh │ ├── app-signal.sh │ ├── app-spotify.sh │ ├── app-steam.sh │ ├── app-tailscale.sh │ ├── app-typora.sh │ ├── app-virtualbox.sh │ ├── app-vlc.sh │ ├── app-vscode.sh │ ├── app-windsurf.sh │ ├── app-xournalpp.sh │ ├── app-zed.sh │ ├── app-zoom.sh │ ├── apps-web.sh │ ├── dev-language.sh │ ├── docker.sh │ └── select-web-apps.sh └── version ================================================ FILE CONTENTS ================================================ ================================================ FILE: EXTENSIONS.md ================================================ # [Dark and light mode theme switch](https://github.com/florentdestremau/omakub-darkmode-switch) Select a dark and light theme of your choice to be applied automatically when switching the gnome light/dark mode. ================================================ FILE: README.md ================================================ # Omakub Turn a fresh Ubuntu installation into a fully-configured, beautiful, and modern web development system by running a single command. That's the one-line pitch for Omakub. No need to write bespoke configs for every essential tool just to get started or to be up on all the latest command-line tools. Omakub is an opinionated take on what Linux can be at its best. Watch the introduction video and read more at [omakub.org](https://omakub.org). ## Contributing to the documentation Please help us improve Omakub's documentation on the [basecamp/omakub-site repository](https://github.com/basecamp/omakub-site). ## License Omakub is released under the [MIT License](https://opensource.org/licenses/MIT). ## Extras While omakub is purposed to be an opinionated take, the open source community offers alternative customization, add-ons, extras, that you can use to adjust, replace or enrich your experience. [⇒ Browse the omakub extensions.](EXTENSIONS.md) ================================================ FILE: applications/About.sh ================================================ #!/bin/bash cat <~/.local/share/applications/About.desktop [Desktop Entry] Version=1.0 Name=About Comment=System information from Fastfetch Exec=alacritty --config-file /home/$USER/.config/alacritty/pane.toml --class=About --title=About -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 ================================================ FILE: applications/Activity.sh ================================================ #!/bin/bash cat <~/.local/share/applications/Activity.desktop [Desktop Entry] Version=1.0 Name=Activity Comment=System activity from btop Exec=alacritty --config-file /home/$USER/.config/alacritty/btop.toml --class=Activity --title=Activity -e btop Terminal=false Type=Application Icon=/home/$USER/.local/share/omakub/applications/icons/Activity.png Categories=GTK; StartupNotify=false EOF ================================================ FILE: applications/Basecamp.sh ================================================ #!/bin/bash cat <~/.local/share/applications/Basecamp.desktop [Desktop Entry] Version=1.0 Name=Basecamp Comment=Basecamp Project Management Exec=google-chrome --app="https://launchpad.37signals.com" --name=Basecamp --class=Basecamp Terminal=false Type=Application Icon=/home/$USER/.local/share/omakub/applications/icons/Basecamp.png Categories=GTK; MimeType=text/html;text/xml;application/xhtml_xml; StartupNotify=true EOF ================================================ FILE: applications/Docker.sh ================================================ #!/bin/bash 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/.config/alacritty/pane.toml --class=Docker --title=Docker -e lazydocker Terminal=false Type=Application Icon=/home/$USER/.local/share/omakub/applications/icons/Docker.png Categories=GTK; StartupNotify=false EOF ================================================ FILE: applications/HEY.sh ================================================ #!/bin/bash cat <~/.local/share/applications/HEY.desktop [Desktop Entry] Version=1.0 Name=HEY Comment=HEY Email + Calendar Exec=google-chrome --app="https://app.hey.com/" --name=HEY --class=HEY Terminal=false Type=Application Icon=/home/$USER/.local/share/omakub/applications/icons/HEY.png Categories=GTK; MimeType=text/html;text/xml;application/xhtml_xml; StartupNotify=true EOF ================================================ FILE: applications/Neovim.sh ================================================ #!/bin/bash cat <~/.local/share/applications/Neovim.desktop [Desktop Entry] Version=1.0 Name=Neovim Comment=Edit text files Exec=alacritty --config-file /home/$USER/.config/alacritty/pane.toml --class=Neovim --title=Neovim -e nvim %F Terminal=false Type=Application Icon=nvim Categories=Utilities;TextEditor; StartupNotify=false EOF ================================================ FILE: applications/Omakub.sh ================================================ #!/bin/bash cat <~/.local/share/applications/Omakub.desktop [Desktop Entry] Version=1.0 Name=Omakub Comment=Omakub Controls Exec=alacritty --config-file /home/$USER/.config/alacritty/pane.toml --class=Omakub --title=Omakub -e omakub Terminal=false Type=Application Icon=/home/$USER/.local/share/omakub/applications/icons/Omakub.png Categories=GTK; StartupNotify=false EOF ================================================ FILE: applications/WhatsApp.sh ================================================ #!/bin/bash cat <~/.local/share/applications/WhatsApp.desktop [Desktop Entry] Version=1.0 Name=WhatsApp Comment=WhatsApp Messenger Exec=google-chrome --app="https://web.whatsapp.com" --name=WhatsApp --class=Whatsapp Terminal=false Type=Application Icon=/home/$USER/.local/share/omakub/applications/icons/WhatsApp.png Categories=GTK; MimeType=text/html;text/xml;application/xhtml_xml; StartupNotify=true EOF ================================================ FILE: ascii.sh ================================================ #!/bin/bash ascii_art=' ________ __ ___. \_____ \ _____ _____ | | ____ _\_ |__ / | \ / \\__ \ | |/ / | \ __ \ / | \ Y Y \/ __ \| <| | / \_\ \ \_______ /__|_| (____ /__|_ \____/|___ / \/ \/ \/ \/ \/ ' # Define the color gradient (shades of cyan and blue) colors=( '\033[38;5;81m' # Cyan '\033[38;5;75m' # Light Blue '\033[38;5;69m' # Sky Blue '\033[38;5;63m' # Dodger Blue '\033[38;5;57m' # Deep Sky Blue '\033[38;5;51m' # Cornflower Blue '\033[38;5;45m' # Royal Blue ) # Split the ASCII art into lines IFS=$'\n' read -rd '' -a lines <<<"$ascii_art" # Print each line with the corresponding color for i in "${!lines[@]}"; do color_index=$((i % ${#colors[@]})) echo -e "${colors[color_index]}${lines[i]}" done ================================================ FILE: bin/omakub ================================================ #!/bin/bash source $OMAKUB_PATH/bin/omakub-sub/header.sh source $OMAKUB_PATH/bin/omakub-sub/menu.sh ================================================ FILE: bin/omakub-sub/font-size.sh ================================================ #!/bin/bash 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 ================================================ FILE: bin/omakub-sub/font.sh ================================================ #!/bin/bash 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 ================================================ FILE: bin/omakub-sub/header.sh ================================================ #!/bin/bash source $OMAKUB_PATH/ascii.sh echo "" # Add spacing echo " $(cat $OMAKUB_PATH/version)" echo "" # Add spacing ================================================ FILE: bin/omakub-sub/install-dev-editor.sh ================================================ #!/bin/bash CHOICES=( "Cursor AI Code Editor" "Doom Emacs Emacs framework with curated list of packages" "RubyMine IntelliJ's commercial Ruby editor" "Windsurf Another AI Code Editor" "Zed Fast all-purpose editor" "<< Back " ) CHOICE=$(gum choose "${CHOICES[@]}" --height 8 --header "Install editor") if [[ "$CHOICE" == "<< Back"* ]] || [[ -z "$CHOICE" ]]; then # Don't install anything echo "" else INSTALLER=$(echo "$CHOICE" | awk -F ' {2,}' '{print $1}' | tr '[:upper:]' '[:lower:]' | sed 's/ /-/g') INSTALLER_FILE="$OMAKUB_PATH/install/desktop/optional/app-$INSTALLER.sh" source $INSTALLER_FILE && gum spin --spinner globe --title "Install completed!" -- sleep 3 fi clear source $OMAKUB_PATH/bin/omakub-sub/header.sh source $OMAKUB_PATH/bin/omakub-sub/install.sh ================================================ FILE: bin/omakub-sub/install.sh ================================================ #!/bin/bash CHOICES=( "Dev Editor Install alternative programming editors" "Dev Language Install programming language environment" "Dev Database Install development database in Docker" "1password Manage your passwords securely across devices" "Audacity Record and edit audio" "ASDControl Set brightness on Apple Studio and XDR displays" "Brave Chrome-based browser with built-in ad blocking" "Dropbox Sync files across computers with ease" "Discord Communication platform for voice, video, and text messaging" "Gimp Image manipulation tool ala Photoshop" "Geekbench CPU benchmaking tool" "Mainline Kernels Install newer Linux kernels than Ubuntu defaults" "Minecraft Everyone's favorite blocky building game" "OBS Studio Record screencasts with inputs from both display + webcam" "Ollama Run LLMs, like Meta's Llama3, locally" "Retroarch Play retro games" "Spotify Stream music from the world's most popular service" "Steam Play games from Valve's store" "Tailscale Mesh VPN based on WireGuard and with Magic DNS" "VirtualBox Virtual machines to run Windows/Linux" "Zoom Attend and host video chat meetings" "Web Apps Install web apps with their own icon and shell" "> All Re-run any of the default installers" "<< Back " ) CHOICE=$(gum choose "${CHOICES[@]}" --height 26 --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-editor") INSTALLER_FILE="$OMAKUB_PATH/bin/omakub-sub/install-dev-editor.sh" ;; "web-apps") INSTALLER_FILE="$OMAKUB_PATH/install/desktop/optional/select-web-apps.sh" ;; "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" ;; "tailscale") INSTALLER_FILE="$OMAKUB_PATH/install/terminal/optional/app-tailscale.sh" ;; "geekbench") INSTALLER_FILE="$OMAKUB_PATH/install/terminal/optional/app-geekbench.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 ================================================ FILE: bin/omakub-sub/manual.sh ================================================ #!/bin/bash xdg-open "https://manual.omakub.org" &>/dev/null source $OMAKUB_PATH/bin/omakub-sub/menu.sh ================================================ FILE: bin/omakub-sub/menu.sh ================================================ #!/bin/bash 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 ================================================ FILE: bin/omakub-sub/migrate.sh ================================================ #!/bin/bash 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 - ================================================ FILE: bin/omakub-sub/theme.sh ================================================ #!/bin/bash THEME_NAMES=("Tokyo Night" "Catppuccin" "Nord" "Everforest" "Gruvbox" "Kanagawa" "Ristretto" "Rose Pine" "Matte Black" "Osaka Jade") THEME=$(gum choose "${THEME_NAMES[@]}" "<< Back" --header "Choose your theme" --height 12 | 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 if [ -d "$HOME/.config/nvim" ]; then cp $OMAKUB_PATH/themes/$THEME/neovim.lua ~/.config/nvim/lua/plugins/theme.lua fi if [ -f "$OMAKUB_PATH/themes/$THEME/btop.theme" ]; then cp $OMAKUB_PATH/themes/$THEME/btop.theme ~/.config/btop/themes/$THEME.theme sed -i "s/color_theme = \".*\"/color_theme = \"$THEME\"/g" ~/.config/btop/btop.conf else sed -i "s/color_theme = \".*\"/color_theme = \"Default\"/g" ~/.config/btop/btop.conf fi source $OMAKUB_PATH/themes/$THEME/gnome.sh source $OMAKUB_PATH/themes/$THEME/tophat.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 ================================================ FILE: bin/omakub-sub/uninstall.sh ================================================ #!/bin/bash UNINSTALLER=$(gum file $OMAKUB_PATH/uninstall --height 26) [ -n "$UNINSTALLER" ] && gum confirm "Run uninstaller?" && source $UNINSTALLER && gum spin --spinner globe --title "Uninstall completed!" -- sleep 3 clear source $OMAKUB_PATH/bin/omakub ================================================ FILE: bin/omakub-sub/update.sh ================================================ #!/bin/bash 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" ;; "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 ================================================ FILE: boot.sh ================================================ #!/bin/bash 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 if [[ $OMAKUB_REF != "master" ]]; then cd ~/.local/share/omakub git fetch origin "${OMAKUB_REF:-stable}" && git checkout "${OMAKUB_REF:-stable}" cd - fi echo "Installation starting..." source ~/.local/share/omakub/install.sh ================================================ FILE: configs/alacritty/btop.toml ================================================ # Used by the Activity.desktop app import = [ "~/.config/alacritty/pane.toml" ] [window] dimensions.columns = 121 dimensions.lines = 40 ================================================ FILE: configs/alacritty/font-size.toml ================================================ # Leave this file in place for omakub to rely on a shared font size for all terminal apps [font] size = 9 ================================================ FILE: configs/alacritty/fonts/CaskaydiaMono.toml ================================================ [font] normal = { family = "CaskaydiaMono Nerd Font", style = "Regular" } bold = { family = "CaskaydiaMono Nerd Font", style = "Bold" } italic = { family = "CaskaydiaMono Nerd Font", style = "Italic" } ================================================ FILE: configs/alacritty/fonts/FiraMono.toml ================================================ [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" } ================================================ FILE: configs/alacritty/fonts/JetBrainsMono.toml ================================================ [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" } ================================================ FILE: configs/alacritty/fonts/MesloLGS.toml ================================================ [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" } ================================================ FILE: configs/alacritty/pane.toml ================================================ # Used by the About.desktop, Activity.desktop, Docker.desktop, Omakub.desktop, and Neovim.desktop apps import = [ "~/.config/alacritty/theme.toml", "~/.config/alacritty/font.toml", "~/.config/alacritty/font-size.toml", "~/.config/alacritty/shared.toml" ] [window] padding.x = 30 padding.y = 30 ================================================ FILE: configs/alacritty/shared.toml ================================================ [env] TERM = "xterm-256color" [shell] program = "zellij" [window] padding.x = 16 padding.y = 14 decorations = "None" opacity = 0.98 [keyboard] bindings = [ { key = "F11", action = "ToggleFullscreen" } ] ================================================ FILE: configs/alacritty.toml ================================================ import = [ "~/.config/alacritty/theme.toml", "~/.config/alacritty/font.toml", "~/.config/alacritty/font-size.toml", "~/.config/alacritty/shared.toml" ] ================================================ FILE: configs/bashrc ================================================ source ~/.local/share/omakub/defaults/bash/rc # Editor used by CLI export EDITOR="nvim" export SUDO_EDITOR="$EDITOR" ================================================ FILE: configs/btop.conf ================================================ #? Config file for btop v. 1.3.0 #* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes. #* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes" color_theme = "tokyo-night" #* If the theme set background should be shown, set to False if you want terminal background transparency. theme_background = True #* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false. truecolor = True #* Set to true to force tty mode regardless if a real tty has been detected or not. #* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols. force_tty = False #* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets. #* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box. #* Use whitespace " " as separator between different presets. #* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty" presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty" #* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists. #* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift. vim_keys = False #* Rounded corners on boxes, is ignored if TTY mode is ON. rounded_corners = True #* Default symbols to use for graph creation, "braille", "block" or "tty". #* "braille" offers the highest resolution but might not be included in all fonts. #* "block" has half the resolution of braille but uses more common characters. #* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY. #* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view. graph_symbol = "braille" # Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". graph_symbol_cpu = "default" # Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty". graph_symbol_gpu = "default" # Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". graph_symbol_mem = "default" # Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". graph_symbol_net = "default" # Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". graph_symbol_proc = "default" #* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace. shown_boxes = "cpu mem net proc" #* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs. update_ms = 2000 #* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct", #* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly. proc_sorting = "cpu lazy" #* Reverse sorting order, True or False. proc_reversed = False #* Show processes as a tree. proc_tree = False #* Use the cpu graph colors in the process list. proc_colors = True #* Use a darkening gradient in the process list. proc_gradient = True #* If process cpu usage should be of the core it's running on or usage of the total available cpu power. proc_per_core = False #* Show process memory as bytes instead of percent. proc_mem_bytes = True #* Show cpu graph for each process. proc_cpu_graphs = True #* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate) proc_info_smaps = False #* Show proc box on left side of screen instead of right. proc_left = False #* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop). proc_filter_kernel = False #* In tree-view, always accumulate child process resources in the parent process. proc_aggregate = False #* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available. #* Select from a list of detected attributes from the options menu. cpu_graph_upper = "Auto" #* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available. #* Select from a list of detected attributes from the options menu. cpu_graph_lower = "Auto" #* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off". show_gpu_info = "Auto" #* Toggles if the lower CPU graph should be inverted. cpu_invert_lower = True #* Set to True to completely disable the lower CPU graph. cpu_single_graph = False #* Show cpu box at bottom of screen instead of top. cpu_bottom = False #* Shows the system uptime in the CPU box. show_uptime = True #* Show cpu temperature. check_temp = True #* Which sensor to use for cpu temperature, use options menu to select from list of available sensors. cpu_sensor = "Auto" #* Show temperatures for cpu cores also if check_temp is True and sensors has been found. show_coretemp = True #* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core. #* Use lm-sensors or similar to see which cores are reporting temperatures on your machine. #* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries. #* Example: "4:0 5:1 6:3" cpu_core_map = "" #* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine". temp_scale = "celsius" #* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024. base_10_sizes = False #* Show CPU frequency. show_cpu_freq = True #* Draw a clock at top of screen, formatting according to strftime, empty string to disable. #* Special formatting: /host = hostname | /user = username | /uptime = system uptime clock_format = "%X" #* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort. background_update = True #* Custom cpu model name, empty string to disable. custom_cpu_name = "" #* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ". #* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user". disks_filter = "" #* Show graphs instead of meters for memory values. mem_graphs = True #* Show mem box below net box instead of above. mem_below_net = False #* Count ZFS ARC in cached and available memory. zfs_arc_cached = True #* If swap memory should be shown in memory box. show_swap = True #* Show swap as a disk, ignores show_swap value above, inserts itself after first disk. swap_disk = True #* If mem box should be split to also show disks info. show_disks = True #* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar. only_physical = True #* Read disks list from /etc/fstab. This also disables only_physical. use_fstab = True #* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool) zfs_hide_datasets = False #* Set to true to show available disk space for privileged users. disk_free_priv = False #* Toggles if io activity % (disk busy time) should be shown in regular disk usage view. show_io_stat = True #* Toggles io mode for disks, showing big graphs for disk read/write speeds. io_mode = False #* Set to True to show combined read/write io graphs in io mode. io_graph_combined = False #* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ". #* Example: "/mnt/media:100 /:20 /boot:1". io_graph_speeds = "" #* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False. net_download = 100 net_upload = 100 #* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest. net_auto = True #* Sync the auto scaling for download and upload to whichever currently has the highest scale. net_sync = True #* Starts with the Network Interface specified here. net_iface = "" #* Show battery stats in top right if battery is present. show_battery = True #* Which battery to use if multiple are present. "Auto" for auto detection. selected_battery = "Auto" #* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG". #* The level set includes all lower levels, i.e. "DEBUG" will show all logging info. log_level = "WARNING" #* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards. nvml_measure_pcie_speeds = True #* Horizontally mirror the GPU graph. gpu_mirror_graph = True #* Custom gpu0 model name, empty string to disable. custom_gpu_name0 = "" #* Custom gpu1 model name, empty string to disable. custom_gpu_name1 = "" #* Custom gpu2 model name, empty string to disable. custom_gpu_name2 = "" #* Custom gpu3 model name, empty string to disable. custom_gpu_name3 = "" #* Custom gpu4 model name, empty string to disable. custom_gpu_name4 = "" #* Custom gpu5 model name, empty string to disable. custom_gpu_name5 = "" ================================================ FILE: configs/fastfetch.jsonc ================================================ { "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", "logo": { "padding": { "top": 5, "right": 6 } }, "modules": [ "break", { "type": "custom", "format": "\u001b[90m┌──────────────────────Hardware──────────────────────┐" }, { "type": "host", "key": " PC", "keyColor": "green" }, { "type": "cpu", "key": "│ ├", "showPeCoreCount": true, "keyColor": "green" }, { "type": "gpu", "key": "│ ├", "detectionMethod": "pci", "keyColor": "green" }, { "type": "display", "key": "│ ├󱄄", "keyColor": "green" }, { "type": "disk", "key": "│ ├󰋊", "keyColor": "green" }, { "type": "memory", "key": "│ ├", "keyColor": "green" }, { "type": "swap", "key": "└ └󰓡 ", "keyColor": "green", }, { "type": "custom", "format": "\u001b[90m└────────────────────────────────────────────────────┘" }, "break", { "type": "custom", "format": "\u001b[90m┌──────────────────────Software──────────────────────┐" }, { "type": "os", "key": " OS", "keyColor": "yellow" }, { "type": "kernel", "key": "│ ├", "keyColor": "yellow" }, { "type": "packages", "key": "│ ├󰏖", "keyColor": "yellow" }, { "type": "shell", "key": "└ └", "keyColor": "yellow" }, "break", { "type": "de", "key": " DE", "keyColor": "blue" }, { "type": "wm", "key": "│ ├", "keyColor": "blue" }, { "type": "wmtheme", "key": "│ ├󰉼", "keyColor": "blue" }, { "type": "icons", "key": "│ ├󰀻", "keyColor": "blue", }, { "type": "cursor", "key": "│ ├", "keyColor": "blue", }, { "type": "terminalfont", "key": "│ ├", "keyColor": "blue", }, { "type": "terminal", "key": "└ └", "keyColor": "blue" }, { "type": "custom", "format": "\u001b[90m└────────────────────────────────────────────────────┘" }, "break", { "type": "custom", "format": "\u001b[90m┌────────────────────Uptime / Age────────────────────┐" }, { "type": "command", "key": " OS Age ", "keyColor": "magenta", "text": "birth_install=$(stat -c %W /); current=$(date +%s); time_progression=$((current - birth_install)); days_difference=$((time_progression / 86400)); echo $days_difference days" }, { "type": "uptime", "key": " Uptime ", "keyColor": "magenta" }, { "type": "custom", "format": "\u001b[90m└────────────────────────────────────────────────────┘" }, "break", ] } ================================================ FILE: configs/inputrc ================================================ $include ~/.local/share/omakub/defaults/bash/inputrc ================================================ FILE: configs/neovim/lazyvim.json ================================================ { "extras": [ "lazyvim.plugins.extras.editor.neo-tree" ], "install_version": 8, "news": { "NEWS.md": "10960" }, "version": 8 } ================================================ FILE: configs/neovim/snacks-animated-scrolling-off.lua ================================================ return { "folke/snacks.nvim", opts = { scroll = { enabled = false, -- Disable scrolling animations }, }, } ================================================ FILE: configs/neovim/transparency.lua ================================================ -- 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, "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" }) -- 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" }) -- 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" }) ================================================ FILE: configs/typora/ia_typora.css ================================================ :root { --accent-color: #aeb1b5; /* #'s before H1-3 */ --background-color: white; --border-color: #ddd; --code-bg-color: #f8f8f8; --font-color: #42464c; --header-color: #222324; --link-color: #2077b2; --control-text-color: #667176; --side-bar-bg-color: #fafafa; --body-font: iAWriterMonoS-Regular, monospace, Roboto; --border-radius: 2px; --document-horizontal-margin: 80px; --document-padding-x: 10ch; --font-size: 20px; --h1-fontsize: 20px; /* 1,5 rem = 24px */ --h2-fontsize: 20px; /* 1,375 rem = 22px */ --h3-fontsize: 20px; /* 1,25 rem = 20px */ --h4-fontsize: 20px; /* 1,125 rem = 18px */ --line-height: 1.8; --main-content-margin: 0 auto; --main-content-max-width: 85ch; --monospace-font-size: 20px; --monospace-font: iAWriterMonoS-Regular, monospace; --monospace-line-height: 1.6; --monospace: var(--monospace-font); /* Fixes source code mode */ --nav-width: 200px; --vertical-padding: 40px; } /* Narrow layout styles */ @media (max-width: 640px) { :root { --document-padding-x: 4ch; } } html { font-size: var(--font-size); background-color: var(--background-color); } html, body { color: var(--font-color); font-family: var(--body-font); line-height: var(--line-height); } #write { /* size of writing area: */ padding-left: var(--document-padding-x); padding-right: var(--document-padding-x); max-width: var(--main-content-max-width); box-sizing: border-box; } /** * --------------------- * Block Elements */ /* yaml */ pre.md-meta-block { background-color: var(--background-color); padding-bottom: .5rem; color: var(--accent-color); border-bottom: 2px solid var(--border-color); font-family: var(--monospace-font); } /* headings */ h1, h2, h3 { font-weight: bold; color: var(--header-color); } h1 { margin-top: 1rem; margin-bottom: 1rem; font-size: var(--h1-fontsize); } h1:not(:first-child) { margin-top: 1rem; } h2 { margin-top: 1rem; margin-bottom: 0rem; font-size: var(--h2-fontsize); } h3 { margin-top: 1rem; margin-bottom: 0rem; font-size: var(--h3-fontsize); } h4, h5, h6 { color: var(--header-color); margin-top: 1rem; margin-bottom: 0rem; font-size: 1rem; } h4 { font-size: var(--h4-fontsize); } h6 { color: var(--control-text-color); } h1::before, h2::before, h3::before { font-weight: 400; text-align: right; width: 5ch; padding-right: 1ch; margin-left: -5ch; color: var(--accent-color); display: inline-block; } h1::before { content: '#'; } h2::before { content: '##'; } h3::before { content: '###'; } h1 tt, h1 code { font-size: inherit; } h2 tt, h2 code { font-size: inherit; } h3 tt, h3 code { font-size: inherit; } h4 tt, h4 code { font-size: inherit; } h5 tt, h5 code { font-size: inherit; } h6 tt, h6 code { font-size: inherit; } /* table */ table { margin-top: 1rem; margin-bottom: 1rem; } table tr:nth-child(2n), thead { background-color: var(--side-bar-bg-color); } td, th { border-style: solid; border-color: var(--border-color); border-width: 1px; padding: .35rem .7rem } li p { margin: 0; } .task-list { padding-left: 0; } .task-list-item { padding-left: 1.5em; margin-bottom: 0rem; } #write input[type='checkbox'] { margin-top: 5px; } blockquote { margin: 1rem 0; padding-left: 2ch; margin-left: .5ch; position: relative; overflow: hidden; border-left: 2px solid var(--border-color); color: var(--accent-color); } /* horizontal line */ hr { border: none; border-bottom: 2px solid var(--border-color); margin-top: 1.4rem; margin-bottom: 1.4rem; } p { margin: 2rem 0; } /** * Code Fences * see http:/*support.typora.io/Code-Block-Styles */ .cm-s-inner .CodeMirror-gutters { background: var(--code-bg-color); } .code-tooltip { box-shadow: none; border-radius: var(--border-radius); background-color: var(--code-bg-color); border-color: var(--border-color); border-style: solid; border-width: 1px; } .code-tooltip input { outline: none; width: 20ch; } .md-fences .code-tooltip { bottom: -1.8rem; padding: none; } .md-fences.md-focus .cm-s-inner { /* Remove bottom right border radius when tooltip is shown */ border-bottom-right-radius: 0; } /* code tooltip autocomplete list */ .autoComplt-hint { background-color: transparent !important; margin: 0 !important; padding: 0.125rem 0.375rem !important; color: var(--text-color) !important; line-height: var(--line-height) !important; height: 1.4rem !important; } .autoComplt-hint-selected { background-color: var(--link-color) !important; color: var(--background-color) !important; } /* basic styles */ .md-fences, code, tt { border: 1px solid var(--border-color); background-color: var(--code-bg-color); font-family: var(--monospace-font); font-size: var(--monospace-font-size); border-radius: .25rem; padding: 0 .125rem; line-height: var(--monospace-line-height); } .md-fences { margin-bottom: 18px; margin-top: 15px; padding: 0.2em 1em; padding-top: 8px; padding-bottom: 6px; } a { color: var(--link-color); } /** * Control UI (optional) */ .outline-item:hover { color: var(--header-color); } #write div.md-toc-tooltip { background-color: var(--background-color); } ================================================ FILE: configs/typora/ia_typora_night.css ================================================ @import 'night/codeblock.dark.css'; @import 'night/mermaid.dark.css'; @import 'night/sourcemode.dark.css'; @import 'ia_typora.css'; :root { --accented-background-color: #1e1e1e; --light-header-color: #dbdbdb; /* H1-H3 */ --select-text-bg-color: #186a9a; --accent-color: #4f525a; --background-color: #101010; --font-color: #bbbcbc; --header-color: #bebebe; /* H4-H6 */ --border-color: #232629; --link-color: #5584aa; --code-bg-color: #1c1a1a; --hover-bg-color: #050505; --control-text-color: var(--font-color); --side-bar-bg-color: var(--accented-background-color); --control-text-hover-color: var(--header-color); --item-hover-text-color: var(--header-color); --item-hover-bg-color: var(--hover-bg-color); --bg-color: var(--background-color); --text-color: var(--font-color); --meta-content-color: var(--accent-color); --md-char-color: var(--accent-color); --window-border: 1px solid rgba(0,0,0,.07); --active-file-bg-color: var(--hover-bg-color); } .outline-item:hover { background-color: var(--hover-bg-color); } #write { cursor: -webkit-image-set(url("night/cursor.png") 1x, url("night/cursor@2x.png") 2x) 8 8, auto; } h1, h2, h3 { color: var(--light-header-color); } mark { background: #b8b80a } table tr:nth-child(2n), thead { background-color: #141313; } sup.md-footnote { background-color: var(--code-bg-color); color: var(--font-color); } /* right click menu */ .context-menu { background-color: #141313; } .context-menu.dropdown-menu .divider { background-color: #232629; } /* focus mode */ .on-focus-mode .md-end-block:not(.md-focus):not(.md-focus-container) * { color: #4f525a !important; } .on-focus-mode .md-end-block:not(.md-focus) img, .on-focus-mode .md-task-list-item:not(.md-focus-container)>input { opacity: #4f525a !important; } .on-focus-mode li[cid]:not(.md-focus-container){ color: #4f525a; } .on-focus-mode .md-fences.md-focus .CodeMirror-code>*:not(.CodeMirror-activeline) *, .on-focus-mode .CodeMirror.cm-s-inner:not(.CodeMirror-focused) * { color: #4f525a !important; } .on-focus-mode .md-focus, .on-focus-mode .md-focus-container { color: var(--light-header-color); } .on-focus-mode #typora-source .CodeMirror-code>*:not(.CodeMirror-activeline) * { color: #4f525a !important; } ================================================ FILE: configs/ulauncher.desktop ================================================ [Desktop Entry] Name=Ulauncher Comment=Application launcher for Linux GenericName=Launcher Categories=GNOME;GTK;Utility; TryExec=/usr/bin/ulauncher Exec=env GDK_BACKEND=wayland /usr/bin/ulauncher --hide-window Icon=ulauncher Terminal=false Type=Application X-GNOME-Autostart-enabled=true ================================================ FILE: configs/ulauncher.json ================================================ { "blacklisted-desktop-dirs": "/usr/share/locale:/usr/share/app-install:/usr/share/kservices5:/usr/share/fk5:/usr/share/kservicetypes5:/usr/share/applications/screensavers:/usr/share/kde4:/usr/share/mimelnk", "clear-previous-query": true, "disable-desktop-filters": false, "grab-mouse-pointer": false, "hotkey-show-app": "null", "render-on-screen": "mouse-pointer-monitor", "show-indicator-icon": true, "show-recent-apps": "0", "terminal-command": "", "theme-name": "dark" } ================================================ FILE: configs/vscode.json ================================================ { "editor.fontFamily": "CaskaydiaMono Nerd Font", "editor.tabSize": 2, "security.workspace.trust.untrustedFiles": "open", "editor.minimap.enabled": false, "git.ignoreMissingGitWarning": true, "editor.fontSize": 12, "editor.occurrencesHighlight": false, "editor.selectionHighlight": false, "editor.suggestOnTriggerCharacters": false, "editor.tabCompletion": "on", "editor.quickSuggestions": { "other": false, "comments": false, "strings": false }, "files.trimTrailingWhitespace": true, "git.confirmSync": false, "window.menuBarVisibility": "compact", "git.autofetch": true, "git.openRepositoryInParentFolders": "always", "explorer.confirmDelete": false, "extensions.ignoreRecommendations": true, "workbench.colorTheme": "Tokyo Night", "window.titleBarStyle": "custom" } ================================================ FILE: configs/xcompose ================================================ include "%H/.local/share/omakub/defaults/xcompose" # Identification : "$OMAKUB_USER_NAME" : "$OMAKUB_USER_EMAIL" ================================================ FILE: configs/zellij.kdl ================================================ theme "tokyo-night" default_layout "compact" on_force_close "quit" default_mode "locked" keybinds clear-defaults=true { locked { bind "Ctrl g" { SwitchToMode "normal"; } } pane { bind "Left" { MoveFocus "left"; } bind "Down" { MoveFocus "down"; } bind "Up" { MoveFocus "up"; } bind "Right" { MoveFocus "right"; } bind "c" { SwitchToMode "renamepane"; PaneNameInput 0; } bind "d" { NewPane "down"; SwitchToMode "locked"; } bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "locked"; } bind "f" { ToggleFocusFullscreen; SwitchToMode "locked"; } bind "h" { MoveFocus "left"; } bind "j" { MoveFocus "down"; } bind "k" { MoveFocus "up"; } bind "l" { MoveFocus "right"; } bind "n" { NewPane; SwitchToMode "locked"; } bind "p" { SwitchToMode "normal"; } bind "r" { NewPane "right"; SwitchToMode "locked"; } bind "w" { ToggleFloatingPanes; SwitchToMode "locked"; } bind "x" { CloseFocus; SwitchToMode "locked"; } bind "z" { TogglePaneFrames; SwitchToMode "locked"; } bind "Tab" { SwitchFocus; } } tab { bind "Left" { GoToPreviousTab; } bind "Down" { GoToNextTab; } bind "Up" { GoToPreviousTab; } bind "Right" { GoToNextTab; } bind "1" { GoToTab 1; SwitchToMode "locked"; } bind "2" { GoToTab 2; SwitchToMode "locked"; } bind "3" { GoToTab 3; SwitchToMode "locked"; } bind "4" { GoToTab 4; SwitchToMode "locked"; } bind "5" { GoToTab 5; SwitchToMode "locked"; } bind "6" { GoToTab 6; SwitchToMode "locked"; } bind "7" { GoToTab 7; SwitchToMode "locked"; } bind "8" { GoToTab 8; SwitchToMode "locked"; } bind "9" { GoToTab 9; SwitchToMode "locked"; } bind "[" { BreakPaneLeft; SwitchToMode "locked"; } bind "]" { BreakPaneRight; SwitchToMode "locked"; } bind "b" { BreakPane; SwitchToMode "locked"; } bind "h" { GoToPreviousTab; } bind "j" { GoToNextTab; } bind "k" { GoToPreviousTab; } bind "l" { GoToNextTab; } bind "n" { NewTab; SwitchToMode "locked"; } bind "r" { SwitchToMode "renametab"; TabNameInput 0; } bind "s" { ToggleActiveSyncTab; SwitchToMode "locked"; } bind "t" { SwitchToMode "normal"; } bind "x" { CloseTab; SwitchToMode "locked"; } bind "Tab" { ToggleTab; } } resize { bind "Left" { Resize "Increase left"; } bind "Down" { Resize "Increase down"; } bind "Up" { Resize "Increase up"; } bind "Right" { Resize "Increase right"; } bind "+" { Resize "Increase"; } bind "-" { Resize "Decrease"; } bind "=" { Resize "Increase"; } bind "H" { Resize "Decrease left"; } bind "J" { Resize "Decrease down"; } bind "K" { Resize "Decrease up"; } bind "L" { Resize "Decrease right"; } bind "h" { Resize "Increase left"; } bind "j" { Resize "Increase down"; } bind "k" { Resize "Increase up"; } bind "l" { Resize "Increase right"; } bind "r" { SwitchToMode "normal"; } } move { bind "Left" { MovePane "left"; } bind "Down" { MovePane "down"; } bind "Up" { MovePane "up"; } bind "Right" { MovePane "right"; } bind "h" { MovePane "left"; } bind "j" { MovePane "down"; } bind "k" { MovePane "up"; } bind "l" { MovePane "right"; } bind "m" { SwitchToMode "normal"; } bind "n" { MovePane; } bind "p" { MovePaneBackwards; } bind "Tab" { MovePane; } } scroll { bind "Alt Left" { MoveFocusOrTab "left"; SwitchToMode "locked"; } bind "Alt Down" { MoveFocus "down"; SwitchToMode "locked"; } bind "Alt Up" { MoveFocus "up"; SwitchToMode "locked"; } bind "Alt Right" { MoveFocusOrTab "right"; SwitchToMode "locked"; } bind "e" { EditScrollback; SwitchToMode "locked"; } bind "f" { SwitchToMode "entersearch"; SearchInput 0; } bind "Alt h" { MoveFocusOrTab "left"; SwitchToMode "locked"; } bind "Alt j" { MoveFocus "down"; SwitchToMode "locked"; } bind "Alt k" { MoveFocus "up"; SwitchToMode "locked"; } bind "Alt l" { MoveFocusOrTab "right"; SwitchToMode "locked"; } bind "s" { SwitchToMode "normal"; } } search { bind "c" { SearchToggleOption "CaseSensitivity"; } bind "n" { Search "down"; } bind "o" { SearchToggleOption "WholeWord"; } bind "p" { Search "up"; } bind "w" { SearchToggleOption "Wrap"; } } session { bind "c" { LaunchOrFocusPlugin "configuration" { floating true move_to_focused_tab true } SwitchToMode "locked" } bind "d" { Detach; } bind "o" { SwitchToMode "normal"; } bind "p" { LaunchOrFocusPlugin "plugin-manager" { floating true move_to_focused_tab true } SwitchToMode "locked" } bind "w" { LaunchOrFocusPlugin "session-manager" { floating true move_to_focused_tab true } SwitchToMode "locked" } } shared_among "normal" "locked" { bind "Alt Left" { MoveFocusOrTab "left"; } bind "Alt Down" { MoveFocus "down"; } bind "Alt Up" { MoveFocus "up"; } bind "Alt Right" { MoveFocusOrTab "right"; } bind "Alt +" { Resize "Increase"; } bind "Alt -" { Resize "Decrease"; } bind "Alt =" { Resize "Increase"; } bind "Alt [" { PreviousSwapLayout; } bind "Alt ]" { NextSwapLayout; } bind "Alt f" { ToggleFloatingPanes; } bind "Alt h" { MoveFocusOrTab "left"; } bind "Alt i" { MoveTab "left"; } bind "Alt j" { MoveFocus "down"; } bind "Alt k" { MoveFocus "up"; } bind "Alt l" { MoveFocusOrTab "right"; } bind "Alt n" { NewPane; } bind "Alt o" { MoveTab "right"; } } shared_except "locked" "renametab" "renamepane" { bind "Ctrl g" { SwitchToMode "locked"; } bind "Ctrl q" { Quit; } } shared_except "locked" "entersearch" { bind "Enter" { SwitchToMode "locked"; } } shared_except "locked" "entersearch" "renametab" "renamepane" { bind "Esc" { SwitchToMode "locked"; } } shared_except "locked" "entersearch" "renametab" "renamepane" "move" { bind "m" { SwitchToMode "move"; } } shared_except "locked" "entersearch" "search" "renametab" "renamepane" "session" { bind "o" { SwitchToMode "session"; } } shared_except "locked" "tab" "entersearch" "renametab" "renamepane" { bind "t" { SwitchToMode "tab"; } } shared_except "locked" "tab" "scroll" "entersearch" "renametab" "renamepane" { bind "s" { SwitchToMode "scroll"; } } shared_among "normal" "resize" "tab" "scroll" "prompt" "tmux" { bind "p" { SwitchToMode "pane"; } } shared_except "locked" "resize" "pane" "tab" "entersearch" "renametab" "renamepane" { bind "r" { SwitchToMode "resize"; } } shared_among "scroll" "search" { bind "PageDown" { PageScrollDown; } bind "PageUp" { PageScrollUp; } bind "Left" { PageScrollUp; } bind "Down" { ScrollDown; } bind "Up" { ScrollUp; } bind "Right" { PageScrollDown; } bind "Ctrl b" { PageScrollUp; } bind "Ctrl c" { ScrollToBottom; SwitchToMode "locked"; } bind "d" { HalfPageScrollDown; } bind "Ctrl f" { PageScrollDown; } bind "h" { PageScrollUp; } bind "j" { ScrollDown; } bind "k" { ScrollUp; } bind "l" { PageScrollDown; } bind "u" { HalfPageScrollUp; } } entersearch { bind "Ctrl c" { SwitchToMode "scroll"; } bind "Esc" { SwitchToMode "scroll"; } bind "Enter" { SwitchToMode "search"; } } renametab { bind "Esc" { UndoRenameTab; SwitchToMode "tab"; } } shared_among "renametab" "renamepane" { bind "Ctrl c" { SwitchToMode "locked"; } } renamepane { bind "Esc" { UndoRenamePane; SwitchToMode "pane"; } } } ================================================ FILE: defaults/bash/aliases ================================================ # File system alias ls='eza -lh --group-directories-first --icons=auto' 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 ..' alias ...='cd ../..' alias ....='cd ../../..' # Tools n() { if [ "$#" -eq 0 ]; then nvim .; else nvim "$@"; fi; } alias g='git' alias d='docker' alias r='rails' alias bat='batcat' alias lzg='lazygit' alias lzd='lazydocker' # Git alias gcm='git commit -m' alias gcam='git commit -a -m' alias gcad='git commit -a --amend' ================================================ FILE: defaults/bash/functions ================================================ # 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" } # Write iso file to sd card iso2sd() { if [ $# -ne 2 ]; then echo "Usage: iso2sd " echo "Example: iso2sd ~/Downloads/ubuntu-25.04-desktop-amd64.iso /dev/sda" echo -e "\nAvailable SD cards:" lsblk -d -o NAME | grep -E '^sd[a-z]' | awk '{print "/dev/"$1}' else sudo dd bs=4M status=progress oflag=sync if="$1" of="$2" sudo eject $2 fi } # Create a desktop launcher for a web app web2app() { if [ "$#" -ne 3 ]; then echo "Usage: web2app (IconURL must be in PNG -- use https://dashboardicons.com)" return 1 fi local APP_NAME="$1" local APP_URL="$2" local ICON_URL="$3" local ICON_DIR="$HOME/.local/share/applications/icons" local DESKTOP_FILE="$HOME/.local/share/applications/${APP_NAME}.desktop" local ICON_PATH="${ICON_DIR}/${APP_NAME}.png" mkdir -p "$ICON_DIR" if ! curl -sL -o "$ICON_PATH" "$ICON_URL"; then echo "Error: Failed to download icon." return 1 fi cat > "$DESKTOP_FILE" <" return 1 fi local APP_NAME="$1" local ICON_DIR="$HOME/.local/share/applications/icons" local DESKTOP_FILE="$HOME/.local/share/applications/${APP_NAME}.desktop" local ICON_PATH="${ICON_DIR}/${APP_NAME}.png" rm "$DESKTOP_FILE" rm "$ICON_PATH" } # Move a reference to a .desktop file, like Spotify.desktop, to a named folder, like Xtra. # Don't use full path for the .desktop file. app2folder() { if [ "$#" -ne 2 ]; then local FOLDERS=$(gsettings get org.gnome.desktop.app-folders folder-children | tr -d "[],'") echo "Usage: app2folder " echo "Folders: $FOLDERS" return 1 fi local DESKTOP_FILE="$1" local FOLDER="$2" local SCHEMA="org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/$FOLDER/" local CURRENT_APPS=$(gsettings get "$SCHEMA" apps) if [[ "$CURRENT_APPS" != *"$DESKTOP_FILE"* ]]; then local TRIMMED=$(echo "$CURRENT_APPS" | sed "s/^\[//;s/\]$//") gsettings set "$SCHEMA" apps "[$TRIMMED, '$DESKTOP_FILE']" fi } # Remove desktop app from folder app2folder-remove() { if [ "$#" -ne 2 ]; then local FOLDERS=$(gsettings get org.gnome.desktop.app-folders folder-children | tr -d "[],'") echo "Usage: app2folder-remove " echo "Folders: $FOLDERS" return 1 fi local DESKTOP_FILE="$1" local FOLDER="$2" local SCHEMA="org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/$FOLDER/" local CURRENT_APPS=$(gsettings get "$SCHEMA" apps) if [[ "$CURRENT_APPS" == *"$DESKTOP_FILE"* ]]; then local RAW_LIST=$(echo "$CURRENT_APPS" | tr -d "[]'") IFS=',' read -ra APPS_ARRAY <<< "$RAW_LIST" # Filter out the app to be removed local NEW_APPS=() for app in "${APPS_ARRAY[@]}"; do app=$(echo "$app" | xargs) # trim spaces if [[ "$app" != "$DESKTOP_FILE" && -n "$app" ]]; then NEW_APPS+=("'$app'") fi done # Join list again local NEW_LIST=$(IFS=, ; echo "${NEW_APPS[*]}") gsettings set "$SCHEMA" apps "[$NEW_LIST]" fi } # Ensure that external keyboards that use an fn key has the F keys as the default alias fix_fkeys='echo 2 | sudo tee /sys/module/hid_apple/parameters/fnmode' # Spotify window is too large on many displays, so fix this by zooming it down alias fix_spotify_window_size="sudo sed -i 's|^Exec=.*|Exec=spotify --force-device-scale-factor=1.5 %U|' /usr/local/share/applications/spotify.desktop" ================================================ FILE: defaults/bash/init ================================================ if command -v mise &> /dev/null; then eval "$(mise activate bash)" fi if command -v zoxide &> /dev/null; then eval "$(zoxide init bash)" fi if command -v fzf &> /dev/null; then if [[ -f /usr/share/bash-completion/completions/fzf ]]; then source /usr/share/bash-completion/completions/fzf fi if [[ -f /usr/share/doc/fzf/examples/key-bindings.bash ]]; then source /usr/share/doc/fzf/examples/key-bindings.bash fi fi ================================================ FILE: defaults/bash/inputrc ================================================ set meta-flag on set input-meta on set output-meta on set convert-meta off set completion-ignore-case on set completion-prefix-display-length 2 set show-all-if-ambiguous on set show-all-if-unmodified on # Arrow keys match what you've typed so far against your command history "\e[A": history-search-backward "\e[B": history-search-forward "\e[C": forward-char "\e[D": backward-char # Immediately add a trailing slash when autocompleting symlinks to directories set mark-symlinked-directories on # Do not autocomplete hidden files unless the pattern explicitly begins with a dot set match-hidden-files off # Show all autocomplete results at once set page-completions off # If there are more than 200 possible completions for a word, ask to show them all set completion-query-items 200 # Show extra file information when completing, like `ls -F` does set visible-stats on $if Bash # Be more intelligent when autocompleting by also looking at the text after # the cursor. For example, when the current line is "cd ~/src/mozil", and # the cursor is on the "z", pressing Tab will not autocomplete it to "cd # ~/src/mozillail", but to "cd ~/src/mozilla". (This is supported by the # Readline used by Bash 4.) set skip-completed-text on # Coloring for Bash 4 tab completions. set colored-stats on $endif ================================================ FILE: defaults/bash/prompt ================================================ # Technicolor dreams force_color_prompt=yes color_prompt=yes # Simple prompt with path in the window/pane title and caret for typing line PS1=$'\uf0a9 ' PS1="\[\e]0;\w\a\]$PS1" ================================================ FILE: defaults/bash/rc ================================================ source ~/.local/share/omakub/defaults/bash/shell source ~/.local/share/omakub/defaults/bash/aliases source ~/.local/share/omakub/defaults/bash/functions source ~/.local/share/omakub/defaults/bash/prompt source ~/.local/share/omakub/defaults/bash/init ================================================ FILE: defaults/bash/shell ================================================ # History control shopt -s histappend HISTCONTROL=ignoreboth HISTSIZE=32768 HISTFILESIZE="${HISTSIZE}" # Autocompletion source /usr/share/bash-completion/bash_completion # Set complete path export PATH="./bin:$HOME/.local/bin:$HOME/.local/share/omakub/bin:$PATH" set +h export OMAKUB_PATH="$HOME/.local/share/omakub" ================================================ FILE: defaults/xcompose ================================================ include "%L" # Emoji : "😄" # smile : "😂" # cry : "😍" # love : "✌️" # victory : "❤️" # heart : "👍" # yes : "👎" # no : "🖕" # fuck : "🤞" # wish : "🤘" # rock : "😘" # kiss : "🙄" # eyeroll : "🤤" # droll : "💰" # money : "🎉" # xellebrate <1> : "💯" # 100% : "🥂" # toast

: "🙏" # pray : "😉" # wink : "👌" # OK : "👋" # greeting : "💪" # arm : "🤯" # blowing # Typography : "—" ================================================ FILE: install/check-version.sh ================================================ #!/bin/bash if [ ! -f /etc/os-release ]; then echo "$(tput setaf 1)Error: Unable to determine OS. /etc/os-release file not found." echo "Installation stopped." exit 1 fi . /etc/os-release # Check if running on Ubuntu 24.04 or higher if [ "$ID" != "ubuntu" ] || [ $(echo "$VERSION_ID >= 24.04" | bc) != 1 ]; then echo "$(tput setaf 1)Error: OS requirement not met" echo "You are currently running: $ID $VERSION_ID" echo "OS required: Ubuntu 24.04 or higher" echo "Installation stopped." exit 1 fi # Check if running on x86 ARCH=$(uname -m) if [ "$ARCH" != "x86_64" ] && [ "$ARCH" != "i686" ]; then echo "$(tput setaf 1)Error: Unsupported architecture detected" echo "Current architecture: $ARCH" echo "This installation is only supported on x86 architectures (x86_64 or i686)." echo "Installation stopped." exit 1 fi ================================================ FILE: install/desktop/a-flatpak.sh ================================================ #!/bin/bash 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 ================================================ FILE: install/desktop/app-alacritty.sh ================================================ #!/bin/bash # 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/configs/alacritty/shared.toml ~/.config/alacritty/shared.toml cp ~/.local/share/omakub/configs/alacritty/pane.toml ~/.config/alacritty/pane.toml cp ~/.local/share/omakub/configs/alacritty/btop.toml ~/.config/alacritty/btop.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 # Migrate config format if needed alacritty migrate 2>/dev/null || true alacritty migrate -c ~/.config/alacritty/pane.toml 2>/dev/null || true alacritty migrate -c ~/.config/alacritty/btop.toml 2>/dev/null || true source ~/.local/share/omakub/install/desktop/set-alacritty-default.sh ================================================ FILE: install/desktop/app-chrome.sh ================================================ #!/bin/bash # 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 - ================================================ FILE: install/desktop/app-flameshot.sh ================================================ #!/bin/bash # Flameshot is a nice step-up over the default Gnome screenshot tool sudo apt install -y flameshot ================================================ FILE: install/desktop/app-gnome-sushi.sh ================================================ #!/bin/bash # Gives you previews in the file manager when pressing space sudo apt install -y gnome-sushi ================================================ FILE: install/desktop/app-gnome-tweak-tool.sh ================================================ #!/bin/bash sudo apt install -y gnome-tweak-tool ================================================ FILE: install/desktop/app-libreoffice.sh ================================================ #!/bin/bash # Work with Word, Excel, Powerpoint files sudo apt install -y libreoffice ================================================ FILE: install/desktop/app-localsend.sh ================================================ #!/bin/bash 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 rm localsend.deb cd - ================================================ FILE: install/desktop/app-obsidian.sh ================================================ #!/bin/bash # Obsidian is a multi-platform note taking application. See https://obsidian.md cd /tmp OBSIDIAN_VERSION=$(curl -s https://api.github.com/repos/obsidianmd/obsidian-releases/releases/latest | grep -Po '"tag_name": "v\K[^"]*') wget -O obsidian.deb "https://github.com/obsidianmd/obsidian-releases/releases/latest/download/obsidian_${OBSIDIAN_VERSION}_amd64.deb" sudo apt install -y ./obsidian.deb rm obsidian.deb cd - ================================================ FILE: install/desktop/app-pinta.sh ================================================ #!/bin/bash # Pinta is a simple drawing and image editing program. See https://www.pinta-project.com/ flatpak install -y flathub com.github.PintaProject.Pinta ================================================ FILE: install/desktop/app-signal.sh ================================================ #!/bin/bash if [ ! -f /etc/apt/sources.list.d/signal-desktop.sources ]; then [ -f /usr/share/keyrings/signal-desktop-keyring.gpg ] && sudo rm /usr/share/keyrings/signal-desktop-keyring.gpg wget -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > signal-desktop-keyring.gpg; cat signal-desktop-keyring.gpg | sudo tee /usr/share/keyrings/signal-desktop-keyring.gpg > /dev/null wget -O signal-desktop.sources https://updates.signal.org/static/desktop/apt/signal-desktop.sources; cat signal-desktop.sources | sudo tee /etc/apt/sources.list.d/signal-desktop.sources > /dev/null rm signal-desktop-keyring.gpg signal-desktop.sources fi sudo apt update sudo apt install -y signal-desktop ================================================ FILE: install/desktop/app-typora.sh ================================================ #!/bin/bash # Typora is a markdown editor and reader. See https://typora.io/ if [ ! -f /etc/apt/sources.list.d/typora.list ]; then [ -f /etc/apt/keyrings/typora.gpg ] && sudo rm /etc/apt/keyrings/typora.gpg sudo mkdir -p /etc/apt/keyrings curl -fsSL https://downloads.typora.io/typora.gpg | sudo tee /etc/apt/keyrings/typora.gpg > /dev/null echo "deb [signed-by=/etc/apt/keyrings/typora.gpg] https://downloads.typora.io/linux ./" | sudo tee /etc/apt/sources.list.d/typora.list fi sudo apt update sudo apt install typora -y # Add iA Typora theme mkdir -p ~/.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/ ================================================ FILE: install/desktop/app-vlc.sh ================================================ #!/bin/bash sudo apt install -y vlc ================================================ FILE: install/desktop/app-vscode.sh ================================================ #!/bin/bash if [ ! -f /etc/apt/keyrings/packages.microsoft.gpg ] || [ ! -f /usr/share/keyrings/microsoft.gpg ]; then [ -f /etc/apt/keyrings/packages.microsoft.gpg ] && sudo rm /etc/apt/keyrings/packages.microsoft.gpg cd /tmp wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor >packages.microsoft.gpg sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" | sudo tee /etc/apt/sources.list.d/vscode.list >/dev/null rm -f packages.microsoft.gpg cd - fi sudo apt update sudo apt install -y code mkdir -p ~/.config/Code/User cp ~/.local/share/omakub/configs/vscode.json ~/.config/Code/User/settings.json # Install default supported themes code --install-extension enkia.tokyo-night ================================================ FILE: install/desktop/app-wl-clipboard.sh ================================================ #!/bin/bash # Provides a system clipboard interface for Neovim under Wayland sudo apt install wl-clipboard ================================================ FILE: install/desktop/app-xournalpp.sh ================================================ #!/bin/bash sudo apt install -y xournalpp ================================================ FILE: install/desktop/applications.sh ================================================ #!/bin/bash for script in ~/.local/share/omakub/applications/*.sh; do source $script; done ================================================ FILE: install/desktop/fonts.sh ================================================ #!/bin/bash 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 - ================================================ FILE: install/desktop/optional/app-1password.sh ================================================ #!/bin/bash # Install 1password and 1password-cli single script cd /tmp wget https://downloads.1password.com/linux/debian/amd64/stable/1password-latest.deb -O 1password.deb sudo apt install ./1password.deb -y rm 1password.deb cd - ================================================ FILE: install/desktop/optional/app-asdcontrol.sh ================================================ #!/bin/bash # Install asdcontrol git clone https://github.com/nikosdion/asdcontrol.git /tmp/asdcontrol cd /tmp/asdcontrol make sudo make install cd - rm -rf /tmp/asdcontrol # Setup sudo-less controls echo 'KERNEL=="hiddev*", ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="9243", GROUP="users", OWNER="root", MODE="0660"' | sudo tee /etc/udev/rules.d/50-apple-xdr.rules >/dev/null echo 'KERNEL=="hiddev*", ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="1114", GROUP="users", OWNER="root", MODE="0660"' | sudo tee /etc/udev/rules.d/50-apple-studio.rules >/dev/null sudo udevadm control --reload-rules # Reboot to pickup changes gum confirm "Ready to reboot for brightness controls to be available?" && sudo reboot ================================================ FILE: install/desktop/optional/app-audacity.sh ================================================ #!/bin/bash flatpak install -y flathub org.audacityteam.Audacity ================================================ FILE: install/desktop/optional/app-brave.sh ================================================ #!/bin/bash if [ ! -f /etc/apt/sources.list.d/brave-browser-release.list ]; then [ -f /usr/share/keyrings/brave-browser-archive-keyring.gpg ] && sudo rm /usr/share/keyrings/brave-browser-archive-keyring.gpg 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 arch=amd64] https://brave-browser-apt-release.s3.brave.com/ stable main" | sudo tee /etc/apt/sources.list.d/brave-browser-release.list fi sudo apt update sudo apt install -y brave-browser ================================================ FILE: install/desktop/optional/app-cursor.sh ================================================ #!/bin/bash cd /tmp curl -L "https://www.cursor.com/api/download?platform=linux-x64&releaseTrack=stable" | jq -r '.downloadUrl' | xargs curl -L -o cursor.appimage sudo mv cursor.appimage /opt/cursor.appimage sudo chmod +x /opt/cursor.appimage sudo apt install -y fuse3 sudo apt install -y libfuse2t64 DESKTOP_FILE="/usr/share/applications/cursor.desktop" sudo bash -c "cat > $DESKTOP_FILE" </dev/null ================================================ FILE: install/desktop/optional/app-gimp.sh ================================================ #!/bin/bash sudo flatpak install -y org.gimp.GIMP ================================================ FILE: install/desktop/optional/app-mainline-kernels.sh ================================================ #!/bin/bash sudo add-apt-repository -y ppa:cappelikan/ppa sudo apt update -y sudo apt install -y mainline ================================================ FILE: install/desktop/optional/app-minecraft.sh ================================================ #!/bin/bash sudo apt install -y openjdk-8-jdk cd /tmp wget https://launcher.mojang.com/download/Minecraft.deb sudo apt install -y ./Minecraft.deb rm Minecraft.deb cd - ================================================ FILE: install/desktop/optional/app-obs-studio.sh ================================================ #!/bin/bash # 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 ================================================ FILE: install/desktop/optional/app-retroarch.sh ================================================ #!/bin/bash flatpak install -y flathub org.libretro.RetroArch ================================================ FILE: install/desktop/optional/app-rubymine.sh ================================================ #!/bin/bash sudo snap install rubymine --classic ================================================ FILE: install/desktop/optional/app-spotify.sh ================================================ #!/bin/bash # Stream music using https://spotify.com if [ ! -f /etc/apt/sources.list.d/spotify.list ]; then [ -f /etc/apt/trusted.gpg.d/spotify.gpg ] && sudo rm /etc/apt/trusted.gpg.d/spotify.gpg curl -sS https://download.spotify.com/debian/pubkey_5384CE82BA52C83A.gpg | sudo gpg --dearmor --yes -o /etc/apt/trusted.gpg.d/spotify.gpg echo "deb [signed-by=/etc/apt/trusted.gpg.d/spotify.gpg] https://repository.spotify.com stable non-free" | sudo tee /etc/apt/sources.list.d/spotify.list fi sudo apt update sudo apt install -y spotify-client ================================================ FILE: install/desktop/optional/app-steam.sh ================================================ #!/bin/bash # 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 - ================================================ FILE: install/desktop/optional/app-virtualbox.sh ================================================ #!/bin/bash # Virtualbox allows you to run VMs for other flavors of Linux or even Windows # See https://ubuntu.com/tutorials/how-to-run-ubuntu-desktop-on-a-virtual-machine-using-virtualbox#1-overview # for a guide on how to run Ubuntu inside it. sudo apt install -y virtualbox virtualbox-ext-pack sudo usermod -aG vboxusers ${USER} ================================================ FILE: install/desktop/optional/app-windows.sh ================================================ #!/bin/bash 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 ================================================ FILE: install/desktop/optional/app-windsurf.sh ================================================ #!/bin/bash if [ ! -f /etc/apt/sources.list.d/windsurf.list ]; then [ -f /usr/share/keyrings/windsurf-stable-archive-keyring.gpg ] && sudo rm /usr/share/keyrings/windsurf-stable-archive-keyring.gpg curl -fsSL "https://windsurf-stable.codeiumdata.com/wVxQEIWkwPUEAGf3/windsurf.gpg" | sudo gpg --dearmor -o /usr/share/keyrings/windsurf-stable-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/windsurf-stable-archive-keyring.gpg arch=amd64] https://windsurf-stable.codeiumdata.com/wVxQEIWkwPUEAGf3/apt stable main" | sudo tee /etc/apt/sources.list.d/windsurf.list >/dev/null fi sudo apt update sudo apt install -y windsurf ================================================ FILE: install/desktop/optional/app-zed.sh ================================================ #!/bin/bash curl https://zed.dev/install.sh | sh ================================================ FILE: install/desktop/optional/app-zoom.sh ================================================ #!/bin/bash # 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 cd - ================================================ FILE: install/desktop/optional/select-web-apps.sh ================================================ #!/bin/bash source $OMAKUB_PATH/defaults/bash/functions AVAILABLE_WEB_APPS=("Chat GPT" "Google Photos" "Google Contacts" "Tailscale") apps=$(gum choose "${AVAILABLE_WEB_APPS[@]}" --no-limit --height 6 --header "Select web apps") if [[ -n "$apps" ]]; then IFS=$'\n' for app in $apps; do case $app in "Chat GPT") web2app 'Chat GPT' https://chatgpt.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/chatgpt.png app2folder 'Chat GPT.desktop' WebApps ;; "Google Photos") web2app 'Google Photos' https://photos.google.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-photos.png app2folder 'Google Photos.desktop' WebApps ;; "Google Contacts") web2app 'Google Contacts' https://contacts.google.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-contacts.png app2folder 'Google Contacts.desktop' WebApps ;; "Tailscale") web2app 'Tailscale' https://login.tailscale.com/admin/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/tailscale-light.png app2folder 'Tailscale.desktop' WebApps ;; esac done fi ================================================ FILE: install/desktop/select-optional-apps.sh ================================================ #!/bin/bash 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 ================================================ FILE: install/desktop/set-alacritty-default.sh ================================================ #!/usr/bin/env sh # Make alacritty default terminal emulator sudo update-alternatives --set x-terminal-emulator /usr/bin/alacritty ================================================ FILE: install/desktop/set-app-grid.sh ================================================ #!/bin/bash # 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 sudo rm -rf /usr/share/applications/display-im7.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', 'LibreOffice', 'WebApps']" 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 "['org.Characters.desktop', 'gnome-language-selector.desktop', 'org.gnome.PowerStats.desktop', 'org.gnome.Logs.desktop', 'yelp.desktop', 'org.gnome.Yelp.desktop', 'org.gnome.eog.desktop', 'org.gnome.Sysprof.desktop' ]" gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/LibreOffice/ name 'LibreOffice' gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/LibreOffice/ apps "['libreoffice-base.desktop', 'libreoffice-calc.desktop', 'libreoffice-draw.desktop', 'libreoffice-impress.desktop', 'libreoffice-math.desktop', 'libreoffice-startcenter.desktop', 'libreoffice-writer.desktop', 'libreoffice-xsltfilter.desktop']" gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/WebApps/ name 'Web Apps' gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/WebApps/ apps "['Basecamp.desktop', 'HEY.desktop']" ================================================ FILE: install/desktop/set-dock.sh ================================================ #!/bin/bash # 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" ================================================ FILE: install/desktop/set-framework-text-scaling.sh ================================================ #!/bin/bash COMPUTER_MAKER=$(sudo dmidecode -t system | grep 'Manufacturer:' | awk '{print $2}') SCREEN_RESOLUTION=$(xrandr | grep '*+' | awk '{print $1}') if [ "$COMPUTER_MAKER" == "Framework" ] && [ "$SCREEN_RESOLUTION" == "2256x1504" ]; then gsettings set org.gnome.desktop.interface text-scaling-factor 0.8 gsettings set org.gnome.desktop.interface cursor-size 16 sed -i "s/size = 9/size = 7/g" ~/.config/alacritty/alacritty.toml fi ================================================ FILE: install/desktop/set-gnome-extensions.sh ================================================ #!/bin/bash sudo apt install -y gnome-shell-extension-manager gir1.2-gtop-2.0 gir1.2-clutter-1.0 pipx install gnome-extensions-cli --system-site-packages # Turn off default Ubuntu extensions gnome-extensions disable tiling-assistant@ubuntu.com gnome-extensions disable ubuntu-appindicators@ubuntu.com gnome-extensions disable ubuntu-dock@ubuntu.com gnome-extensions disable ding@rastersoft.com # Pause to assure user is ready to accept confirmations gum confirm "To install Gnome extensions, you need to accept some confirmations. 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 tophat@fflewddur.github.io gext install AlphabeticalAppGrid@stuarthayhurst # 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/tophat@fflewddur.github.io/schemas/org.gnome.shell.extensions.tophat.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 gsettings set org.gnome.shell.extensions.tactile col-0 1 gsettings set org.gnome.shell.extensions.tactile col-1 2 gsettings set org.gnome.shell.extensions.tactile col-2 1 gsettings set org.gnome.shell.extensions.tactile col-3 0 gsettings set org.gnome.shell.extensions.tactile row-0 1 gsettings set org.gnome.shell.extensions.tactile row-1 1 gsettings set org.gnome.shell.extensions.tactile gap-size 32 # Configure Just Perfection gsettings set org.gnome.shell.extensions.just-perfection animation 2 gsettings set org.gnome.shell.extensions.just-perfection dash-app-running true gsettings set org.gnome.shell.extensions.just-perfection workspace true gsettings set org.gnome.shell.extensions.just-perfection workspace-popup false # Configure Blur My Shell gsettings set org.gnome.shell.extensions.blur-my-shell.appfolder blur false gsettings set org.gnome.shell.extensions.blur-my-shell.lockscreen blur false gsettings set org.gnome.shell.extensions.blur-my-shell.screenshot blur false gsettings set org.gnome.shell.extensions.blur-my-shell.window-list blur false gsettings set org.gnome.shell.extensions.blur-my-shell.panel blur false gsettings set org.gnome.shell.extensions.blur-my-shell.overview blur true gsettings set org.gnome.shell.extensions.blur-my-shell.overview pipeline 'pipeline_default' gsettings set org.gnome.shell.extensions.blur-my-shell.dash-to-dock blur true gsettings set org.gnome.shell.extensions.blur-my-shell.dash-to-dock brightness 0.6 gsettings set org.gnome.shell.extensions.blur-my-shell.dash-to-dock sigma 30 gsettings set org.gnome.shell.extensions.blur-my-shell.dash-to-dock static-blur true gsettings set org.gnome.shell.extensions.blur-my-shell.dash-to-dock style-dash-to-dock 0 # Configure Space Bar gsettings set org.gnome.shell.extensions.space-bar.behavior smart-workspace-names false gsettings set org.gnome.shell.extensions.space-bar.shortcuts enable-activate-workspace-shortcuts false gsettings set org.gnome.shell.extensions.space-bar.shortcuts enable-move-to-workspace-shortcuts true gsettings set org.gnome.shell.extensions.space-bar.shortcuts open-menu "@as []" # Configure TopHat gsettings set org.gnome.shell.extensions.tophat show-icons false gsettings set org.gnome.shell.extensions.tophat show-cpu false gsettings set org.gnome.shell.extensions.tophat show-disk false gsettings set org.gnome.shell.extensions.tophat show-mem false gsettings set org.gnome.shell.extensions.tophat show-fs false gsettings set org.gnome.shell.extensions.tophat network-usage-unit bits # Configure AlphabeticalAppGrid gsettings set org.gnome.shell.extensions.alphabetical-app-grid folder-order-position 'end' ================================================ FILE: install/desktop/set-gnome-hotkeys.sh ================================================ #!/bin/bash # Alt+F4 is very cumbersome 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']" # Full-screen with title/navigation bar gsettings set org.gnome.desktop.wm.keybindings toggle-fullscreen "['F11']" # Use 6 fixed workspaces instead of dynamic mode gsettings set org.gnome.mutter dynamic-workspaces false gsettings set org.gnome.desktop.wm.preferences num-workspaces 6 # Disable the hotkeys in the Dash to Dock extension (most likely culprit) gsettings set org.gnome.shell.extensions.dash-to-dock hot-keys false # Use alt for pinned apps gsettings set org.gnome.shell.keybindings switch-to-application-1 "['1']" gsettings set org.gnome.shell.keybindings switch-to-application-2 "['2']" gsettings set org.gnome.shell.keybindings switch-to-application-3 "['3']" gsettings set org.gnome.shell.keybindings switch-to-application-4 "['4']" gsettings set org.gnome.shell.keybindings switch-to-application-5 "['5']" gsettings set org.gnome.shell.keybindings switch-to-application-6 "['6']" gsettings set org.gnome.shell.keybindings switch-to-application-7 "['7']" gsettings set org.gnome.shell.keybindings switch-to-application-8 "['8']" gsettings set org.gnome.shell.keybindings switch-to-application-9 "['9']" # Use super for workspaces gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-1 "['1']" gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-2 "['2']" gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-3 "['3']" gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-4 "['4']" gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-5 "['5']" gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-6 "['6']" # Reserve slots for custom keybindings gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom5/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom6/']" # Set ulauncher to Super+Space gsettings set org.gnome.desktop.wm.keybindings switch-input-source "@as []" gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ name 'Ulauncher' gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ command 'sh -c "pgrep -x ulauncher && { ulauncher-toggle || true; } || setsid -f ulauncher"' gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ binding 'space' # Set flameshot (with the sh fix for starting under Wayland) on alternate print screen key gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/ name 'Flameshot' gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/ command 'sh -c -- "flameshot gui"' gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/ binding 'Print' # Start a new alacritty window (rather than just switch to the already open one) gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/ name 'New Alacritty Window' gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/ command 'alacritty' gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/ binding '2' # Start a new Chrome window (rather than just switch to the already open one) gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3/ name 'New Chrome Window' gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3/ command 'google-chrome --new-window' gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3/ binding '1' # Turn bightness down on Apple monitor (requires ASDControl installed) gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4/ name 'Apple Brightness Down (ASDControl)' gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4/ binding 'F1' gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4/ command "sh -c 'asdcontrol \$(asdcontrol --detect /dev/usb/hiddev* 2>/dev/null | grep ^/dev/usb/hiddev | cut -d: -f1) -- -5000'" # Turn bightness up on Apple monitor (requires ADSControl installed) gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom5/ name 'Apple Brightness Up (ASDControl)' gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom5/ binding 'F2' gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom5/ command "sh -c 'asdcontrol \$(asdcontrol --detect /dev/usb/hiddev* 2>/dev/null | grep ^/dev/usb/hiddev | cut -d: -f1) -- +5000'" # Turn bightness up to max on Apple monitor (requires ADSControl installed) gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom6/ name 'Apple Brightness Max (ASDControl)' gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom6/ binding 'F2' gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom6/ command "sh -c 'asdcontrol \$(asdcontrol --detect /dev/usb/hiddev* 2>/dev/null | grep ^/dev/usb/hiddev | cut -d: -f1) -- +60000'" ================================================ FILE: install/desktop/set-gnome-settings.sh ================================================ #!/bin/bash # 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 # Turn off ambient sensors for setting screen brightness (they rarely work well!) gsettings set org.gnome.settings-daemon.plugins.power ambient-enabled false ================================================ FILE: install/desktop/set-gnome-theme.sh ================================================ #!/bin/bash source ~/.local/share/omakub/themes/tokyo-night/gnome.sh source ~/.local/share/omakub/themes/tokyo-night/tophat.sh ================================================ FILE: install/desktop/set-xcompose.sh ================================================ #!/bin/bash envsubst < ~/.local/share/omakub/configs/xcompose > ~/.XCompose ibus restart gsettings set org.gnome.desktop.input-sources xkb-options "['compose:caps']" ================================================ FILE: install/desktop/ulauncher.sh ================================================ #!/bin/bash sudo add-apt-repository universe -y sudo add-apt-repository ppa:agornostal/ulauncher -y sudo apt update sudo apt install ulauncher -y # Start ulauncher to have it populate config before we overwrite mkdir -p ~/.config/autostart/ cp ~/.local/share/omakub/configs/ulauncher.desktop ~/.config/autostart/ulauncher.desktop gtk-launch ulauncher.desktop >/dev/null 2>&1 sleep 2 # ensure enough time for ulauncher to set defaults cp ~/.local/share/omakub/configs/ulauncher.json ~/.config/ulauncher/settings.json ================================================ FILE: install/desktop.sh ================================================ #!/bin/bash # Run desktop installers for installer in ~/.local/share/omakub/install/desktop/*.sh; do source $installer; done # Logout to pickup changes gum confirm "Ready to reboot for all settings to take effect?" && sudo reboot || true ================================================ FILE: install/first-run-choices.sh ================================================ #!/bin/bash # Only ask for default desktop app choices when running Gnome if [[ "$XDG_CURRENT_DESKTOP" == *"GNOME"* ]]; then 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 ' ' '-') fi 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)") ================================================ FILE: install/identification.sh ================================================ #!/bin/bash echo "Enter identification for git and autocomplete..." SYSTEM_NAME=$(getent passwd "$USER" | cut -d ':' -f 5 | cut -d ',' -f 1) export OMAKUB_USER_NAME=$(gum input --placeholder "Enter full name" --value "$SYSTEM_NAME" --prompt "Name> ") export OMAKUB_USER_EMAIL=$(gum input --placeholder "Enter email address" --prompt "Email> ") ================================================ FILE: install/terminal/a-shell.sh ================================================ #!/bin/bash # 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 ================================================ FILE: install/terminal/app-btop.sh ================================================ #!/bin/bash # This script installs btop, a resource monitor that shows usage and stats for processor, memory, disks, network and processes. sudo apt install -y btop # Use Omakub btop config mkdir -p ~/.config/btop/themes cp ~/.local/share/omakub/configs/btop.conf ~/.config/btop/btop.conf cp ~/.local/share/omakub/themes/tokyo-night/btop.theme ~/.config/btop/themes/tokyo-night.theme ================================================ FILE: install/terminal/app-fastfetch.sh ================================================ #!/bin/bash # Display system information in the terminal sudo add-apt-repository -y ppa:zhangsongcui3371/fastfetch sudo apt update -y sudo apt install -y fastfetch # Only attempt to set configuration if fastfetch is not already set if [ ! -f "$HOME/.config/fastfetch/config.jsonc" ]; then # Use Omakub fastfetch config mkdir -p ~/.config/fastfetch cp ~/.local/share/omakub/configs/fastfetch.jsonc ~/.config/fastfetch/config.jsonc fi ================================================ FILE: install/terminal/app-github-cli.sh ================================================ #!/bin/bash if [ ! -f /etc/apt/sources.list.d/github-cli.list ]; then [ -f /usr/share/keyrings/githubcli-archive-keyring.gpg ] && sudo rm /usr/share/keyrings/githubcli-archive-keyring.gpg curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg status=none sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list >/dev/null fi sudo apt update sudo apt install gh -y ================================================ FILE: install/terminal/app-lazydocker.sh ================================================ #!/bin/bash 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 sudo install lazydocker /usr/local/bin rm lazydocker.tar.gz lazydocker cd - ================================================ FILE: install/terminal/app-lazygit.sh ================================================ #!/bin/bash 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 sudo install lazygit /usr/local/bin rm lazygit.tar.gz lazygit mkdir -p ~/.config/lazygit/ touch ~/.config/lazygit/config.yml cd - ================================================ FILE: install/terminal/app-neovim.sh ================================================ #!/bin/bash cd /tmp wget -O nvim.tar.gz "https://github.com/neovim/neovim/releases/download/stable/nvim-linux-x86_64.tar.gz" tar -xf nvim.tar.gz sudo install nvim-linux-x86_64/bin/nvim /usr/local/bin/nvim sudo cp -R nvim-linux-x86_64/lib /usr/local/ sudo cp -R nvim-linux-x86_64/share /usr/local/ rm -rf nvim-linux-x86_64 nvim.tar.gz cd - # Install luarocks and tree-sitter-cli to resolve lazyvim :checkhealth warnings sudo apt install -y luarocks tree-sitter-cli # 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 # Remove the .git folder, so you can add it to your own repo later rm -rf ~/.config/nvim/.git # 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 # Turn off animated scrolling cp ~/.local/share/omakub/configs/neovim/snacks-animated-scrolling-off.lua ~/.config/nvim/lua/plugins/ # Turn off relative line numbers echo "vim.opt.relativenumber = false" >>~/.config/nvim/lua/config/options.lua # Ensure editor.neo-tree is used by default cp ~/.local/share/omakub/configs/neovim/lazyvim.json ~/.config/nvim/ fi # Replace desktop launcher with one running inside Alacritty if [[ -d ~/.local/share/applications ]]; then sudo rm -rf /usr/share/applications/nvim.desktop sudo rm -rf /usr/local/share/applications/nvim.desktop source ~/.local/share/omakub/applications/Neovim.sh fi ================================================ FILE: install/terminal/app-zellij.sh ================================================ #!/bin/bash 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/themes [ ! -f "$HOME/.config/zellij/config.kdl" ] && cp ~/.local/share/omakub/configs/zellij.kdl ~/.config/zellij/config.kdl cp ~/.local/share/omakub/themes/tokyo-night/zellij.kdl ~/.config/zellij/themes/tokyo-night.kdl ================================================ FILE: install/terminal/apps-terminal.sh ================================================ #!/bin/bash sudo apt install -y fzf ripgrep bat eza zoxide plocate apache2-utils fd-find ================================================ FILE: install/terminal/docker.sh ================================================ #!/bin/bash # Add the official Docker repo if [ ! -f /etc/apt/sources.list.d/docker.list ]; then [ -f /etc/apt/keyrings/docker.asc ] && sudo rm /etc/apt/keyrings/docker.asc sudo install -m 0755 -d /etc/apt/keyrings sudo wget -qO /etc/apt/keyrings/docker.asc https://download.docker.com/linux/ubuntu/gpg sudo chmod a+r /etc/apt/keyrings/docker.asc echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list >/dev/null fi # Install Docker engine and standard plugins sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras # Give this user privileged Docker access sudo usermod -aG docker ${USER} # Limit log size to avoid running out of disk echo '{"log-driver":"json-file","log-opts":{"max-size":"10m","max-file":"5"}}' | sudo tee /etc/docker/daemon.json ================================================ FILE: install/terminal/libraries.sh ================================================ #!/bin/bash sudo apt install -y \ build-essential pkg-config autoconf bison clang rustc pipx \ 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 libpq-dev postgresql-client postgresql-client-common ================================================ FILE: install/terminal/mise.sh ================================================ #!/bin/bash # Install mise for managing multiple versions of languages. See https://mise.jdx.dev/ sudo apt update -y && sudo apt install -y gpg wget curl sudo install -dm 755 /etc/apt/keyrings wget -qO - https://mise.jdx.dev/gpg-key.pub | gpg --dearmor | sudo tee /etc/apt/keyrings/mise-archive-keyring.gpg 1>/dev/null echo "deb [signed-by=/etc/apt/keyrings/mise-archive-keyring.gpg arch=$(dpkg --print-architecture)] https://mise.jdx.dev/deb stable main" | sudo tee /etc/apt/sources.list.d/mise.list sudo apt update sudo apt install -y mise ================================================ FILE: install/terminal/optional/app-geekbench.sh ================================================ #!/bin/bash GB_VERSION="6.4.0" cd /tmp gum spin --title "Downloading Geekbench $GB_VERSION..." -- \ curl -sLo geekbench.tar.gz "https://cdn.geekbench.com/Geekbench-${GB_VERSION}-Linux.tar.gz" gum spin --title "Extracting Geekbench $GB_VERSION..." -- \ tar -xzf geekbench.tar.gz sudo mv "Geekbench-${GB_VERSION}-Linux" /usr/local/geekbench6 sudo ln -sf /usr/local/geekbench6/geekbench6 /usr/local/bin/geekbench6 rm -rf Geekbench* geekbench.tar.gz cd - echo "Run as geekbench6 from the terminal" ================================================ FILE: install/terminal/optional/app-ollama.sh ================================================ #!/bin/bash curl -fsSL https://ollama.com/install.sh | sh ================================================ FILE: install/terminal/optional/app-tailscale.sh ================================================ #!/bin/bash curl -fsSL https://tailscale.com/install.sh | sh ================================================ FILE: install/terminal/required/app-gum.sh ================================================ #!/bin/bash # Gum is used for the Omakub commands for tailoring Omakub after the initial install cd /tmp GUM_VERSION="0.17.0" wget -qO gum.deb "https://github.com/charmbracelet/gum/releases/download/v${GUM_VERSION}/gum_${GUM_VERSION}_amd64.deb" sudo apt-get install -y --allow-downgrades ./gum.deb rm gum.deb cd - ================================================ FILE: install/terminal/select-dev-language.sh ================================================ #!/bin/bash # 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@latest mise settings add idiomatic_version_file_enable_tools ruby mise x ruby -- gem install rails --no-document ;; Node.js) mise use --global node@lts ;; Go) mise use --global go@latest ;; PHP) sudo apt -y install php php-{curl,apcu,intl,mbstring,opcache,pgsql,mysql,sqlite3,redis,xml,zip} --no-install-recommends 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 ================================================ FILE: install/terminal/select-dev-storage.sh ================================================ #!/bin/bash # 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 ================================================ FILE: install/terminal/set-git.sh ================================================ #!/bin/bash # Set common git aliases git config --global alias.co checkout git config --global alias.br branch git config --global alias.ci commit git config --global alias.st status git config --global pull.rebase true # Set identification from install inputs if [[ -n "${OMAKUB_USER_NAME//[[:space:]]/}" ]]; then git config --global user.name "$OMAKUB_USER_NAME" fi if [[ -n "${OMAKUB_USER_EMAIL//[[:space:]]/}" ]]; then git config --global user.email "$OMAKUB_USER_EMAIL" fi ================================================ FILE: install/terminal.sh ================================================ #!/bin/bash # 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 ================================================ FILE: install.sh ================================================ #!/bin/bash # Exit immediately if a command exits with a non-zero status set -e # Give people a chance to retry running the installation trap 'echo "Omakub installation failed! You can retry by running: source ~/.local/share/omakub/install.sh"' ERR # Check the distribution name and version and abort if incompatible source ~/.local/share/omakub/install/check-version.sh # Ask for app choices echo "Get ready to make a few choices..." source ~/.local/share/omakub/install/terminal/required/app-gum.sh >/dev/null source ~/.local/share/omakub/install/first-run-choices.sh source ~/.local/share/omakub/install/identification.sh # Desktop software and tweaks will only be installed if we're running Gnome if [[ "$XDG_CURRENT_DESKTOP" == *"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 echo "Installing terminal and desktop tools..." # Install terminal tools source ~/.local/share/omakub/install/terminal.sh # Install desktop tools and tweaks source ~/.local/share/omakub/install/desktop.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 else echo "Only installing terminal tools..." source ~/.local/share/omakub/install/terminal.sh fi ================================================ FILE: migrations/1718359027.sh ================================================ #!/bin/bash # 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/Basecamp.sh [ -f ~/.local/share/applications/HEY.desktop ] && source $OMAKUB_PATH/applications/HEY.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 ================================================ FILE: migrations/1722091912.sh ================================================ #!/bin/bash sudo echo "Running upgrade migration..." # Add rustc and pgsql client libs source $OMAKUB_PATH/install/terminal/libraries.sh # Set name and class for desktop files source $OMAKUB_PATH/applications/About.sh source $OMAKUB_PATH/applications/Activity.sh source $OMAKUB_PATH/applications/Basecamp.sh source $OMAKUB_PATH/applications/HEY.sh source $OMAKUB_PATH/applications/Docker.sh source $OMAKUB_PATH/applications/Neovim.sh source $OMAKUB_PATH/applications/Omakub.sh source $OMAKUB_PATH/applications/WhatsApp.sh ================================================ FILE: migrations/1722387070.sh ================================================ #!/bin/bash source $OMAKUB_PATH/install/desktop/app-wl-clipboard.sh ================================================ FILE: migrations/1723756122.sh ================================================ #!/bin/bash # Uninstall Vitals if [ -n "$(gnome-extensions list | grep Vitals@CoreCoding.com)" ]; then gnome-extensions uninstall Vitals@CoreCoding.com fi # Install Tophat libraries sudo apt install -y gir1.2-gtop-2.0 gir1.2-clutter-1.0 # Install TopHat gext install tophat@fflewddur.github.io sudo cp ~/.local/share/gnome-shell/extensions/tophat@fflewddur.github.io/schemas/org.gnome.shell.extensions.tophat.gschema.xml /usr/share/glib-2.0/schemas/ sudo glib-compile-schemas /usr/share/glib-2.0/schemas/ # Configure TopHat gsettings set org.gnome.shell.extensions.tophat show-icons false gsettings set org.gnome.shell.extensions.tophat show-cpu false gsettings set org.gnome.shell.extensions.tophat show-disk false gsettings set org.gnome.shell.extensions.tophat show-mem false gsettings set org.gnome.shell.extensions.tophat network-usage-unit bits # Set TopHat metrics color to match the theme THEME_NAMES=("Tokyo Night" "Catppuccin" "Nord" "Everforest" "Gruvbox" "Kanagawa" "Rose Pine") THEME=$(gum choose "${THEME_NAMES[@]}" "Default" --header "Choose your theme" --height 10 | tr '[:upper:]' '[:lower:]' | sed 's/ /-/g') if [ -n "$THEME" ] && [ "$THEME" != "default" ]; then source $OMAKUB_PATH/themes/$THEME/tophat.sh fi # Logout gum confirm "Ready to logout for all settings to take effect?" && gnome-session-quit --logout --no-prompt ================================================ FILE: migrations/1724344367.sh ================================================ #!/bin/bash # Check if fastfetch config.jsonc is already set if [ -f "$HOME/.config/fastfetch/config.jsonc" ]; then gum confirm "It appears that a fastfetch configuration is already set. Do you want to overwrite it?" && rm "$HOME/.config/fastfetch/config.jsonc" fi # Only attempt to set configuration if fastfetch is not already set if [ ! -f "$HOME/.config/fastfetch/config.jsonc" ]; then # Use Omakub fastfetch config mkdir -p ~/.config/fastfetch cp "$OMAKUB_PATH/configs/fastfetch.jsonc" ~/.config/fastfetch/config.jsonc fi ================================================ FILE: migrations/1738744474.sh ================================================ #!/bin/bash # Local XCompose must change for included files to be picked up by ibus sed -i '1i # Touched to update for Omakub defaults [5/2/2025]' ~/.XCompose ibus restart ================================================ FILE: migrations/1741193162.sh ================================================ #!/bin/bash # Turn off animationd scrolling cp ~/.local/share/omakub/configs/neovim/snacks-animated-scrolling-off.lua ~/.config/nvim/lua/plugins/ ================================================ FILE: migrations/1744854733.sh ================================================ #!/bin/bash source $OMAKUB_PATH/install/desktop/set-alacritty-default.sh nautilus -q ================================================ FILE: migrations/1745060743.sh ================================================ #!/bin/bash cp ~/.local/share/omakub/configs/alacritty/shared.toml ~/.config/alacritty/shared.toml cp ~/.local/share/omakub/configs/alacritty/pane.toml ~/.config/alacritty/pane.toml cp ~/.local/share/omakub/configs/alacritty/btop.toml ~/.config/alacritty/btop.toml cp ~/.local/share/omakub/configs/alacritty.toml ~/.config/alacritty/alacritty.toml source $OMAKUB_PATH/applications/About.sh source $OMAKUB_PATH/applications/Activity.sh source $OMAKUB_PATH/applications/Neovim.sh source $OMAKUB_PATH/applications/Docker.sh source $OMAKUB_PATH/applications/Omakub.sh alacritty migrate 2>/dev/null || true alacritty migrate -c ~/.config/alacritty/pane.toml 2>/dev/null || true alacritty migrate -c ~/.config/alacritty/btop.toml 2>/dev/null || true ================================================ FILE: migrations/1747237126.sh ================================================ #!/bin/bash cp ~/.local/share/omakub/configs/alacritty/btop.toml ~/.config/alacritty/btop.toml # Only attempt to set configuration if btop is not already set if [ ! -f "$HOME/.config/btop/btop.conf" ]; then # Use Omakub btop config mkdir -p ~/.config/btop/themes cp ~/.local/share/omakub/configs/btop.conf ~/.config/btop/btop.conf fi # Set the theme for btop THEME_NAMES=("Tokyo Night" "Catppuccin" "Nord" "Everforest" "Gruvbox" "Kanagawa" "Rose Pine") THEME=$(gum choose "${THEME_NAMES[@]}" ">> Skip" --header "Choose your current theme" --height 10 | tr '[:upper:]' '[:lower:]' | sed 's/ /-/g') if [ -n "$THEME" ] && [ "$THEME" != ">>-skip" ]; then if [ -f "$OMAKUB_PATH/themes/$THEME/btop.theme" ]; then cp $OMAKUB_PATH/themes/$THEME/btop.theme ~/.config/btop/themes/$THEME.theme sed -i "s/color_theme = \".*\"/color_theme = \"$THEME\"/g" ~/.config/btop/btop.conf else sed -i "s/color_theme = \".*\"/color_theme = \"Default\"/g" ~/.config/btop/btop.conf fi fi ================================================ FILE: migrations/1747501295.sh ================================================ #!/bin/bash gsettings set org.gnome.desktop.app-folders folder-children "['Utilities', 'Sundry', 'YaST', 'Updates', 'Xtra', 'LibreOffice', 'WebApps']" 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', 'org.gnome.eog.desktop']" gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/LibreOffice/ name 'LibreOffice' gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/LibreOffice/ apps "['libreoffice-base.desktop', 'libreoffice-calc.desktop', 'libreoffice-draw.desktop', 'libreoffice-impress.desktop', 'libreoffice-math.desktop', 'libreoffice-startcenter.desktop', 'libreoffice-writer.desktop', 'libreoffice-xsltfilter.desktop']" gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/WebApps/ name 'Web Apps' gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/WebApps/ apps "['Basecamp.desktop', 'HEY.desktop']" ================================================ FILE: migrations/1747736884.sh ================================================ #!/bin/bash # Ensure all alacritty configs have been migrated alacritty migrate alacritty migrate --config-file ~/.config/alacritty/btop.toml alacritty migrate --config-file ~/.config/alacritty/pane.toml ================================================ FILE: migrations/1747737304.sh ================================================ #!/bin/bash # Ensure btop themes folder is available mkdir -p ~/.config/btop/themes ================================================ FILE: migrations/1753775930.sh ================================================ #!/bin/bash # Work-around ulauncher issue on nvidia gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ command 'sh -c "pgrep -x ulauncher && { ulauncher-toggle || true; } || setsid -f ulauncher"' ================================================ FILE: migrations/1761481687.sh ================================================ #!/bin/bash # Force upgrade to gum 0.17.0 to fix issues with older versions cd /tmp GUM_VERSION="0.17.0" wget -qO gum.deb "https://github.com/charmbracelet/gum/releases/download/v${GUM_VERSION}/gum_${GUM_VERSION}_amd64.deb" sudo apt-get install -y --allow-downgrades ./gum.deb rm gum.deb cd - ================================================ FILE: migrations/1770656330.sh ================================================ #!/bin/bash # Update Spotify GPG key if the repository is present if [ -f /etc/apt/sources.list.d/spotify.list ]; then echo "Updating Spotify GPG key..." curl -sS https://download.spotify.com/debian/pubkey_5384CE82BA52C83A.gpg | sudo gpg --dearmor --yes -o /etc/apt/trusted.gpg.d/spotify.gpg echo "deb [signed-by=/etc/apt/trusted.gpg.d/spotify.gpg] https://repository.spotify.com stable non-free" | sudo tee /etc/apt/sources.list.d/spotify.list fi ================================================ FILE: themes/catppuccin/alacritty.toml ================================================ [colors.primary] background = "#24273a" foreground = "#cad3f5" dim_foreground = "#8087a2" bright_foreground = "#cad3f5" [colors.cursor] text = "#24273a" cursor = "#f4dbd6" [colors.vi_mode_cursor] text = "#24273a" cursor = "#b7bdf8" [colors.search.matches] foreground = "#24273a" background = "#a5adcb" [colors.search.focused_match] foreground = "#24273a" background = "#a6da95" [colors.footer_bar] foreground = "#24273a" background = "#a5adcb" [colors.hints.start] foreground = "#24273a" background = "#eed49f" [colors.hints.end] foreground = "#24273a" background = "#a5adcb" [colors.selection] text = "#24273a" background = "#f4dbd6" [colors.normal] black = "#494d64" red = "#ed8796" green = "#a6da95" yellow = "#eed49f" blue = "#8aadf4" magenta = "#f5bde6" cyan = "#8bd5ca" white = "#b8c0e0" [colors.bright] black = "#5b6078" red = "#ed8796" green = "#a6da95" yellow = "#eed49f" blue = "#8aadf4" magenta = "#f5bde6" cyan = "#8bd5ca" white = "#a5adcb" [colors.dim] black = "#494d64" red = "#ed8796" green = "#a6da95" yellow = "#eed49f" blue = "#8aadf4" magenta = "#f5bde6" cyan = "#8bd5ca" white = "#b8c0e0" [[colors.indexed_colors]] index = 16 color = "#f5a97f" [[colors.indexed_colors]] index = 17 color = "#f4dbd6" ================================================ FILE: themes/catppuccin/btop.theme ================================================ # Main background, empty for terminal default, need to be empty if you want transparent background theme[main_bg]="#24273a" # Main text color theme[main_fg]="#c6d0f5" # Title color for boxes theme[title]="#c6d0f5" # Highlight color for keyboard shortcuts theme[hi_fg]="#8caaee" # Background color of selected item in processes box theme[selected_bg]="#51576d" # Foreground color of selected item in processes box theme[selected_fg]="#8caaee" # Color of inactive/disabled text theme[inactive_fg]="#838ba7" # Color of text appearing on top of graphs, i.e uptime and current network graph scaling theme[graph_text]="#f2d5cf" # Background color of the percentage meters theme[meter_bg]="#51576d" # Misc colors for processes box including mini cpu graphs, details memory graph and details status text theme[proc_misc]="#f2d5cf" # CPU, Memory, Network, Proc box outline colors theme[cpu_box]="#ca9ee6" #Mauve theme[mem_box]="#a6d189" #Green theme[net_box]="#ea999c" #Maroon theme[proc_box]="#8caaee" #Blue # Box divider line and small boxes line color theme[div_line]="#737994" # Temperature graph color (Green -> Yellow -> Red) theme[temp_start]="#a6d189" theme[temp_mid]="#e5c890" theme[temp_end]="#e78284" # CPU graph colors (Teal -> Lavender) theme[cpu_start]="#81c8be" theme[cpu_mid]="#85c1dc" theme[cpu_end]="#babbf1" # Mem/Disk free meter (Mauve -> Lavender -> Blue) theme[free_start]="#ca9ee6" theme[free_mid]="#babbf1" theme[free_end]="#8caaee" # Mem/Disk cached meter (Sapphire -> Lavender) theme[cached_start]="#85c1dc" theme[cached_mid]="#8caaee" theme[cached_end]="#babbf1" # Mem/Disk available meter (Peach -> Red) theme[available_start]="#ef9f76" theme[available_mid]="#ea999c" theme[available_end]="#e78284" # Mem/Disk used meter (Green -> Sky) theme[used_start]="#a6d189" theme[used_mid]="#81c8be" theme[used_end]="#99d1db" # Download graph colors (Peach -> Red) theme[download_start]="#ef9f76" theme[download_mid]="#ea999c" theme[download_end]="#e78284" # Upload graph colors (Green -> Sky) theme[upload_start]="#a6d189" theme[upload_mid]="#81c8be" theme[upload_end]="#99d1db" # Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve) theme[process_start]="#85c1dc" theme[process_mid]="#babbf1" theme[process_end]="#ca9ee6" ================================================ FILE: themes/catppuccin/gnome.sh ================================================ #!/bin/bash OMAKUB_THEME_COLOR="magenta" OMAKUB_THEME_BACKGROUND="catppuccin/background.png" source $OMAKUB_PATH/themes/set-gnome-theme.sh ================================================ FILE: themes/catppuccin/neovim.lua ================================================ return { { "LazyVim/LazyVim", opts = { colorscheme = "catppuccin", }, }, } ================================================ FILE: themes/catppuccin/tophat.sh ================================================ #!/bin/bash gsettings set org.gnome.shell.extensions.tophat meter-fg-color "#e920a3" ================================================ FILE: themes/catppuccin/vscode.sh ================================================ #!/bin/bash VSC_THEME="Catppuccin Macchiato" VSC_EXTENSION="Catppuccin.catppuccin-vsc" source $OMAKUB_PATH/themes/set-vscode-theme.sh ================================================ FILE: themes/catppuccin/zellij.kdl ================================================ themes { catppuccin { bg "#626880" // Surface2 fg "#c6d0f5" red "#e78284" green "#a6d189" blue "#8caaee" yellow "#e5c890" magenta "#f4b8e4" // Pink orange "#ef9f76" // Peach cyan "#99d1db" // Sky black "#292c3c" // Mantle white "#c6d0f5" } catppuccin-latte { bg "#acb0be" // Surface2 fg "#acb0be" // Surface2 red "#d20f39" green "#40a02b" blue "#1e66f5" yellow "#df8e1d" magenta "#ea76cb" // Pink orange "#fe640b" // Peach cyan "#04a5e5" // Sky black "#dce0e8" // Crust white "#4c4f69" // Text } catppuccin-macchiato { bg "#5b6078" // Surface2 fg "#cad3f5" red "#ed8796" green "#a6da95" blue "#8aadf4" yellow "#eed49f" magenta "#f5bde6" // Pink orange "#f5a97f" // Peach cyan "#91d7e3" // Sky black "#1e2030" // Mantle white "#cad3f5" } catppuccin-mocha { bg "#585b70" // Surface2 fg "#cdd6f4" red "#f38ba8" green "#a6e3a1" blue "#89b4fa" yellow "#f9e2af" magenta "#f5c2e7" // Pink orange "#fab387" // Peach cyan "#89dceb" // Sky black "#181825" // Mantle white "#cdd6f4" } } ================================================ FILE: themes/everforest/alacritty.toml ================================================ [colors] [colors.primary] background = '#2d353b' foreground = '#d3c6aa' [colors.normal] black = '#475258' red = '#e67e80' green = '#a7c080' yellow = '#dbbc7f' blue = '#7fbbb3' magenta = '#d699b6' cyan = '#83c092' white = '#d3c6aa' [colors.bright] black = '#475258' red = '#e67e80' green = '#a7c080' yellow = '#dbbc7f' blue = '#7fbbb3' magenta = '#d699b6' cyan = '#83c092' white = '#d3c6aa' ================================================ FILE: themes/everforest/btop.theme ================================================ # All graphs and meters can be gradients # For single color graphs leave "mid" and "end" variable empty. # Use "start" and "end" variables for two color gradient # Use "start", "mid" and "end" for three color gradient # Main background, empty for terminal default, need to be empty if you want transparent background theme[main_bg]="#2d353b" # Main text color theme[main_fg]="#d3c6aa" # Title color for boxes theme[title]="#d3c6aa" # Highlight color for keyboard shortcuts theme[hi_fg]="#e67e80" # Background color of selected items theme[selected_bg]="#3d484d" # Foreground color of selected items theme[selected_fg]="#dbbc7f" # Color of inactive/disabled text theme[inactive_fg]="#2d353b" # Color of text appearing on top of graphs, i.e uptime and current network graph scaling theme[graph_text]="#d3c6aa" # Misc colors for processes box including mini cpu graphs, details memory graph and details status text theme[proc_misc]="#a7c080" # Cpu box outline color theme[cpu_box]="#3d484d" # Memory/disks box outline color theme[mem_box]="#3d484d" # Net up/down box outline color theme[net_box]="#3d484d" # Processes box outline color theme[proc_box]="#3d484d" # Box divider line and small boxes line color theme[div_line]="#3d484d" # Temperature graph colors theme[temp_start]="#a7c080" theme[temp_mid]="#dbbc7f" theme[temp_end]="#f85552" # CPU graph colors theme[cpu_start]="#a7c080" theme[cpu_mid]="#dbbc7f" theme[cpu_end]="#f85552" # Mem/Disk free meter theme[free_start]="#f85552" theme[free_mid]="#dbbc7f" theme[free_end]="#a7c080" # Mem/Disk cached meter theme[cached_start]="#7fbbb3" theme[cached_mid]="#83c092" theme[cached_end]="#a7c080" # Mem/Disk available meter theme[available_start]="#f85552" theme[available_mid]="#dbbc7f" theme[available_end]="#a7c080" # Mem/Disk used meter theme[used_start]="#a7c080" theme[used_mid]="#dbbc7f" theme[used_end]="#f85552" # Download graph colors theme[download_start]="#a7c080" theme[download_mid]="#83c092" theme[download_end]="#7fbbb3" # Upload graph colors theme[upload_start]="#dbbc7f" theme[upload_mid]="#e69875" theme[upload_end]="#e67e80" # Process box color gradient for threads, mem and cpu usage theme[process_start]="#a7c080" theme[process_mid]="#e67e80" theme[process_end]="#f85552" ================================================ FILE: themes/everforest/gnome.sh ================================================ #!/bin/bash OMAKUB_THEME_COLOR="bark" OMAKUB_THEME_BACKGROUND="everforest/background.jpg" source $OMAKUB_PATH/themes/set-gnome-theme.sh ================================================ FILE: themes/everforest/neovim.lua ================================================ return { { "neanias/everforest-nvim" }, { "LazyVim/LazyVim", opts = { colorscheme = "everforest", background = "soft", }, }, } ================================================ FILE: themes/everforest/tophat.sh ================================================ #!/bin/bash gsettings set org.gnome.shell.extensions.tophat meter-fg-color "#78ab50" ================================================ FILE: themes/everforest/vscode.sh ================================================ #!/bin/bash VSC_THEME="Everforest Dark" VSC_EXTENSION="sainnhe.everforest" source $OMAKUB_PATH/themes/set-vscode-theme.sh ================================================ FILE: themes/everforest/zellij.kdl ================================================ themes { everforest { bg "#2b3339" fg "#d3c6aa" black "#4b565c" red "#e67e80" green "#a7c080" yellow "#dbbc7f" blue "#7fbbb3" magenta "#d699b6" cyan "#83c092" white "#d3c6aa" orange "#FF9E64" } } ================================================ FILE: themes/gruvbox/alacritty.toml ================================================ [colors] [colors.primary] background = "0x282828" foreground = "0xd4be98" [colors.normal] black = "0x3c3836" red = "0xea6962" green = "0xa9b665" yellow = "0xd8a657" blue = "0x7daea3" magenta = "0xd3869b" cyan = "0x89b482" white = "0xd4be98" [colors.bright] black = "0x3c3836" red = "0xea6962" green = "0xa9b665" yellow = "0xd8a657" blue = "0x7daea3" magenta = "0xd3869b" cyan = "0x89b482" white = "0xd4be98" ================================================ FILE: themes/gruvbox/btop.theme ================================================ #Bashtop gruvbox (https://github.com/morhetz/gruvbox) theme #by BachoSeven # Colors should be in 6 or 2 character hexadecimal or single spaced rgb decimal: "#RRGGBB", "#BW" or "0-255 0-255 0-255" # example for white: "#FFFFFF", "#ff" or "255 255 255". # All graphs and meters can be gradients # For single color graphs leave "mid" and "end" variable empty. # Use "start" and "end" variables for two color gradient # Use "start", "mid" and "end" for three color gradient # Main background, empty for terminal default, need to be empty if you want transparent background theme[main_bg]="#282828" # Main text color theme[main_fg]="#a89984" # Title color for boxes theme[title]="#ebdbb2" # Highlight color for keyboard shortcuts theme[hi_fg]="#d79921" # Background color of selected items theme[selected_bg]="#282828" # Foreground color of selected items theme[selected_fg]="#fabd2f" # Color of inactive/disabled text theme[inactive_fg]="#282828" # Color of text appearing on top of graphs, i.e uptime and current network graph scaling theme[graph_text]="#585858" # Misc colors for processes box including mini cpu graphs, details memory graph and details status text theme[proc_misc]="#98971a" # Cpu box outline color theme[cpu_box]="#a89984" # Memory/disks box outline color theme[mem_box]="#a89984" # Net up/down box outline color theme[net_box]="#a89984" # Processes box outline color theme[proc_box]="#a89984" # Box divider line and small boxes line color theme[div_line]="#a89984" # Temperature graph colors theme[temp_start]="#458588" theme[temp_mid]="#d3869b" theme[temp_end]="#fb4394" # CPU graph colors theme[cpu_start]="#b8bb26" theme[cpu_mid]="#d79921" theme[cpu_end]="#fb4934" # Mem/Disk free meter theme[free_start]="#4e5900" theme[free_mid]="" theme[free_end]="#98971a" # Mem/Disk cached meter theme[cached_start]="#458588" theme[cached_mid]="" theme[cached_end]="#83a598" # Mem/Disk available meter theme[available_start]="#d79921" theme[available_mid]="" theme[available_end]="#fabd2f" # Mem/Disk used meter theme[used_start]="#cc241d" theme[used_mid]="" theme[used_end]="#fb4934" # Download graph colors theme[download_start]="#3d4070" theme[download_mid]="#6c71c4" theme[download_end]="#a3a8f7" # Upload graph colors theme[upload_start]="#701c45" theme[upload_mid]="#b16286" theme[upload_end]="#d3869b" ================================================ FILE: themes/gruvbox/gnome.sh ================================================ #!/bin/bash OMAKUB_THEME_COLOR="sage" OMAKUB_THEME_BACKGROUND="gruvbox/background.jpg" source $OMAKUB_PATH/themes/set-gnome-theme.sh ================================================ FILE: themes/gruvbox/neovim.lua ================================================ return { { "ellisonleao/gruvbox.nvim" }, { "LazyVim/LazyVim", opts = { colorscheme = "gruvbox", }, }, } ================================================ FILE: themes/gruvbox/tophat.sh ================================================ #!/bin/bash gsettings set org.gnome.shell.extensions.tophat meter-fg-color "#78ab50" ================================================ FILE: themes/gruvbox/vscode.sh ================================================ #!/bin/bash VSC_THEME="Gruvbox Dark Medium" VSC_EXTENSION="jdinhlife.gruvbox" source $OMAKUB_PATH/themes/set-vscode-theme.sh ================================================ FILE: themes/gruvbox/zellij.kdl ================================================ themes { gruvbox { fg "#d5c4a1" bg "#282828" black "#3c3836" red "#cc241d" green "#98971a" yellow "#d79921" blue "#3c8588" magenta "#b16286" cyan "#689d6a" white "#fbf1c7" orange "#d65d0e" } } ================================================ FILE: themes/kanagawa/alacritty.toml ================================================ [colors] [colors.primary] background = '#1f1f28' foreground = '#dcd7ba' [colors.normal] black = '#090618' red = '#c34043' green = '#76946a' yellow = '#c0a36e' blue = '#7e9cd8' magenta = '#957fb8' cyan = '#6a9589' white = '#c8c093' [colors.bright] black = '#727169' red = '#e82424' green = '#98bb6c' yellow = '#e6c384' blue = '#7fb4ca' magenta = '#938aa9' cyan = '#7aa89f' white = '#dcd7ba' [colors.selection] background = '#2d4f67' foreground = '#c8c093' [[colors.indexed_colors]] index = 16 color = '#ffa066' [[colors.indexed_colors]] index = 17 color = '#ff5d62' ================================================ FILE: themes/kanagawa/btop.theme ================================================ # Bashtop Kanagawa-wave (https://github.com/rebelot/kanagawa.nvim) theme # By: philikarus # Main bg theme[main_bg]="#1f1f28" # Main text color theme[main_fg]="#dcd7ba" # Title color for boxes theme[title]="#dcd7ba" # Highlight color for keyboard shortcuts theme[hi_fg]="#C34043" # Background color of selected item in processes box theme[selected_bg]="#223249" # Foreground color of selected item in processes box theme[selected_fg]="#dca561" # Color of inactive/disabled text theme[inactive_fg]="#727169" # Misc colors for processes box including mini cpu graphs, details memory graph and details status text theme[proc_misc]="#7aa89f" # Cpu box outline color theme[cpu_box]="#727169" # Memory/disks box outline color theme[mem_box]="#727169" # Net up/down box outline color theme[net_box]="#727169" # Processes box outline color theme[proc_box]="#727169" # Box divider line and small boxes line color theme[div_line]="#727169" # Temperature graph colors theme[temp_start]="#98BB6C" theme[temp_mid]="#DCA561" theme[temp_end]="#E82424" # CPU graph colors theme[cpu_start]="#98BB6C" theme[cpu_mid]="#DCA561" theme[cpu_end]="#E82424" # Mem/Disk free meter theme[free_start]="#E82424" theme[free_mid]="#C34043" theme[free_end]="#FF5D62" # Mem/Disk cached meter theme[cached_start]="#C0A36E" theme[cached_mid]="#DCA561" theme[cached_end]="#FF9E3B" # Mem/Disk available meter theme[available_start]="#938AA9" theme[available_mid]="#957FBB" theme[available_end]="#9CABCA" # Mem/Disk used meter theme[used_start]="#658594" theme[used_mid]="#7E9CDB" theme[used_end]="#7FB4CA" # Download graph colors theme[download_start]="#7E9CDB" theme[download_mid]="#938AA9" theme[download_end]="#957FBB" # Upload graph colors theme[upload_start]="#DCA561" theme[upload_mid]="#E6C384" theme[upload_end]="#E82424" # Process box color gradient for threads, mem and cpu usage theme[process_start]="#98BB6C" theme[process_mid]="#DCA561" theme[process_end]="#C34043" ================================================ FILE: themes/kanagawa/gnome.sh ================================================ #!/bin/bash OMAKUB_THEME_COLOR="purple" OMAKUB_THEME_BACKGROUND="kanagawa/background.jpg" source $OMAKUB_PATH/themes/set-gnome-theme.sh ================================================ FILE: themes/kanagawa/neovim.lua ================================================ return { { "rebelot/kanagawa.nvim" }, { "LazyVim/LazyVim", opts = { colorscheme = "kanagawa", }, }, } ================================================ FILE: themes/kanagawa/tophat.sh ================================================ #!/bin/bash gsettings set org.gnome.shell.extensions.tophat meter-fg-color "#924d8b" ================================================ FILE: themes/kanagawa/vscode.sh ================================================ #!/bin/bash VSC_THEME="Kanagawa" VSC_EXTENSION="qufiwefefwoyn.kanagawa" source $OMAKUB_PATH/themes/set-vscode-theme.sh ================================================ FILE: themes/kanagawa/zellij.kdl ================================================ themes { kanagawa { fg "#DCD7BA" bg "#1F1F28" red "#C34043" green "#76946A" yellow "#FF9E3B" blue "#7E9CD8" magenta "#957FB8" orange "#FFA066" cyan "#7FB4CA" black "#16161D" white "#DCD7BA" } } ================================================ FILE: themes/matte-black/alacritty.toml ================================================ # ──────────────────────────────────────────────────────────── # Omarchy Matte Black Theme for Alacritty # By tahayvr # https://github.com/tahayvr # ──────────────────────────────────────────────────────────── [window] # window padding {px} padding.x = 12 padding.y = 12 [font] size = 12.0 [colors] [colors.primary] background = "#121212" foreground = "#bebebe" dim_foreground = "#8a8a8d" [colors.cursor] text = "#121212" cursor = "#eaeaea" [colors.vi_mode_cursor] text = "#121212" cursor = "#eaeaea" [colors.selection] text = "CellForeground" background = "#333333" [colors.normal] black = "#333333" red = "#D35F5F" green = "#FFC107" yellow = "#b91c1c" blue = "#e68e0d" magenta = "#D35F5F" cyan = "#bebebe" white = "#bebebe" [colors.bright] black = "#8a8a8d" red = "#B91C1C" green = "#FFC107" yellow = "#b90a0a" blue = "#f59e0b" magenta = "#B91C1C" cyan = "#eaeaea" white = "#ffffff" ================================================ FILE: themes/matte-black/btop.theme ================================================ # ──────────────────────────────────────────────────────────── # Bashtop theme - Omarchy Matte Black # by tahayvr # https://github.com/tahayvr # ──────────────────────────────────────────────────────────── # Colors should be in 6 or 2 character hexadecimal or single spaced rgb decimal: "#RRGGBB", "#BW" or "0-255 0-255 0-255" # example for white: "#ffffff", "#ff" or "255 255 255". # All graphs and meters can be gradients # For single color graphs leave "mid" and "end" variable empty. # Use "start" and "end" variables for two color gradient # Use "start", "mid" and "end" for three color gradient # Main background, empty for terminal default, need to be empty if you want transparent background theme[main_bg]="" # Main text color theme[main_fg]="#EAEAEA" # Title color for boxes theme[title]="#8a8a8d" # Highlight color for keyboard shortcuts theme[hi_fg]="#f59e0b" # Background color of selected item in processes box theme[selected_bg]="#f59e0b" # Foreground color of selected item in processes box theme[selected_fg]="#EAEAEA" # Color of inactive/disabled text theme[inactive_fg]="#333333" # Misc colors for processes box including mini cpu graphs, details memory graph and details status text theme[proc_misc]="#8a8a8d" # Cpu box outline color theme[cpu_box]="#8a8a8d" # Memory/disks box outline color theme[mem_box]="#8a8a8d" # Net up/down box outline color theme[net_box]="#8a8a8d" # Processes box outline color theme[proc_box]="#8a8a8d" # Box divider line and small boxes line color theme[div_line]="#8a8a8d" # Temperature graph colors theme[temp_start]="#8a8a8d" theme[temp_mid]="#f59e0b" theme[temp_end]="#b91c1c" # CPU graph colors theme[cpu_start]="#8a8a8d" theme[cpu_mid]="#f59e0b" theme[cpu_end]="#b91c1c" # Mem/Disk free meter theme[free_start]="#8a8a8d" theme[free_mid]="#f59e0b" theme[free_end]="#b91c1c" # Mem/Disk cached meter theme[cached_start]="#8a8a8d" theme[cached_mid]="#f59e0b" theme[cached_end]="#b91c1c" # Mem/Disk available meter theme[available_start]="#8a8a8d" theme[available_mid]="#f59e0b" theme[available_end]="#b91c1c" # Mem/Disk used meter theme[used_start]="#8a8a8d" theme[used_mid]="#f59e0b" theme[used_end]="#b91c1c" # Download graph colors theme[download_start]="#8a8a8d" theme[download_mid]="#f59e0b" theme[download_end]="#b91c1c" # Upload graph colors theme[upload_start]="#8a8a8d" theme[upload_mid]="#f59e0b" theme[upload_end]="#b91c1c" ================================================ FILE: themes/matte-black/gnome.sh ================================================ #!/bin/bash OMAKUB_THEME_COLOR="orange" OMAKUB_THEME_BACKGROUND="matte-black/background.jpg" source $OMAKUB_PATH/themes/set-gnome-theme.sh ================================================ FILE: themes/matte-black/neovim.lua ================================================ return { { "tahayvr/matteblack.nvim", lazy = false, priority = 1000 }, { "LazyVim/LazyVim", opts = { colorscheme = "matteblack", }, }, } ================================================ FILE: themes/matte-black/tophat.sh ================================================ #!/bin/bash gsettings set org.gnome.shell.extensions.tophat meter-fg-color "#FFFFFF" ================================================ FILE: themes/matte-black/vscode.sh ================================================ #!/bin/bash VSC_THEME="Matte Black Theme" VSC_EXTENSION="CleanThemes.matte-black-theme" source $OMAKUB_PATH/themes/set-vscode-theme.sh ================================================ FILE: themes/matte-black/zellij.kdl ================================================ themes { matte-black { fg "#bebebe" bg "#121212" red "#D35F5F" green "#FFC107" yellow "#b91c1c" blue "#e68e0d" orange "#FFA066" magenta "#D35F5F" cyan "#bebebe" black "#333333" white "#bebebe" } } ================================================ FILE: themes/nord/alacritty.toml ================================================ [colors] [colors.primary] background = "#2e3440" foreground = "#d8dee9" dim_foreground = "#a5abb6" [colors.cursor] text = "#2e3440" cursor = "#d8dee9" [colors.vi_mode_cursor] text = "#2e3440" cursor = "#d8dee9" [colors.selection] text = "CellForeground" background = "#4c566a" [colors.normal] black = "#3b4252" red = "#bf616a" green = "#a3be8c" yellow = "#ebcb8b" blue = "#81a1c1" magenta = "#b48ead" cyan = "#88c0d0" white = "#e5e9f0" [colors.bright] black = "#4c566a" red = "#bf616a" green = "#a3be8c" yellow = "#ebcb8b" blue = "#81a1c1" magenta = "#b48ead" cyan = "#8fbcbb" white = "#eceff4" [colors.dim] black = "#373e4d" red = "#94545d" green = "#809575" yellow = "#b29e75" blue = "#68809a" magenta = "#8c738c" cyan = "#6d96a5" white = "#aeb3bb" ================================================ FILE: themes/nord/btop.theme ================================================ #Bashtop theme with nord palette (https://www.nordtheme.com) #by Justin Zobel # Colors should be in 6 or 2 character hexadecimal or single spaced rgb decimal: "#RRGGBB", "#BW" or "0-255 0-255 0-255" # example for white: "#ffffff", "#ff" or "255 255 255". # All graphs and meters can be gradients # For single color graphs leave "mid" and "end" variable empty. # Use "start" and "end" variables for two color gradient # Use "start", "mid" and "end" for three color gradient # Main background, empty for terminal default, need to be empty if you want transparent background theme[main_bg]="#2E3440" # Main text color theme[main_fg]="#D8DEE9" # Title color for boxes theme[title]="#8FBCBB" # Highlight color for keyboard shortcuts theme[hi_fg]="#5E81AC" # Background color of selected item in processes box theme[selected_bg]="#4C566A" # Foreground color of selected item in processes box theme[selected_fg]="#ECEFF4" # Color of inactive/disabled text theme[inactive_fg]="#4C566A" # Misc colors for processes box including mini cpu graphs, details memory graph and details status text theme[proc_misc]="#5E81AC" # Cpu box outline color theme[cpu_box]="#4C566A" # Memory/disks box outline color theme[mem_box]="#4C566A" # Net up/down box outline color theme[net_box]="#4C566A" # Processes box outline color theme[proc_box]="#4C566A" # Box divider line and small boxes line color theme[div_line]="#4C566A" # Temperature graph colors theme[temp_start]="#81A1C1" theme[temp_mid]="#88C0D0" theme[temp_end]="#ECEFF4" # CPU graph colors theme[cpu_start]="#81A1C1" theme[cpu_mid]="#88C0D0" theme[cpu_end]="#ECEFF4" # Mem/Disk free meter theme[free_start]="#81A1C1" theme[free_mid]="#88C0D0" theme[free_end]="#ECEFF4" # Mem/Disk cached meter theme[cached_start]="#81A1C1" theme[cached_mid]="#88C0D0" theme[cached_end]="#ECEFF4" # Mem/Disk available meter theme[available_start]="#81A1C1" theme[available_mid]="#88C0D0" theme[available_end]="#ECEFF4" # Mem/Disk used meter theme[used_start]="#81A1C1" theme[used_mid]="#88C0D0" theme[used_end]="#ECEFF4" # Download graph colors theme[download_start]="#81A1C1" theme[download_mid]="#88C0D0" theme[download_end]="#ECEFF4" # Upload graph colors theme[upload_start]="#81A1C1" theme[upload_mid]="#88C0D0" theme[upload_end]="#ECEFF4" ================================================ FILE: themes/nord/gnome.sh ================================================ #!/bin/bash OMAKUB_THEME_COLOR="blue" OMAKUB_THEME_BACKGROUND="nord/background.png" source $OMAKUB_PATH/themes/set-gnome-theme.sh ================================================ FILE: themes/nord/neovim.lua ================================================ return { { "EdenEast/nightfox.nvim" }, { "LazyVim/LazyVim", opts = { colorscheme = "nordfox", }, }, } ================================================ FILE: themes/nord/tophat.sh ================================================ #!/bin/bash gsettings set org.gnome.shell.extensions.tophat meter-fg-color "#208fe9" ================================================ FILE: themes/nord/vscode.sh ================================================ #!/bin/bash VSC_THEME="Nord" VSC_EXTENSION="arcticicestudio.nord-visual-studio-code" source $OMAKUB_PATH/themes/set-vscode-theme.sh ================================================ FILE: themes/nord/zellij.kdl ================================================ themes { nord { fg "#D8DEE9" bg "#2E3440" black "#3B4252" red "#BF616A" green "#A3BE8C" yellow "#EBCB8B" blue "#81A1C1" magenta "#B48EAD" cyan "#88C0D0" white "#E5E9F0" orange "#D08770" } } ================================================ FILE: themes/osaka-jade/alacritty.toml ================================================ [window] # window padding {px} padding.x = 12 padding.y = 12 [font] size = 12.0 [colors] [colors.primary] background = '#111c18' foreground = '#C1C497' dim_foreground = '#8087a2' [colors.cursor] text = '#000000' cursor = '#D7C995' [colors.vi_mode_cursor] text = '#000000' cursor = '#D7C995' [colors.selection] text = 'CellForeground' background = '#23372B' [colors.normal] black = '#23372B' red = '#FF5345' green = '#549e6a' yellow = '#459451' blue = '#509475' magenta = '#D2689C' cyan = '#2DD5B7' white = '#F6F5DD' [colors.bright] black = '#53685B' red = '#db9f9c' green = '#63b07a' yellow = '#E5C736' blue = '#ACD4CF' magenta = '#75bbb3' cyan = '#8CD3CB' white = '#9eebb3' ================================================ FILE: themes/osaka-jade/btop.theme ================================================ # Main background theme[main_bg]="#111c18" # Main text color theme[main_fg]="#F7E8B2" # Title color for boxes theme[title]="#D6D5BC" # Highlight color for keyboard shortcuts theme[hi_fg]="#E67D64" # Background color of selected items theme[selected_bg]="#364538" # Foreground color of selected items theme[selected_fg]="#DEB266" # Color of inactive/disabled text theme[inactive_fg]="#32473B" # Color of text appearing on top of graphs theme[graph_text]="#E6D8BA" # Misc colors for processes box theme[proc_misc]="#E6D8BA" # Cpu box outline color theme[cpu_box]="#81B8A8" # Memory/disks box outline color theme[mem_box]="#81B8A8" # Net up/down box outline color theme[net_box]="#81B8A8" # Processes box outline color theme[proc_box]="#81B8A8" # Box divider line and small boxes line color theme[div_line]="#81B8A8" # Temperature graph colors theme[temp_start]="#BFD99A" theme[temp_mid]="#E1B55E" theme[temp_end]="#DBB05C" # CPU graph colors theme[cpu_start]="#5F8C86" theme[cpu_mid]="#629C89" theme[cpu_end]="#76AD98" # Mem/Disk free meter theme[free_start]="#5F8C86" theme[free_mid]="#629C89" theme[free_end]="#76AD98" # Mem/Disk cached meter theme[cached_start]="#5F8C86" theme[cached_mid]="#629C89" theme[cached_end]="#76AD98" # Mem/Disk available meter theme[available_start]="#5F8C86" theme[available_mid]="#629C89" theme[available_end]="#76AD98" # Mem/Disk used meter theme[used_start]="#5F8C86" theme[used_mid]="#629C89" theme[used_end]="#76AD98" # Download graph colors theme[download_start]="#75BBB3" theme[download_mid]="#61949A" theme[download_end]="#215866" # Upload graph colors theme[upload_start]="#215866" theme[upload_mid]="#91C080" theme[upload_end]="#549E6A" # Process box color gradient for threads, mem and cpu usage theme[process_start]="#72CFA3" theme[process_mid]="#D0D494" theme[process_end]="#DB9F9C" ================================================ FILE: themes/osaka-jade/gnome.sh ================================================ #!/bin/bash OMAKUB_THEME_COLOR="green" OMAKUB_THEME_BACKGROUND="osaka-jade/background.jpg" source $OMAKUB_PATH/themes/set-gnome-theme.sh ================================================ FILE: themes/osaka-jade/neovim.lua ================================================ return { { "ribru17/bamboo.nvim", lazy = false, priority = 1000, config = function() require("bamboo").setup({}) require("bamboo").load() end, }, { "LazyVim/LazyVim", opts = { colorscheme = "bamboo", }, }, } ================================================ FILE: themes/osaka-jade/tophat.sh ================================================ #!/bin/bash gsettings set org.gnome.shell.extensions.tophat meter-fg-color "#214237" ================================================ FILE: themes/osaka-jade/vscode.sh ================================================ #!/bin/bash VSC_THEME="Ocean Green: Dark" VSC_EXTENSION="jovejonovski.ocean-green" source $OMAKUB_PATH/themes/set-vscode-theme.sh ================================================ FILE: themes/osaka-jade/zellij.kdl ================================================ themes { osaka-jade { fg "#C1C497" bg "#111c18" red "#FF5345" green "#549e6a" yellow "#459451" blue "#509475" magenta "#D2689C" cyan "#2DD5B7" black "#23372B" orange "#E5C736" white "#F6F5DD" } } ================================================ FILE: themes/ristretto/alacritty.toml ================================================ [colors] [colors.normal] black = "#2c2525" red = "#fd6883" green = "#adda78" yellow = "#f9cc6c" blue = "#f38d70" magenta = "#a8a9eb" cyan = "#85dacc" white = "#e6d9db" [colors.bright] black = "#463a3a" red = "#ff8297" green = "#c8e292" yellow = "#fcd675" blue = "#f8a788" magenta = "#bebffd" cyan = "#9bf1e1" white = "#f1e5e7" [colors.cursor] cursor = '#c3b7b8' text = '#c3b7b8' [colors.primary] background = '#2c2525' foreground = '#e6d9db' [colors.selection] background = '#403e41' text = '#e6d9db' ================================================ FILE: themes/ristretto/btop.theme ================================================ #Btop monokai pro ristretto theme #Reconfigured from monokai theme # Main background, empty for terminal default, need to be empty if you want transparent background theme[main_bg]="#2c2421" # Main text color theme[main_fg]="#e6d9db" # Title color for boxes theme[title]="#e6d9db" # Higlight color for keyboard shortcuts theme[hi_fg]="#fd6883" # Background color of selected item in processes box theme[selected_bg]="#3d2f2a" # Foreground color of selected item in processes box theme[selected_fg]="#e6d9db" # Color of inactive/disabled text theme[inactive_fg]="#72696a" # Misc colors for processes box including mini cpu graphs, details memory graph and details status text theme[proc_misc]="#adda78" # Cpu box outline color theme[cpu_box]="#5b4a45" # Memory/disks box outline color theme[mem_box]="#5b4a45" # Net up/down box outline color theme[net_box]="#5b4a45" # Processes box outline color theme[proc_box]="#5b4a45" # Box divider line and small boxes line color theme[div_line]="#72696a" # Temperature graph colors theme[temp_start]="#a8a9eb" theme[temp_mid]="#f38d70" theme[temp_end]="#fd6a85" # CPU graph colors theme[cpu_start]="#adda78" theme[cpu_mid]="#f9cc6c" theme[cpu_end]="#fd6883" # Mem/Disk free meter theme[free_start]="#5b4a45" theme[free_mid]="#adda78" theme[free_end]="#c5e2a3" # Mem/Disk cached meter theme[cached_start]="#5b4a45" theme[cached_mid]="#85dacc" theme[cached_end]="#b3e8dd" # Mem/Disk available meter theme[available_start]="#5b4a45" theme[available_mid]="#f9cc6c" theme[available_end]="#fce2a3" # Mem/Disk used meter theme[used_start]="#5b4a45" theme[used_mid]="#fd6a85" theme[used_end]="#feb5c7" # Download graph colors theme[download_start]="#3d2f2a" theme[download_mid]="#a8a9eb" theme[download_end]="#c5c6f0" # Upload graph colors theme[upload_start]="#3d2f2a" theme[upload_mid]="#fd6a85" theme[upload_end]="#feb5c7" ================================================ FILE: themes/ristretto/gnome.sh ================================================ #!/bin/bash OMAKUB_THEME_COLOR="grey" OMAKUB_THEME_BACKGROUND="ristretto/background.jpg" source $OMAKUB_PATH/themes/set-gnome-theme.sh ================================================ FILE: themes/ristretto/neovim.lua ================================================ return { { "gthelding/monokai-pro.nvim", config = function() require("monokai-pro").setup({ filter = "ristretto", override = function() return { NonText = { fg = "#948a8b" }, } end, }) vim.cmd([[colorscheme monokai-pro]]) end, }, { "LazyVim/LazyVim", opts = { colorscheme = "monokai-pro", }, }, } ================================================ FILE: themes/ristretto/tophat.sh ================================================ #!/bin/bash gsettings set org.gnome.shell.extensions.tophat meter-fg-color "#2c2525" ================================================ FILE: themes/ristretto/vscode.sh ================================================ #!/bin/bash VSC_THEME="Monokai Pro (Filter Ristretto)" VSC_EXTENSION="monokai.theme-monokai-pro-vscode" source $OMAKUB_PATH/themes/set-vscode-theme.sh ================================================ FILE: themes/ristretto/zellij.kdl ================================================ themes { ristretto { fg "#e6d9db" bg "#2c2525" red "#fd6883" green "#adda78" yellow "#f9cc6c" blue "#f38d70" orange "#FFA066" magenta "#a8a9eb" cyan "#85dacc" black "#2c2525" white "#e6d9db" } } ================================================ FILE: themes/rose-pine/alacritty.toml ================================================ [colors.primary] foreground = "#575279" background = "#faf4ed" dim_foreground = "#797593" bright_foreground = "#575279" [colors.cursor] text = "#575279" cursor = "#cecacd" [colors.vi_mode_cursor] text = "#575279" cursor = "#cecacd" [colors.search.matches] foreground = "#797593" background = "#f2e9e1" [colors.search.focused_match] foreground = "#faf4ed" background = "#d7827e" [colors.hints.start] foreground = "#797593" background = "#fffaf3" [colors.hints.end] foreground = "#9893a5" background = "#fffaf3" [colors.line_indicator] foreground = "None" background = "None" [colors.footer_bar] foreground = "#575279" background = "#fffaf3" [colors.selection] text = "#575279" background = "#dfdad9" [colors.normal] black = "#f2e9e1" red = "#b4637a" green = "#286983" yellow = "#ea9d34" blue = "#56949f" magenta = "#907aa9" cyan = "#d7827e" white = "#575279" [colors.bright] black = "#9893a5" red = "#b4637a" green = "#286983" yellow = "#ea9d34" blue = "#56949f" magenta = "#907aa9" cyan = "#d7827e" white = "#575279" [colors.dim] black = "#9893a5" red = "#b4637a" green = "#286983" yellow = "#ea9d34" blue = "#56949f" magenta = "#907aa9" cyan = "#d7827e" white = "#575279" ================================================ FILE: themes/rose-pine/btop.theme ================================================ # Main background, empty for terminal default, need to be empty if you want transparent background theme[main_bg]="#faf4ed" # Base # Main text color theme[main_fg]="#575279" # Text # Title color for boxes theme[title]="#908caa" # Subtle # Highlight color for keyboard shortcuts theme[hi_fg]="#e0def4" # Text # Background color of selected item in processes box theme[selected_bg]="#524f67" # HL High # Foreground color of selected item in processes box theme[selected_fg]="#f6c177" # Gold # Color of inactive/disabled text theme[inactive_fg]="#403d52" # HL Med # Color of text appearing on top of graphs, i.e uptime and current network graph scaling theme[graph_text]="#9ccfd8" # Foam # Background color of the percentage meters theme[meter_bg]="#9ccfd8" # Foam # Misc colors for processes box including mini cpu graphs, details memory graph and details status text theme[proc_misc]="#c4a7e7" # Iris # Cpu box outline color theme[cpu_box]="#ebbcba" # Rose # Memory/disks box outline color theme[mem_box]="#31748f" # Pine # Net up/down box outline color theme[net_box]="#c4a7e7" # Iris # Processes box outline color theme[proc_box]="#eb6f92" # Love # Box divider line and small boxes line color theme[div_line]="#6e6a86" # Muted # Temperature graph colors theme[temp_start]="#ebbcba" # Rose theme[temp_mid]="#f6c177" # Gold theme[temp_end]="#eb6f92" # Love # CPU graph colors theme[cpu_start]="#f6c177" # Gold theme[cpu_mid]="#ebbcba" # Rose theme[cpu_end]="#eb6f92" # Love # Mem/Disk free meter # all love theme[free_start]="#eb6f92" theme[free_mid]="#eb6f92" theme[free_end]="#eb6f92" # Mem/Disk cached meter # all iris theme[cached_start]="#c4a7e7" theme[cached_mid]="#c4a7e7" theme[cached_end]="#c4a7e7" # Mem/Disk available meter # all pine theme[available_start]="#31748f" theme[available_mid]="#31748f" theme[available_end]="#31748f" # Mem/Disk used meter # all rose theme[used_start]="#ebbcba" theme[used_mid]="#ebbcba" theme[used_end]="#ebbcba" # Download graph colors # Pine for start, foam for the rest theme[download_start]="#31748f" theme[download_mid]="#9ccfd8" theme[download_end]="#9ccfd8" # Upload graph colors theme[upload_start]="#ebbcba" # Rose for start theme[upload_mid]="#eb6f92" # Love for mid and end theme[upload_end]="#eb6f92" # Process box color gradient for threads, mem and cpu usage theme[process_start]="#31748f" # Pine theme[process_mid]="#9ccfd8" # Foam for mid and end theme[process_end]="#9ccfd8" ================================================ FILE: themes/rose-pine/gnome.sh ================================================ #!/bin/bash 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' ================================================ FILE: themes/rose-pine/neovim.lua ================================================ return { { "rose-pine/neovim", name = "rose-pine" }, { "LazyVim/LazyVim", opts = { colorscheme = "rose-pine-dawn", }, }, } ================================================ FILE: themes/rose-pine/tophat.sh ================================================ #!/bin/bash gsettings set org.gnome.shell.extensions.tophat meter-fg-color "#e92020" ================================================ FILE: themes/rose-pine/vscode.sh ================================================ #!/bin/bash VSC_THEME="Rosé Pine Dawn" VSC_EXTENSION="mvllow.rose-pine" source $OMAKUB_PATH/themes/set-vscode-theme.sh ================================================ FILE: themes/rose-pine/zellij.kdl ================================================ themes { rose-pine { bg "#faf4ed" fg "#575279" red "#b4637a" green "#286983" blue "#56949f" yellow "#ea9d34" magenta "#907aa9" orange "#fe640b" cyan "#d7827e" black "#f2e9e1" white "#575279" } } ================================================ FILE: themes/set-gnome-theme.sh ================================================ #!/bin/bash gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' 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" gsettings set org.gnome.desktop.interface accent-color "$OMAKUB_THEME_COLOR" 2>/dev/null || true BACKGROUND_ORG_PATH="$HOME/.local/share/omakub/themes/$OMAKUB_THEME_BACKGROUND" BACKGROUND_DEST_DIR="$HOME/.local/share/backgrounds" BACKGROUND_DEST_PATH="$BACKGROUND_DEST_DIR/$(echo $OMAKUB_THEME_BACKGROUND | tr '/' '-')" if [ ! -d "$BACKGROUND_DEST_DIR" ]; then mkdir -p "$BACKGROUND_DEST_DIR"; fi [ ! -f $BACKGROUND_DEST_PATH ] && cp $BACKGROUND_ORG_PATH $BACKGROUND_DEST_PATH gsettings set org.gnome.desktop.background picture-uri $BACKGROUND_DEST_PATH gsettings set org.gnome.desktop.background picture-uri-dark $BACKGROUND_DEST_PATH gsettings set org.gnome.desktop.background picture-options 'zoom' ================================================ FILE: themes/set-vscode-theme.sh ================================================ #!/bin/bash if command -v code &>/dev/null; then code --install-extension $VSC_EXTENSION >/dev/null sed -i "s/\"workbench.colorTheme\": \".*\"/\"workbench.colorTheme\": \"$VSC_THEME\"/g" ~/.config/Code/User/settings.json fi ================================================ FILE: themes/tokyo-night/alacritty.toml ================================================ [colors] [colors.primary] background = '#1a1b26' foreground = '#a9b1d6' # Normal colors [colors.normal] black = '#32344a' red = '#f7768e' green = '#9ece6a' yellow = '#e0af68' blue = '#7aa2f7' magenta = '#ad8ee6' cyan = '#449dab' white = '#787c99' # Bright colors [colors.bright] black = '#444b6a' red = '#ff7a93' green = '#b9f27c' yellow = '#ff9e64' blue = '#7da6ff' magenta = '#bb9af7' cyan = '#0db9d7' white = '#acb0d0' [colors.selection] background = '#7aa2f7' ================================================ FILE: themes/tokyo-night/btop.theme ================================================ # Theme: tokyo-night # By: Pascal Jaeger # Main bg theme[main_bg]="#1a1b26" # Main text color theme[main_fg]="#cfc9c2" # Title color for boxes theme[title]="#cfc9c2" # Highlight color for keyboard shortcuts theme[hi_fg]="#7dcfff" # Background color of selected item in processes box theme[selected_bg]="#414868" # Foreground color of selected item in processes box theme[selected_fg]="#cfc9c2" # Color of inactive/disabled text theme[inactive_fg]="#565f89" # Misc colors for processes box including mini cpu graphs, details memory graph and details status text theme[proc_misc]="#7dcfff" # Cpu box outline color theme[cpu_box]="#565f89" # Memory/disks box outline color theme[mem_box]="#565f89" # Net up/down box outline color theme[net_box]="#565f89" # Processes box outline color theme[proc_box]="#565f89" # Box divider line and small boxes line color theme[div_line]="#565f89" # Temperature graph colors theme[temp_start]="#9ece6a" theme[temp_mid]="#e0af68" theme[temp_end]="#f7768e" # CPU graph colors theme[cpu_start]="#9ece6a" theme[cpu_mid]="#e0af68" theme[cpu_end]="#f7768e" # Mem/Disk free meter theme[free_start]="#9ece6a" theme[free_mid]="#e0af68" theme[free_end]="#f7768e" # Mem/Disk cached meter theme[cached_start]="#9ece6a" theme[cached_mid]="#e0af68" theme[cached_end]="#f7768e" # Mem/Disk available meter theme[available_start]="#9ece6a" theme[available_mid]="#e0af68" theme[available_end]="#f7768e" # Mem/Disk used meter theme[used_start]="#9ece6a" theme[used_mid]="#e0af68" theme[used_end]="#f7768e" # Download graph colors theme[download_start]="#9ece6a" theme[download_mid]="#e0af68" theme[download_end]="#f7768e" # Upload graph colors theme[upload_start]="#9ece6a" theme[upload_mid]="#e0af68" theme[upload_end]="#f7768e" ================================================ FILE: themes/tokyo-night/gnome.sh ================================================ #!/bin/bash OMAKUB_THEME_COLOR="purple" OMAKUB_THEME_BACKGROUND="tokyo-night/background.jpg" source $OMAKUB_PATH/themes/set-gnome-theme.sh ================================================ FILE: themes/tokyo-night/neovim.lua ================================================ return { { "LazyVim/LazyVim", opts = { colorscheme = "tokyonight", }, }, } ================================================ FILE: themes/tokyo-night/tophat.sh ================================================ #!/bin/bash gsettings set org.gnome.shell.extensions.tophat meter-fg-color "#924d8b" ================================================ FILE: themes/tokyo-night/vscode.sh ================================================ #!/bin/bash VSC_THEME="Tokyo Night" VSC_EXTENSION="enkia.tokyo-night" source $OMAKUB_PATH/themes/set-vscode-theme.sh ================================================ FILE: themes/tokyo-night/zellij.kdl ================================================ themes { tokyo-night { fg 169 177 214 bg 26 27 38 black 56 62 90 red 249 51 87 green 158 206 106 yellow 224 175 104 blue 122 162 247 magenta 187 154 247 cyan 42 195 222 white 192 202 245 orange 255 158 100 } } ================================================ FILE: uninstall/app-1password.sh ================================================ #!/bin/bash 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 remove --purge -y 1password 1password-cli ================================================ FILE: uninstall/app-audacity.sh ================================================ #!/bin/bash flatpak uninstall -y flathub org.audacityteam.Audacity ================================================ FILE: uninstall/app-brave.sh ================================================ #!/bin/bash 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 ================================================ FILE: uninstall/app-chrome.sh ================================================ #!/bin/bash sudo apt remove -y google-chrome-stable ================================================ FILE: uninstall/app-cursor.sh ================================================ #!/bin/bash sudo rm /opt/cursor.appimage sudo rm /usr/share/applications/cursor.desktop ================================================ FILE: uninstall/app-discord.sh ================================================ sudo apt remove --purge -y discord ================================================ FILE: uninstall/app-doom-emacs.sh ================================================ #!/bin/bash sudo apt remove --purge -y emacs emacs-gtk sudo rm -rf ~/.config/emacs sudo rm -rf ~/.emacs.d sudo rm -rf ~/.config/doom ================================================ FILE: uninstall/app-fastfetch.sh ================================================ #!/bin/bash sudo apt remove -y fastfetch ================================================ FILE: uninstall/app-flameshot.sh ================================================ #!/bin/bash sudo apt remove -y flameshot ================================================ FILE: uninstall/app-geekbench.sh ================================================ #!/bin/bash sudo rm -rf /usr/local/geekbench6 sudo rm -rf /usr/local/bin/geekbench6 ================================================ FILE: uninstall/app-gimp.sh ================================================ #!/bin/bash sudo flatpak remove -y org.gimp.GIMP ================================================ FILE: uninstall/app-github-cli.sh ================================================ #!/bin/bash sudo apt remove -y gh ================================================ FILE: uninstall/app-libreoffice.sh ================================================ #!/bin/bash sudo apt remove -y libreoffice ================================================ FILE: uninstall/app-localsend.sh ================================================ #!/bin/bash sudo apt remove -y localsend ================================================ FILE: uninstall/app-mainline-kernels.sh ================================================ #!/bin/bash sudo apt remove -y mainline ================================================ FILE: uninstall/app-minecraft.sh ================================================ #!/bin/bash sudo apt remove -y openjdk-8-jdk minecraft-launcher ================================================ FILE: uninstall/app-neovim.sh ================================================ #!/bin/bash sudo rm /usr/local/bin/nvim sudo rm -r /usr/local/share/nvim/ rm ~/.local/share/applications/Neovim.desktop rm -rf ~/.config/nvim rm -rf ~/.local/share/nvim rm -rf ~/.local/state/nvim rm -rf ~/.cache/nvim ================================================ FILE: uninstall/app-obs-studio.sh ================================================ #!/bin/bash sudo apt remove -y obs-studio ================================================ FILE: uninstall/app-obsidian.sh ================================================ #!/bin/bash sudo apt remove --purge -y obsidian ================================================ FILE: uninstall/app-ollama.sh ================================================ #!/bin/bash # 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 ================================================ FILE: uninstall/app-pinta.sh ================================================ #!/bin/bash flatpak uninstall -y flathub com.github.PintaProject.Pinta ================================================ FILE: uninstall/app-retroarch.sh ================================================ #!/bin/bash flatpak uninstall -y flathub org.libretro.RetroArch ================================================ FILE: uninstall/app-rubymine.sh ================================================ #!/bin/bash sudo snap remove rubymine ================================================ FILE: uninstall/app-signal.sh ================================================ #!/bin/bash sudo apt remove --purge -y signal-desktop ================================================ FILE: uninstall/app-spotify.sh ================================================ #!/bin/bash sudo apt remove -y spotify-client ================================================ FILE: uninstall/app-steam.sh ================================================ #!/bin/bash sudo apt remove -y steam steam-launcher ================================================ FILE: uninstall/app-tailscale.sh ================================================ #!/bin/bash sudo apt remove -y tailscale ================================================ FILE: uninstall/app-typora.sh ================================================ #!/bin/bash sudo apt remove typora -y rm -rf ~/.config/Typora ================================================ FILE: uninstall/app-virtualbox.sh ================================================ #!/bin/bash sudo apt purge -y virtualbox virtualbox-dkms virtualbox-qt virtualbox-ext-pack sudo apt autoremove --purge -y rm -rf ~/.config/VirtualBox ================================================ FILE: uninstall/app-vlc.sh ================================================ #!/bin/bash sudo apt remove -y vlc ================================================ FILE: uninstall/app-vscode.sh ================================================ #!/bin/bash sudo apt purge -y remove code rm -rf ~/.config/Code/User ================================================ FILE: uninstall/app-windsurf.sh ================================================ #!/bin/bash sudo apt purge -y windsurf sudo rm /etc/apt/sources.list.d/windsurf.list sudo rm /usr/share/keyrings/windsurf-stable-archive-keyring.gpg ================================================ FILE: uninstall/app-xournalpp.sh ================================================ #!/bin/bash sudo apt remove -y xournalpp ================================================ FILE: uninstall/app-zed.sh ================================================ #!/bin/bash rm -rf ~/.local/zed.app rm -rf ~/.local/bin/zed rm -rf ~/.local/share/applications/dev.zed.Zed.desktop rm -rf ~/.config/zed ================================================ FILE: uninstall/app-zoom.sh ================================================ #!/bin/bash sudo apt remove -y zoom ================================================ FILE: uninstall/apps-web.sh ================================================ #!/bin/bash rm ~/.local/share/applications/WhatsApp.desktop rm ~/.local/share/applications/Basecamp.desktop rm ~/.local/share/applications/HEY.desktop ================================================ FILE: uninstall/dev-language.sh ================================================ #!/bin/bash # Uninstall 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 to uninstall") fi if [[ -n $languages ]]; then for language in $languages; do case $language in Ruby) mise uninstall ruby@3.4 mise x ruby -- gem uninstall rails ;; Node.js) mise uninstall node@lts ;; Go) mise uninstall go@latest ;; PHP) sudo apt -y purge php php-{curl,apcu,intl,mbstring,opcache,pgsql,mysql,sqlite3,redis,xml,zip} sudo apt -y autoremove sudo rm /usr/local/bin/composer ;; Python) mise uninstall python@latest ;; Elixir) mise uninstall elixir@latest mise uninstall erlang@latest ;; Rust) rustup self uninstall -y ;; Java) mise uninstall java@latest ;; esac done fi ================================================ FILE: uninstall/docker.sh ================================================ #!/bin/bash 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 ================================================ FILE: uninstall/select-web-apps.sh ================================================ #!/bin/bash source $OMAKUB_PATH/defaults/bash/functions AVAILABLE_WEB_APPS=("Chat GPT" "Google Photos" "Google Contacts" "Tailscale") apps=$(gum choose "${AVAILABLE_WEB_APPS[@]}" --no-limit --height 6 --header "Select web apps to uninstall") if [[ -n "$apps" ]]; then IFS=$'\n' for app in $apps; do case $app in "Chat GPT") web2app-remove 'Chat GPT' app2folder-remove 'Chat GPT.desktop' WebApps ;; "Google Photos") web2app-remove 'Google Photos' app2folder-remove 'Google Photos.desktop' WebApps ;; "Google Contacts") web2app-remove 'Google Contacts' app2folder-remove 'Google Contacts.desktop' WebApps ;; "Tailscale") web2app-remove 'Tailscale' app2folder-remove 'Tailscale.desktop' WebApps ;; esac done fi ================================================ FILE: version ================================================ 1.5.0