Skip to content

Instantly share code, notes, and snippets.

@danilogco
Last active June 24, 2025 17:36
Show Gist options
  • Save danilogco/dd7c28c30bf08a6cfebc5ed21c58a147 to your computer and use it in GitHub Desktop.
Save danilogco/dd7c28c30bf08a6cfebc5ed21c58a147 to your computer and use it in GitHub Desktop.

Revisions

  1. danilogco revised this gist Jun 24, 2025. 1 changed file with 87 additions and 78 deletions.
    165 changes: 87 additions & 78 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -14,95 +14,104 @@ alias zsh_update='omz update && \
    git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions pull && \
    git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting pull'

    # Unalias in case functions exist
    unalias install 2>/dev/null
    unalias uninstall 2>/dev/null
    unalias remove 2>/dev/null
    pkg() {
    local cmd="$1"
    shift

    # Dynamic install function with --pm support and cleanup
    install() {
    local pm=""
    local query=""
    case "$cmd" in
    install)
    local pm=""
    local query=""

    # Parse parameters
    while [[ $# -gt 0 ]]; do
    case "$1" in
    --pm)
    pm="$2"
    shift 2
    ;;
    *)
    query="$1"
    shift
    ;;
    esac
    done
    while [[ $# -gt 0 ]]; do
    case "$1" in
    --pm)
    pm="$2"
    shift 2
    ;;
    *)
    query="$1"
    shift
    ;;
    esac
    done

    if [[ -z "$query" ]]; then
    echo "Usage: install [--pm flatpak|apt] <app-name>"
    return 1
    fi
    if [[ -z "$query" ]]; then
    echo "Usage: pkg install [--pm flatpak|apt] <app-name>"
    return 1
    fi

    if [[ "$pm" == "flatpak" ]]; then
    local app_id
    app_id=$(flatpak search --columns=application,name "$query" | grep -i "$query" | awk 'NR==1 {print $1}')
    if [[ -n "$app_id" ]]; then
    echo "Installing $query as $app_id via Flatpak..."
    flatpak install -y flathub "$app_id"
    else
    echo "Could not find '$query' in Flatpak."
    return 1
    fi
    elif [[ "$pm" == "apt" ]]; then
    echo "Installing $query via APT..."
    sudo apt install -y "$query"
    else
    # Default behavior: try flatpak, fallback to apt
    local app_id
    app_id=$(flatpak search --columns=application,name "$query" | grep -i "$query" | awk 'NR==1 {print $1}')
    if [[ -n "$app_id" ]]; then
    echo "Installing $query as $app_id via Flatpak..."
    flatpak install -y flathub "$app_id"
    else
    echo "Flatpak not found. Installing $query via APT..."
    sudo apt install -y "$query"
    fi
    fi
    if [[ "$pm" == "flatpak" ]]; then
    local app_id
    app_id=$(flatpak search --columns=application,name "$query" | grep -i "$query" | awk 'NR==1 {print $1}')
    if [[ -n "$app_id" ]]; then
    echo "Installing $query as $app_id via Flatpak..."
    flatpak install -y flathub "$app_id"
    else
    echo "Could not find '$query' in Flatpak."
    return 1
    fi
    elif [[ "$pm" == "apt" ]]; then
    echo "Installing $query via APT..."
    sudo apt install -y "$query"
    else
    local app_id
    app_id=$(flatpak search --columns=application,name "$query" | grep -i "$query" | awk 'NR==1 {print $1}')
    if [[ -n "$app_id" ]]; then
    echo "Installing $query as $app_id via Flatpak..."
    flatpak install -y flathub "$app_id"
    else
    echo "Flatpak not found. Installing $query via APT..."
    sudo apt install -y "$query"
    fi
    fi
    ;;

    echo "Running cleanup..."
    sudo apt autoremove -y && sudo apt autoclean -y
    flatpak uninstall --unused -y
    }
    uninstall)
    local query="$1"
    if [[ -z "$query" ]]; then
    echo "Usage: pkg uninstall <app-name>"
    return 1
    fi

    # Uninstall function with cleanup
    uninstall() {
    local query="$1"
    local app_id
    app_id=$(flatpak list --app --columns=application,name | grep -i "$query" | awk 'NR==1 {print $1}')

    if [[ -z "$query" ]]; then
    echo "Usage: uninstall <app-name>"
    return 1
    fi
    if [[ -n "$app_id" ]]; then
    echo "Uninstalling $app_id via Flatpak..."
    flatpak uninstall -y "$app_id"
    else
    echo "Flatpak app not found. Trying to remove $query via APT..."
    sudo apt remove -y "$query"
    fi
    ;;

    local app_id
    app_id=$(flatpak list --app --columns=application,name | grep -i "$query" | awk 'NR==1 {print $1}')
    update)
    echo "Updating Flatpak packages..."
    flatpak update -y

    if [[ -n "$app_id" ]]; then
    echo "Uninstalling $app_id via Flatpak..."
    flatpak uninstall -y "$app_id"
    else
    echo "Flatpak app not found. Trying to remove $query via APT..."
    sudo apt remove -y "$query"
    fi
    echo "Updating APT packages..."
    sudo apt update
    sudo apt upgrade -y
    ;;

    echo "Running cleanup..."
    sudo apt autoremove -y && sudo apt autoclean -y
    flatpak uninstall --unused -y
    }
    clean)
    echo "Running cleanup..."
    sudo apt autoremove -y
    sudo apt autoclean -y
    flatpak uninstall --unused -y
    ;;

    # Update all and cleanup
    alias update='echo "Updating Flatpak packages..."; flatpak update -y && \
    echo "Updating APT packages..."; sudo apt update && sudo apt upgrade -y && \
    echo "Running cleanup..."; sudo apt autoremove -y && sudo apt autoclean -y && flatpak uninstall --unused -y'
    *)
    echo "Usage:"
    echo " pkg install [--pm flatpak|apt] <app-name>"
    echo " pkg uninstall <app-name>"
    echo " pkg update"
    echo " pkg clean"
    return 1
    ;;
    esac
    }

    # Show user-installed apps
    alias flatpak-user-apps='flatpak list --app --columns=application,name'
  2. danilogco revised this gist Jun 22, 2025. 1 changed file with 34 additions and 10 deletions.
    44 changes: 34 additions & 10 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -1,20 +1,25 @@
    # utils
    # Utils
    alias upd='sudo apt update && sudo apt full-upgrade -y && flatpak upgrade -y'
    alias cleanup='sudo apt autoremove && sudo apt autoclean && flatpak uninstall --unused'
    alias cleanup='sudo apt autoremove -y && sudo apt autoclean -y && flatpak uninstall --unused -y'
    alias please='sudo $(fc -ln -1)'
    alias ip='ip -c a'
    alias ports='sudo lsof -i -P -n | grep LISTEN'

    # zsh
    # Zsh config helpers
    alias zshconfig="nano ~/.zshrc"
    alias zshaliases="nano ~/.zsh_aliases"
    alias ohmyzsh="nano ~/.oh-my-zsh"
    alias zsh_update='omz update && git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k pull && git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions pull && git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting pull'
    alias zsh_update='omz update && \
    git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k pull && \
    git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions pull && \
    git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting pull'

    # Unalias in case 'install' or 'remove' is already an alias
    # Unalias in case functions exist
    unalias install 2>/dev/null
    unalias uninstall 2>/dev/null
    unalias remove 2>/dev/null

    # Dynamic install function with --pm support and cleanup
    install() {
    local pm=""
    local query=""
    @@ -52,35 +57,54 @@ install() {
    echo "Installing $query via APT..."
    sudo apt install -y "$query"
    else
    # Default: try Flatpak first
    # Default behavior: try flatpak, fallback to apt
    local app_id
    app_id=$(flatpak search --columns=application,name "$query" | grep -i "$query" | awk 'NR==1 {print $1}')
    if [[ -n "$app_id" ]]; then
    echo "Installing $query as $app_id via Flatpak..."
    flatpak install -y flathub "$app_id"
    else
    echo "Flatpak not found, falling back to APT..."
    echo "Flatpak not found. Installing $query via APT..."
    sudo apt install -y "$query"
    fi
    fi

    echo "Running cleanup..."
    sudo apt autoremove -y && sudo apt autoclean -y
    flatpak uninstall --unused -y
    }

    # Uninstall function with cleanup
    uninstall() {
    local query="$1"

    if [[ -z "$query" ]]; then
    echo "Usage: uninstall <app-name>"
    return 1
    fi

    local app_id
    app_id=$(flatpak list --app --columns=application,name | grep -i "$query" | awk 'NR==1 {print $1}')

    if [ -n "$app_id" ]; then
    if [[ -n "$app_id" ]]; then
    echo "Uninstalling $app_id via Flatpak..."
    flatpak uninstall -y "$app_id"
    else
    echo "Flatpak app not found. Trying to remove $query via APT..."
    sudo apt remove -y "$query"
    fi

    echo "Running cleanup..."
    sudo apt autoremove -y && sudo apt autoclean -y
    flatpak uninstall --unused -y
    }

    alias update='echo "Updating Flatpak packages..."; flatpak update -y && echo "Updating APT packages..."; sudo apt update && sudo apt upgrade -y'
    # Update all and cleanup
    alias update='echo "Updating Flatpak packages..."; flatpak update -y && \
    echo "Updating APT packages..."; sudo apt update && sudo apt upgrade -y && \
    echo "Running cleanup..."; sudo apt autoremove -y && sudo apt autoclean -y && flatpak uninstall --unused -y'

    # Show user-installed apps
    alias flatpak-user-apps='flatpak list --app --columns=application,name'
    alias apt-user-apps="comm -23 <(apt-mark showmanual | sort) <(gzip -dc /var/log/installer/initial-status.gz 2>/dev/null | awk '/^Package: / {print \$2}' | sort)"
    alias user-apps='echo "--- Flatpak ---"; flatpak-user-apps; echo "\n--- APT ---"; apt-user-apps'
    alias user-apps='echo "--- Flatpak ---"; flatpak-user-apps; echo "\n--- APT ---"; apt-user-apps'
  3. danilogco created this gist Jun 22, 2025.
    86 changes: 86 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,86 @@
    # utils
    alias upd='sudo apt update && sudo apt full-upgrade -y && flatpak upgrade -y'
    alias cleanup='sudo apt autoremove && sudo apt autoclean && flatpak uninstall --unused'
    alias please='sudo $(fc -ln -1)'
    alias ip='ip -c a'
    alias ports='sudo lsof -i -P -n | grep LISTEN'

    # zsh
    alias zshconfig="nano ~/.zshrc"
    alias zshaliases="nano ~/.zsh_aliases"
    alias ohmyzsh="nano ~/.oh-my-zsh"
    alias zsh_update='omz update && git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k pull && git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions pull && git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting pull'

    # Unalias in case 'install' or 'remove' is already an alias
    unalias install 2>/dev/null
    unalias remove 2>/dev/null

    install() {
    local pm=""
    local query=""

    # Parse parameters
    while [[ $# -gt 0 ]]; do
    case "$1" in
    --pm)
    pm="$2"
    shift 2
    ;;
    *)
    query="$1"
    shift
    ;;
    esac
    done

    if [[ -z "$query" ]]; then
    echo "Usage: install [--pm flatpak|apt] <app-name>"
    return 1
    fi

    if [[ "$pm" == "flatpak" ]]; then
    local app_id
    app_id=$(flatpak search --columns=application,name "$query" | grep -i "$query" | awk 'NR==1 {print $1}')
    if [[ -n "$app_id" ]]; then
    echo "Installing $query as $app_id via Flatpak..."
    flatpak install -y flathub "$app_id"
    else
    echo "Could not find '$query' in Flatpak."
    return 1
    fi
    elif [[ "$pm" == "apt" ]]; then
    echo "Installing $query via APT..."
    sudo apt install -y "$query"
    else
    # Default: try Flatpak first
    local app_id
    app_id=$(flatpak search --columns=application,name "$query" | grep -i "$query" | awk 'NR==1 {print $1}')
    if [[ -n "$app_id" ]]; then
    echo "Installing $query as $app_id via Flatpak..."
    flatpak install -y flathub "$app_id"
    else
    echo "Flatpak not found, falling back to APT..."
    sudo apt install -y "$query"
    fi
    fi
    }

    uninstall() {
    local query="$1"

    local app_id
    app_id=$(flatpak list --app --columns=application,name | grep -i "$query" | awk 'NR==1 {print $1}')

    if [ -n "$app_id" ]; then
    echo "Uninstalling $app_id via Flatpak..."
    flatpak uninstall -y "$app_id"
    else
    echo "Flatpak app not found. Trying to remove $query via APT..."
    sudo apt remove -y "$query"
    fi
    }

    alias update='echo "Updating Flatpak packages..."; flatpak update -y && echo "Updating APT packages..."; sudo apt update && sudo apt upgrade -y'
    alias flatpak-user-apps='flatpak list --app --columns=application,name'
    alias apt-user-apps="comm -23 <(apt-mark showmanual | sort) <(gzip -dc /var/log/installer/initial-status.gz 2>/dev/null | awk '/^Package: / {print \$2}' | sort)"
    alias user-apps='echo "--- Flatpak ---"; flatpak-user-apps; echo "\n--- APT ---"; apt-user-apps'