Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions bin/clean.sh
Original file line number Diff line number Diff line change
Expand Up @@ -768,6 +768,66 @@ perform_cleanup() {
log_success "Systemd core dumps"
fi

# 8. Orphaned packages cleanup (Enhanced Debloat)
if command -v apt-get &>/dev/null; then
if [[ "$DRY_RUN" != "true" ]]; then
# Remove orphaned packages
local orphans_output=$(sudo apt-get autoremove -y 2>&1)
if echo "$orphans_output" | grep -q "packages will be removed"; then
log_success "Orphaned packages removed"
fi
else
# Check for orphaned packages
local orphaned=$(apt-mark showauto 2>/dev/null | \
xargs apt-cache rdepends --installed 2>/dev/null | \
grep -v "^ " | grep -v "^Reverse" | wc -l)
if [[ $orphaned -gt 0 ]]; then
log_success "Would remove orphaned packages [DRY RUN]"
fi
fi
fi

# 9. Deborphan cleanup (if installed)
if command -v deborphan &>/dev/null; then
if [[ "$DRY_RUN" != "true" ]]; then
local orphan_list=$(deborphan)
if [[ -n "$orphan_list" ]]; then
echo "$orphan_list" | sudo xargs apt-get -y purge &>/dev/null || true
log_success "Deborphan packages removed"
fi
else
local orphan_count=$(deborphan | wc -l)
if [[ $orphan_count -gt 0 ]]; then
log_success "Would remove $orphan_count deborphan package(s) [DRY RUN]"
fi
fi
fi

# 10. Optional bloatware removal (gnome-games, gnome-software)
# Note: Only removes if explicitly confirmed
if [[ "${FUB_REMOVE_BLOAT:-}" == "true" ]]; then
local bloat_packages=("gnome-games" "gnome-software" "gnome-mahjongg" "gnome-mines" "gnome-sudoku" "aisleriot")
if [[ "$DRY_RUN" != "true" ]]; then
for pkg in "${bloat_packages[@]}"; do
if dpkg -l | grep -q "^ii.*$pkg"; then
sudo apt-get purge -y "$pkg" &>/dev/null || true
fi
done
log_success "Bloatware packages removed"
else
local bloat_count=0
for pkg in "${bloat_packages[@]}"; do
if dpkg -l | grep -q "^ii.*$pkg"; then
((bloat_count++))
fi
done
if [[ $bloat_count -gt 0 ]]; then
log_success "Would remove $bloat_count bloatware package(s) [DRY RUN]"
echo -e " ${GRAY}Set FUB_REMOVE_BLOAT=true to enable bloatware removal${NC}"
fi
fi
fi

end_section
fi

Expand Down
67 changes: 67 additions & 0 deletions bin/optimize.sh
Original file line number Diff line number Diff line change
Expand Up @@ -574,6 +574,73 @@ main() {
done
fi

# ===== Additional Ubuntu Optimizations =====

# Performance tuning (disable tracker, hibernation)
echo ""
echo -e "${BLUE}${ICON_ARROW}${NC} Performance tuning..."

# Disable GNOME Tracker (file indexing)
if systemctl --user is-active --quiet tracker-miner-fs.service 2>/dev/null; then
echo -ne " ${GRAY}→${NC} Disable GNOME Tracker (file indexing)..."
systemctl --user mask tracker-store.service tracker-miner-fs.service tracker-miner-rss.service tracker-extract.service tracker-miner-apps.service tracker-writeback.service &>/dev/null || true
systemctl --user stop tracker-store.service tracker-miner-fs.service tracker-miner-rss.service tracker-extract.service tracker-miner-apps.service tracker-writeback.service &>/dev/null || true
echo -e " ${GREEN}✓${NC}"
fi

# Disable hibernation (faster boot)
if [[ -f /etc/systemd/logind.conf ]]; then
if ! grep -q "HandleLidSwitch=suspend" /etc/systemd/logind.conf 2>/dev/null; then
echo -ne " ${GRAY}→${NC} Disable hibernation for faster boot..."
sudo mkdir -p /etc/systemd/logind.conf.d 2>/dev/null || true
echo -e "[Login]\nHandleLidSwitch=suspend\nHandleLidSwitchDocked=ignore" | sudo tee /etc/systemd/logind.conf.d/fub-performance.conf &>/dev/null || true
echo -e " ${GREEN}✓${NC}"
fi
fi

# Reduce swappiness for better performance (if not already set)
local current_swappiness=$(cat /proc/sys/vm/swappiness 2>/dev/null || echo "60")
if [[ $current_swappiness -gt 10 ]]; then
echo -ne " ${GRAY}→${NC} Reduce swappiness to 10 (better performance)..."
echo "vm.swappiness=10" | sudo tee /etc/sysctl.d/99-fub-swappiness.conf &>/dev/null || true
sudo sysctl vm.swappiness=10 &>/dev/null || true
echo -e " ${GREEN}✓${NC}"
fi

# Nerd Fonts installer (optional)
if [[ "${FUB_INSTALL_NERDFONTS:-}" == "true" ]]; then
echo ""
echo -e "${BLUE}${ICON_ARROW}${NC} Installing Nerd Fonts..."

local fonts_dir="$HOME/.local/share/fonts"
mkdir -p "$fonts_dir"

# Download and install popular Nerd Fonts
local nerd_fonts=("JetBrainsMono" "FiraCode" "Hack" "Meslo")

for font in "${nerd_fonts[@]}"; do
if [[ ! -d "$fonts_dir/$font" ]]; then
echo -ne " ${GRAY}→${NC} Downloading $font Nerd Font..."
local font_url="https://github.com/ryanoasis/nerd-fonts/releases/latest/download/${font}.zip"
local temp_zip="/tmp/${font}.zip"

if curl -fsSL "$font_url" -o "$temp_zip" 2>/dev/null; then
mkdir -p "$fonts_dir/$font"
unzip -q "$temp_zip" -d "$fonts_dir/$font" 2>/dev/null || true
rm -f "$temp_zip"
echo -e " ${GREEN}✓${NC}"
else
echo -e " ${YELLOW}skipped${NC}"
fi
fi
done

# Update font cache
echo -ne " ${GRAY}→${NC} Updating font cache..."
fc-cache -fv &>/dev/null || true
echo -e " ${GREEN}✓${NC}"
fi

# Show login item reminder at the end of optimization log
local -a login_items_list=()
while IFS= read -r login_item; do
Expand Down
Loading
Loading