<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Linux on Aquasp's blog</title><link>https://aquasp.blog/tag/linux/</link><description>Recent content in Linux on Aquasp's blog</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Tue, 14 Apr 2026 01:15:39 +0000</lastBuildDate><atom:link href="https://aquasp.blog/tag/linux/index.xml" rel="self" type="application/rss+xml"/><item><title>How to Setup Flutter for Development in Ubuntu 24.04</title><link>https://aquasp.blog/how-to-setup-flutter-for-development-in-ubuntu-24-04/</link><pubDate>Tue, 14 Apr 2026 01:15:39 +0000</pubDate><guid>https://aquasp.blog/how-to-setup-flutter-for-development-in-ubuntu-24-04/</guid><description>&lt;p&gt;The fastest and easiest way with the latest Flutter version.&lt;/p&gt;&#10;&lt;h2 id="step-1-install-flutter-using-snap"&gt;Step 1: Install Flutter using Snap&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo snap install flutter --classic&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="step-2-install-openjdk"&gt;Step 2: Install OpenJDK&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo apt install openjdk-17-jdk -y&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="step-3-download-android-cli-tools"&gt;Step 3: Download Android CLI Tools&#10;&lt;/h2&gt;&lt;p&gt;Go &lt;a class="link" href="https://developer.android.com/studio?ref=aquasp.blog#command-line-tools-only" target="_blank" rel="noopener"&#10; &gt;here&lt;/a&gt; and grab the latest for Linux.&lt;/p&gt;&#10;&lt;p&gt;Create folder:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;mkdir ~/Android/Sdk&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Make sure you are using this exact structure:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;~/Android/Sdk/cmdline-tools/latest/bin/ ← sdkmanager&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="step-4-add-to-bashrc"&gt;Step 4: Add to ~/.bashrc&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;export ANDROID_SDK_ROOT=$HOME/Android/Sdkexport ANDROID_HOME=$ANDROID_SDK_ROOTexport&#10;PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/binexport PATH=$PATH:$ANDROID_SDK_ROOT/platform-tools # Nextexport JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64export PATH=$PATH:$JAVA_HOME/binexport CHROME_EXECUTABLE=/usr/bin/brave-browser&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="step-5-install-sdkmanager"&gt;Step 5: Install sdkmanager&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;sdkmanager &amp;#34;platform-tools&amp;#34; &amp;#34;platforms;android-36&amp;#34; &amp;#34;build-tools;36.0.0&amp;#34;&#10;sdkmanager --update&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="step-6-flutter-setup"&gt;Step 6: Flutter Setup&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;flutter config --android-sdk ~/Android/Sdkflutter doctor --android-licenses # Accept all&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="step-7-check"&gt;Step 7: Check&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;flutter doctor -v&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;You now have a clean Flutter setup without Android Studio.&lt;/p&gt;&#10;&lt;p&gt;Thanks – build on! 🚀&lt;/p&gt;&#10;</description></item><item><title>How to enable hardware-Accelerated Video Decoding in Brave on Linux: Smoother Playback and Better Battery</title><link>https://aquasp.blog/how-to-enable-hardware-accelerated-video-decoding-in-brave-on-linux-smoother-playback-and-better-battery/</link><pubDate>Sun, 14 Dec 2025 01:35:15 +0000</pubDate><guid>https://aquasp.blog/how-to-enable-hardware-accelerated-video-decoding-in-brave-on-linux-smoother-playback-and-better-battery/</guid><description>&lt;p&gt;Hardware-accelerated video decoding offloads playback from CPU to GPU, improving performance, reducing heat, and extending battery life—especially for high-resolution videos. On Linux, this works in Chromium-based browsers like Brave, but often requires flags. &lt;strong&gt;No more relying on h264ify extensions or downloading videos for MPV!&lt;/strong&gt;&lt;/p&gt;&#10;&lt;h2 id="benefits"&gt;Benefits&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;Smoother high-res (1080p+) playback&lt;/li&gt;&#10;&lt;li&gt;Lower CPU usage&lt;/li&gt;&#10;&lt;li&gt;Better battery life on laptops&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="prerequisites-ubuntu-based-distros-eg-mint"&gt;Prerequisites (Ubuntu-Based Distros, e.g., Mint)&#10;&lt;/h2&gt;&lt;p&gt;For Intel GPUs (common on laptops):&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo apt update&#10;sudo apt install intel-media-va-driver-non-free vainfo&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Verify with vainfo (should list supported profiles like VP9/H.264).&lt;/p&gt;&#10;&lt;p&gt;AMD/NVIDIA: Ensure Mesa/proprietary drivers are installed.&lt;/p&gt;&#10;&lt;h2 id="enabling-flags-support-on-ubuntu-based-distros"&gt;Enabling Flags Support on Ubuntu-Based Distros&#10;&lt;/h2&gt;&lt;p&gt;Brave&amp;rsquo;s Debian package doesn&amp;rsquo;t read brave-flags.conf by default (unlike Arch&amp;rsquo;s AUR package). Create a wrapper:&lt;/p&gt;&#10;&lt;p&gt;Fix permissions:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo chown --reference=/usr/bin/brave-browser-stable.original /usr/bin/brave-browser-stable&#10;sudo chmod --reference=/usr/bin/brave-browser-stable.original /usr/bin/brave-browser-stable&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Create new launcher:Bash&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo nano /usr/bin/brave-browser-stable&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Paste:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;#!/bin/sh&#10;: $$ {XDG_CONFIG_HOME=&amp;#34; $${HOME}/.config&amp;#34;}&#10;unset -v flags_conf&#10;flags_conf=&amp;#34;${XDG_CONFIG_HOME}/brave-flags.conf&amp;#34;&#10;if [ -f &amp;#34;${flags_conf}&amp;#34; ]&#10;then&#10; unset -v flags&#10; flags=&amp;#34;$$ (sed &amp;#39;s/#.*//&amp;#39; &amp;lt; &amp;#34; $${flags_conf}&amp;#34; | tr &amp;#39;\n&amp;#39; &amp;#39; &amp;#39;)&amp;#34;&#10; set -- $$ {flags} &amp;#34; $$@&amp;#34;&#10;fi&#10;exec /usr/bin/brave-browser-stable.original &amp;#34;$@&amp;#34;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Divert the original launcher:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo dpkg-divert --add --rename --divert /usr/bin/brave-browser-stable.original /usr/bin/brave-browser-stable&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Now create/edit ~/.config/brave-flags.conf for flags.&lt;/p&gt;&#10;&lt;h2 id="recommended-flags"&gt;Recommended Flags&#10;&lt;/h2&gt;&lt;p&gt;Add to ~/.config/brave-flags.conf (one line, restart Brave):&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Wayland (often default/best):&lt;/strong&gt;&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;--enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL,AcceleratedVideoEncoder&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Xorg/X11 (or fallback):&lt;/strong&gt;&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;--enable-features=VaapiVideoDecoder,VaapiIgnoreDriverChecks,Vulkan,DefaultANGLEVulkan,VulkanFromANGLE&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="verification"&gt;Verification&#10;&lt;/h2&gt;&lt;ol&gt;&#10;&lt;li&gt;Play a video (e.g., YouTube 1080p+).&lt;/li&gt;&#10;&lt;li&gt;Ctrl + Shift + I → Three dots → More tools → Media.&lt;/li&gt;&#10;&lt;li&gt;Check Decoder name: VaapiVideoDecoder = GPU accelerated (avoid FFmpegVideoDecoder).&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h3 id="credits"&gt;Credits&#10;&lt;/h3&gt;&lt;p&gt;This amazing commentary on github: &lt;a class="link" href="https://github.com/brave/brave-browser/issues/2300?ref=aquasp.blog#issuecomment-2718755680" target="_blank" rel="noopener"&#10; &gt;https://github.com/brave/brave-browser/issues/2300#issuecomment-2718755680&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;As always, the Arch Wiki is an invaluable resource for all things Linux. If hardware video acceleration still doesn&amp;rsquo;t work, check the wiki directly for the latest flags and troubleshooting tips. &lt;a class="link" href="https://wiki.archlinux.org/title/Chromium?ref=aquasp.blog#Hardware_video_acceleration" target="_blank" rel="noopener"&#10; &gt;https://wiki.archlinux.org/title/Chromium#Hardware_video_acceleration&lt;/a&gt;&lt;/p&gt;&#10;</description></item><item><title>Quick Fix: Stop Ubuntu 24.04 from Automatically Suspending/Sleeping</title><link>https://aquasp.blog/quick-fix-stop-ubuntu-24-04-from-automatically-suspending-sleeping/</link><pubDate>Fri, 12 Dec 2025 19:58:45 +0000</pubDate><guid>https://aquasp.blog/quick-fix-stop-ubuntu-24-04-from-automatically-suspending-sleeping/</guid><description>&lt;p&gt;If your Ubuntu 24.04 system (especially one that started as a server install) randomly suspends or goes to sleep even though it&amp;rsquo;s supposed to be a headless server, you&amp;rsquo;re not alone.&lt;/p&gt;&#10;&lt;p&gt;This seems to happen when a server installation gets partially or fully converted to a &amp;ldquo;desktop&amp;rdquo; environment at some point — even if you never intentionally installed a desktop. In my case, I installed Ubuntu Server 24.04 directly with balenaEtcher onto NVMe/SSD and I got this weird behavior (my N100 server was suspending after 15 minutes).&lt;/p&gt;&#10;&lt;h2 id="the-simple-one-liner-fix"&gt;The Simple One-Liner Fix&#10;&lt;/h2&gt;&lt;p&gt;Run this single command and the random suspensions stop immediately (and persist across reboots):&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;That is it!&lt;/p&gt;&#10;</description></item><item><title>How to avoid timeouts while you are logged on SSH</title><link>https://aquasp.blog/how-to-avoid-timeouts-while-you-are-logged-on-ssh/</link><pubDate>Tue, 09 Dec 2025 01:41:02 +0000</pubDate><guid>https://aquasp.blog/how-to-avoid-timeouts-while-you-are-logged-on-ssh/</guid><description>&lt;h2 id="introduction"&gt;Introduction&#10;&lt;/h2&gt;&lt;p&gt;One of the most frustrating things when working on a server?&lt;/p&gt;&#10;&lt;p&gt;Your SSH session dies because of a brief Wi-Fi hiccup, idle timeout, or flaky connection.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Fix it forever in 30 seconds.&lt;/strong&gt;&lt;/p&gt;&#10;&lt;h2 id="the-universal-fix-edit-your-ssh-config"&gt;The Universal Fix: Edit Your SSH Config&#10;&lt;/h2&gt;&lt;p&gt;This works on &lt;strong&gt;Linux, macOS, and Windows&lt;/strong&gt; — and survives network glitches up to ~4–5 minutes.&lt;/p&gt;&#10;&lt;h3 id="step-1-create-or-edit-the-ssh-config-file"&gt;Step 1: Create or Edit the SSH Config File&#10;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;On Linux / macOS:&lt;/strong&gt;&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mkdir -p ~/.ssh&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;nano ~/.ssh/config&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;On Windows (PowerShell):&lt;/strong&gt;&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;# Replace YourUsername with your actual Windows username&#10;mkdir &amp;#34;$HOME\.ssh&amp;#34; -Force&#10;notepad &amp;#34;$HOME\.ssh\config&amp;#34;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="step-2-add-these-lines"&gt;Step 2: Add These Lines&#10;&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;sshHost *&#10; ServerAliveInterval 120&#10; ServerAliveCountMax 3&#10; TCPKeepAlive yes&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Save and exit.&lt;/p&gt;&#10;&lt;p&gt;Done. That’s it.&lt;/p&gt;&#10;&lt;h2 id="what-this-actually-does"&gt;What This Actually Does&#10;&lt;/h2&gt;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Setting&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Meaning&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Host *&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Apply these rules to &lt;strong&gt;every&lt;/strong&gt; SSH connection&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;ServerAliveInterval 120&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Every 2 minutes, your computer sends a tiny “I’m still here” packet&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;ServerAliveCountMax 3&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;If 3 packets in a row fail → only then close the connection (~6 min)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;TCPKeepAlive yes&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Extra OS-level keepalive (helps with some routers/firewalls)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;Result: Your SSH session now survives:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Wi-Fi switching&lt;/li&gt;&#10;&lt;li&gt;Laptop sleep/wake&lt;/li&gt;&#10;&lt;li&gt;Brief internet drops&lt;/li&gt;&#10;&lt;li&gt;VPN reconnects&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;…without freezing or dying.&lt;/p&gt;&#10;&lt;h2 id="youre-now-unbreakable"&gt;You&amp;rsquo;re Now Unbreakable&#10;&lt;/h2&gt;&lt;p&gt;From now on, when your internet blinks, your SSH session just… waits patiently.&lt;/p&gt;&#10;&lt;p&gt;No more “Connection reset by peer”&#10;No more lost tmux sessions&#10;No more rage&lt;/p&gt;&#10;&lt;p&gt;You’ve officially leveled up.&lt;/p&gt;&#10;&lt;p&gt;Thank you for reading — stay connected!&lt;/p&gt;&#10;</description></item><item><title>How to check disk usage per file or directory on linux</title><link>https://aquasp.blog/how-to-check-disk-usage-per-file-or-directory-on-linux/</link><pubDate>Tue, 09 Dec 2025 01:34:27 +0000</pubDate><guid>https://aquasp.blog/how-to-check-disk-usage-per-file-or-directory-on-linux/</guid><description>&lt;h2 id="introduction"&gt;Introduction&#10;&lt;/h2&gt;&lt;p&gt;Whether you&amp;rsquo;re debugging a full VPS, cleaning up a home server, or just curious — here are the &lt;strong&gt;fastest and most useful&lt;/strong&gt; commands to understand what&amp;rsquo;s eating your disk space.&lt;/p&gt;&#10;&lt;h2 id="1-find-the-biggest-files--folders-in-the-current-directory"&gt;1. Find the Biggest Files &amp;amp; Folders in the Current Directory&#10;&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;du -shc * | sort -rh | head -15&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#10;&lt;li&gt;du -shc * → shows size of everything in the current folder (human-readable, with total)&lt;/li&gt;&#10;&lt;li&gt;sort -rh → sorts from biggest to smallest&lt;/li&gt;&#10;&lt;li&gt;head -15 → shows only the top 15 culprits (change number as needed)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Perfect for quickly spotting that one huge log file or backup folder.&lt;/p&gt;&#10;&lt;p&gt;Pro tip: Run it in /var, /home, or / to hunt down space hogs.&lt;/p&gt;&#10;&lt;h2 id="2-check-overall-disk-usage-all-partitions"&gt;2. Check Overall Disk Usage (All Partitions)&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;df -h&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Shows:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Total/used/available space&lt;/li&gt;&#10;&lt;li&gt;Percentage used&lt;/li&gt;&#10;&lt;li&gt;Mount point&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Look for the line with / (root) or your main drive.&#10;Example: 64G used / 226G total → 28% full&lt;/p&gt;&#10;&lt;p&gt;Add &amp;ndash;exclude-type=tmpfs to hide temporary filesystems:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;df -h --exclude-type=tmpfs --exclude-type=devtmpfs&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="3-check-inode-usage-when-disk-full-but-df-shows-space-left"&gt;3. Check Inode Usage (When &amp;ldquo;Disk Full&amp;rdquo; But df Shows Space Left)&#10;&lt;/h2&gt;&lt;p&gt;Sometimes your disk is full of &lt;strong&gt;millions of tiny files&lt;/strong&gt; (logs, cache, sessions, etc.). Each file uses one inode.&lt;/p&gt;&#10;&lt;p&gt;Check inodes per folder in current directory:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;du --inodes --max-depth=1 . | sort -nr&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Or system-wide:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;df -i&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If &amp;ldquo;IUsed&amp;rdquo; is near 100%, you’re out of inodes — time to clean up small files!&lt;/p&gt;&#10;&lt;h2 id="bonus-one-liners"&gt;Bonus One-Liners&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# Top 10 biggest directories in /home&#10;du -h /home | sort -rh | head -10&#10;&#10;# Find files bigger than 1GB&#10;find / -type f -size +1G 2&amp;gt;/dev/null&#10;&#10;# Show only real disks (clean output)&#10;df -h -x squashfs -x tmpfs -x devtmpfs&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;That’s it!&lt;/p&gt;&#10;&lt;p&gt;You now have the ultimate toolkit to &lt;strong&gt;never be surprised&lt;/strong&gt; by a full disk again.&lt;/p&gt;&#10;&lt;p&gt;Thank you for reading!&lt;/p&gt;&#10;</description></item><item><title>How to easily export and import docker volumes</title><link>https://aquasp.blog/how-to-easily-export-and-import-docker-volumes/</link><pubDate>Tue, 09 Dec 2025 01:22:26 +0000</pubDate><guid>https://aquasp.blog/how-to-easily-export-and-import-docker-volumes/</guid><description>&lt;p&gt;If you’re like me, you prefer to run &lt;strong&gt;everything&lt;/strong&gt; in Docker containers. They’re fast, isolated, and perfect for running multiple apps on one VPS.&lt;/p&gt;&#10;&lt;p&gt;But what happens when you want to:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Move a container to a new server?&lt;/li&gt;&#10;&lt;li&gt;Backup a database volume (NextCloud, PhotoPrism, Vaultwarden, etc.)?&lt;/li&gt;&#10;&lt;li&gt;Restore data after a crash?&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Docker doesn’t include a built-in “export volume” button — but there’s a &lt;strong&gt;super simple and reliable trick&lt;/strong&gt; using a temporary Ubuntu container.&lt;/p&gt;&#10;&lt;p&gt;Let’s go!&lt;/p&gt;&#10;&lt;h2 id="step-1-list-your-volumes"&gt;Step 1: List Your Volumes&#10;&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker volume ls&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Example output:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;DRIVER VOLUME NAME&#10;local nextcloud_data&#10;local photoprism_storage&#10;local vaultwarden_data&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Pick the one you want to export (e.g., nextcloud_data).&lt;/p&gt;&#10;&lt;h2 id="step-2-export-a-volume--backuptargz"&gt;Step 2: Export a Volume → backup.tar.gz&#10;&lt;/h2&gt;&lt;p&gt;Run this &lt;strong&gt;one-line command&lt;/strong&gt; (replace nextcloud_data with your volume name):&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;docker run --rm -v nextcloud_data:/data -v &amp;#34;$(pwd)&amp;#34;:/backup ubuntu \&#10; tar -czf /backup/nextcloud-data-backup.tar.gz -C /data ./&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;What this does:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Mounts your volume to /data inside a temporary container&lt;/li&gt;&#10;&lt;li&gt;Mounts your current folder to /backup&lt;/li&gt;&#10;&lt;li&gt;Creates a compressed archive of the entire volume&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;After it finishes, you’ll have a file like:&#10;nextcloud-data-backup.tar.gz ← ready to download or move!&lt;/p&gt;&#10;&lt;p&gt;Pro tip: Add the date for clarity&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;docker run --rm -v nextcloud_data:/data -v &amp;#34;$(pwd)&amp;#34;:/backup ubuntu \&#10; tar -czf &amp;#34;/backup/nextcloud-data-$(date +%Y-%m-%d).tar.gz&amp;#34; -C /data ./&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="step-3-import-on-the-new-server"&gt;Step 3: Import on the New Server&#10;&lt;/h2&gt;&lt;ol&gt;&#10;&lt;li&gt;Copy your backup.tar.gz file to the new server (via scp, rsync, etc.)&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;Then, &lt;strong&gt;create the empty volume&lt;/strong&gt; (important!):&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;docker volume create nextcloud_data&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Run the import command (from the folder containing the backup file):&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;docker run --rm -v nextcloud_data:/data -v &amp;#34;$(pwd)&amp;#34;:/backup ubuntu \&#10; tar -xzf /backup/nextcloud-data-2025-04-05.tar.gz -C /data&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Done! Your volume is now fully restored.&lt;/p&gt;&#10;&lt;p&gt;Never let Docker auto-create the volume during import — it can cause permission issues or merge problems.&lt;/p&gt;&#10;&lt;h2 id="bonus-using-external-volumes-with-docker-compose"&gt;Bonus: Using External Volumes with Docker Compose&#10;&lt;/h2&gt;&lt;p&gt;If you&amp;rsquo;re using docker-compose.yml, tell Docker that the volume is &lt;strong&gt;external&lt;/strong&gt; (already exists):&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;services:&#10; nextcloud:&#10; image: nextcloud:latest&#10; volumes:&#10; - nextcloud_data:/var/www/html&#10;&#10;volumes:&#10; nextcloud_data:&#10; external: true&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Indentation matters — use &lt;strong&gt;exactly two spaces&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;h2 id="real-world-use-cases"&gt;Real-World Use Cases&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;Migrating NextCloud to a new VPS&lt;/li&gt;&#10;&lt;li&gt;Backing up Vaultwarden before upgrading&lt;/li&gt;&#10;&lt;li&gt;Moving PhotoPrism library to a bigger server&lt;/li&gt;&#10;&lt;li&gt;Disaster recovery&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;This method is &lt;strong&gt;100% reliable&lt;/strong&gt;, works with any volume, and requires zero extra tools.&lt;/p&gt;&#10;&lt;p&gt;You now have a bulletproof Docker volume backup strategy.&lt;/p&gt;&#10;&lt;p&gt;Happy containerizing! 🐳&lt;/p&gt;&#10;&lt;p&gt;Thank you for reading!&lt;/p&gt;&#10;</description></item><item><title>How to Make Your VPS Safer Against Accidental Deletions</title><link>https://aquasp.blog/how-to-make-your-vps-safer-against-accidental-deletions/</link><pubDate>Tue, 09 Dec 2025 00:31:57 +0000</pubDate><guid>https://aquasp.blog/how-to-make-your-vps-safer-against-accidental-deletions/</guid><description>&lt;h2 id="introduction"&gt;Introduction&#10;&lt;/h2&gt;&lt;p&gt;Have you ever deleted a file or a folder by mistake in a VPS? That feeling sucks. Sometimes you are working fast and you delete a really important file/folder. This happened to me previously. Today I want to share an amazing tool with you guys: &lt;code&gt;trash-cli&lt;/code&gt; . It adds a trash in the CLI to prevent these human mistakes.&lt;/p&gt;&#10;&lt;h2 id="installing-trash-cli"&gt;Installing trash-cli&#10;&lt;/h2&gt;&lt;p&gt;&lt;code&gt;trash-cli&lt;/code&gt; is a lightweight, command-line tool available in Debian repositories, making it ideal for VPS environments with limited resources.&lt;/p&gt;&#10;&lt;h3 id="installation-steps"&gt;Installation Steps&#10;&lt;/h3&gt;&lt;ol&gt;&#10;&lt;li&gt;Update your package list:&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo apt update&#10;&lt;/code&gt;&lt;/pre&gt;&lt;ol start="2"&gt;&#10;&lt;li&gt;Install &lt;code&gt;trash-cli&lt;/code&gt;:&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo apt install trash-cli&#10;&lt;/code&gt;&lt;/pre&gt;&lt;ol start="3"&gt;&#10;&lt;li&gt;Verify the installation:&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;trash --version&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;You should see version information if installed correctly.&lt;/p&gt;&#10;&lt;p&gt;This process is quick and adds minimal overhead to your VPS.&lt;/p&gt;&#10;&lt;h2 id="using-trash-cli-for-safer-deletions"&gt;Using trash-cli for Safer Deletions&#10;&lt;/h2&gt;&lt;p&gt;Once installed, &lt;code&gt;trash-cli&lt;/code&gt; provides commands to manage files safely. It moves items to &lt;code&gt;~/.local/share/Trash/&lt;/code&gt; instead of deleting them.&lt;/p&gt;&#10;&lt;h3 id="basic-commands"&gt;Basic Commands&#10;&lt;/h3&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Trash a file or directory&lt;/strong&gt;: &lt;code&gt;trash file.txt&lt;/code&gt; or &lt;code&gt;trash directory&lt;/code&gt;.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;List trashed items&lt;/strong&gt;: &lt;code&gt;trash-list&lt;/code&gt; (shows files with deletion dates).&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Restore items&lt;/strong&gt;: &lt;code&gt;trash-restore&lt;/code&gt; (interactive menu to select and recover files).&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Empty the trash&lt;/strong&gt;: &lt;code&gt;trash-empty&lt;/code&gt; (permanently deletes all trashed items).&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Empty old items&lt;/strong&gt;: &lt;code&gt;trash-empty 30&lt;/code&gt; (deletes items older than 30 days).&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Example workflow:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;trash important_file.txt # Move to trash&#10;trash-list # Check what&amp;#39;s there&#10;trash-restore # Recover if needed&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This replaces risky &lt;code&gt;rm&lt;/code&gt; usage in daily operations.&lt;/p&gt;&#10;&lt;h2 id="aliasing-rm-to-use-trash-cli"&gt;Aliasing rm to Use trash-cli&#10;&lt;/h2&gt;&lt;p&gt;To make &lt;code&gt;rm&lt;/code&gt; safer by default, alias it to &lt;code&gt;trash&lt;/code&gt; in your shell configuration. This ensures most deletions go to the trash bin.&lt;/p&gt;&#10;&lt;h3 id="setting-up-the-alias"&gt;Setting Up the Alias&#10;&lt;/h3&gt;&lt;ol&gt;&#10;&lt;li&gt;Edit your &lt;code&gt;~/.bashrc&lt;/code&gt; file:&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;nano ~/.bashrc&#10;&lt;/code&gt;&lt;/pre&gt;&lt;ol start="2"&gt;&#10;&lt;li&gt;Add this line at the end:&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;alias rm=&amp;#39;trash&amp;#39;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;ol start="3"&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Save and exit (Ctrl+X, Y, Enter).&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Reload the configuration:&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;source ~/.bashrc&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Now, &lt;code&gt;rm file.txt&lt;/code&gt; will use &lt;code&gt;trash&lt;/code&gt; instead of permanent deletion.&lt;/p&gt;&#10;&lt;h2 id="automating-trash-emptying-with-cron"&gt;Automating Trash Emptying with Cron&#10;&lt;/h2&gt;&lt;p&gt;To prevent the trash from accumulating indefinitely, automate emptying with a cron job.&lt;/p&gt;&#10;&lt;h3 id="setting-up-weekly-emptying"&gt;Setting Up Weekly Emptying&#10;&lt;/h3&gt;&lt;ol&gt;&#10;&lt;li&gt;Edit your crontab:&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;crontab -e&#10;&lt;/code&gt;&lt;/pre&gt;&lt;ol start="2"&gt;&#10;&lt;li&gt;Add this line for weekly deletion (e.g., every Sunday at 2 AM):&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;0 2 * * 0 /usr/bin/trash-empty&#10;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;0 2 * * 0&lt;/code&gt;: Sunday at 2:00 AM.&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;/usr/bin/trash-empty&lt;/code&gt;: Clears all trash.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;ol start="3"&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Save and exit.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Verify:&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;crontab -l&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Adjust the schedule as needed (e.g., change &lt;code&gt;0&lt;/code&gt; to &lt;code&gt;1-6&lt;/code&gt; for weekdays). For partial emptying, use &lt;code&gt;trash-empty 30&lt;/code&gt; to delete items older than 30 days.&lt;/p&gt;&#10;&lt;h2 id="conclusion"&gt;Conclusion&#10;&lt;/h2&gt;&lt;p&gt;By installing &lt;code&gt;trash-cli&lt;/code&gt;, aliasing &lt;code&gt;rm&lt;/code&gt; to &lt;code&gt;trash&lt;/code&gt;, and setting up automated emptying, you can make your VPS much safer against accidental deletions. This approach adds a recoverable layer without sacrificing performance. Remember to combine it with regular backups and cautious command usage. If you&amp;rsquo;re new to VPS management, start small and test thoroughly. For more advanced setups, explore integrating with monitoring tools. Stay safe out there!&lt;/p&gt;&#10;</description></item><item><title>How to setup grub for Dual Boot on Ubuntu 23.10 (fix)</title><link>https://aquasp.blog/how-to-setup-grub-for-dual-boot-on-ubuntu-23-10-fix/</link><pubDate>Mon, 08 Dec 2025 23:53:06 +0000</pubDate><guid>https://aquasp.blog/how-to-setup-grub-for-dual-boot-on-ubuntu-23-10-fix/</guid><description>&lt;h2 id="introduction"&gt;Introduction&#10;&lt;/h2&gt;&lt;p&gt;GRUB Menu Not Showing → Windows Not Appearing on Boot&lt;/p&gt;&#10;&lt;p&gt;Just installed Xubuntu (or Ubuntu) 23.10 alongside Windows and now it boots straight into Linux without showing the GRUB menu?&#10;Don’t worry — this is the new default behavior. Starting with recent Ubuntu versions, &lt;code&gt;GRUB_TIMEOUT_STYLE&lt;/code&gt; is set to hidden and the timeout is 0 seconds, so the menu is completely skipped unless you hold Shift during boot.&lt;/p&gt;&#10;&lt;p&gt;Here’s the permanent two-line fix.&lt;/p&gt;&#10;&lt;h2 id="the-fix-takes-30-seconds"&gt;The Fix (Takes 30 Seconds)&#10;&lt;/h2&gt;&lt;p&gt;Open a terminal and edit the GRUB config:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo nano /etc/default/grub&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Make sure these lines are present and exactly like this (add them if missing):&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;GRUB_TIMEOUT_STYLE=menu&#10;GRUB_TIMEOUT=10&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Optional but recommended — make the menu look nicer and be 100% reliable:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;GRUB_TERMINAL=console&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Full example of the relevant section:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;# Show the GRUB menu every time&#10;GRUB_TIMEOUT_STYLE=menu&#10;GRUB_TIMEOUT=10 # seconds to wait before auto-booting the default entry&#10;GRUB_TERMINAL=console&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Save (Ctrl+O → Enter → Ctrl+X) and update GRUB:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo update-grub&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Reboot and you’ll now see the full GRUB menu with both Ubuntu/Xubuntu and Windows listed.&#10;You can change the 10 to any number you like (or even -1 to wait indefinitely until you pick an entry).&lt;/p&gt;&#10;&lt;h2 id="why-this-happens"&gt;Why This Happens&#10;&lt;/h2&gt;&lt;p&gt;Canonical decided to hide the menu by default for a “cleaner” boot experience on single-OS machines.&#10;For dual-boot users it’s just annoying — this fix restores the classic behavior permanently.&lt;/p&gt;&#10;&lt;p&gt;That’s it — enjoy easy access to both operating systems again!&lt;/p&gt;&#10;&lt;p&gt;(Original solution via AskUbuntu community)&lt;/p&gt;&#10;&lt;p&gt;Thanks for reading!&lt;/p&gt;&#10;</description></item><item><title>Pop!_OS 22.04 review after 6 months of use</title><link>https://aquasp.blog/pop-os-22-04-review-after-6-months-of-use/</link><pubDate>Mon, 08 Dec 2025 22:28:25 +0000</pubDate><guid>https://aquasp.blog/pop-os-22-04-review-after-6-months-of-use/</guid><description>&lt;h2 id="introduction"&gt;Introduction&#10;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Pop!_OS&lt;/strong&gt; is one of the most used Linux Distros. It&amp;rsquo;s also a recommendation for beginners, gamers and even experienced users.&lt;/p&gt;&#10;&lt;p&gt;But is it worthy it? In today&amp;rsquo;s post I will write about my experience using it, from the installation to the day-to-day usage.&lt;/p&gt;&#10;&lt;h2 id="installation"&gt;Installation&#10;&lt;/h2&gt;&lt;p&gt;Pop have one of the best installers there, I must admit. It&amp;rsquo;s simple, beautiful and feels modern. The installation is pretty simple, you can just click in a few buttons to setup language and a few other options. It&amp;rsquo;s also possible to encrypt the disk during the installation, which helps if you travel a lot and contain confidential information inside your laptop (like personal passwords, documents, photos, etc).&lt;/p&gt;&#10;&lt;p&gt;For the installation process, I will rate Pop 9/10. Why not 10? Well, it doesn&amp;rsquo;t contain a option to dual boot automatically. You need to do it manually if you are using Windows for example. Other than that, it works really well and does a great job to provide you a nice experience.&lt;/p&gt;&#10;&lt;h2 id="first-boot"&gt;First boot&#10;&lt;/h2&gt;&lt;p&gt;Pop first boot is also a great experience. You will be able to create your user and password and login normally at your new Gnome environment. Pop helps you to customize a few options (dark mode, docker location and online accounts). Those are all great options for beginners.&lt;/p&gt;&#10;&lt;p&gt;The default apps are also well integrated with the system and everything feels just in place.&lt;/p&gt;&#10;&lt;p&gt;Overall, I hate the post installation as 10/10, I don&amp;rsquo;t see anything to improve here, they just did great.&lt;/p&gt;&#10;&lt;h2 id="details-that-makes-pop_"&gt;&lt;strong&gt;Details that makes Pop!_OS special&lt;/strong&gt;&#10;&lt;/h2&gt;&lt;p&gt;Probably this is the best part of Pop, that makes it a really really solid choice. These are some characteristics that are &lt;strong&gt;rare&lt;/strong&gt; to find in other Distros:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;a class="link" href="https://github.com/pop-os/system76-scheduler?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;System76 Scheduler&lt;/a&gt; - Did you konow that Pop contains CPU optimizations by default? Yep, that is right. By defualt, Pop will reduce the latency and improve performance on apps, specially when the laptop is charging. This is also great for gaming, since you don&amp;rsquo;t need &lt;a class="link" href="https://github.com/FeralInteractive/gamemode?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;gamemode&lt;/a&gt; anymore.&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="https://github.com/pop-os/system76-power?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;System76-Power&lt;/a&gt; - By default, Pop provides three options for your Battery: Economy, Balanced and high performance. That is amazing because under pop, battery optmimizations are already applied by default. You don&amp;rsquo;t need TLP and you have a easy GUI to control the battery mode. That is just awesome.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Swappiness is set to 10&lt;/strong&gt;. On most linux distros that I&amp;rsquo;ve ever used, swappiness is set to 60. This means that your Distro will start to use swap when ram usage reaches 40%. On Pop, swap will only be used when you use abour 90% of your ram. That feels amazing and much smoother since swap is really slow, even on a NVME ssd.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Kernel isn&amp;rsquo;t the same of Ubuntu 22.04&lt;/strong&gt;. Pop does a great job on keeping the kernel updated. This is great specially if you are using a newer desktop/laptop. As far as I know, Ubuntu 22.04 is serving Kernel 5.15.x. Pop os already on 6.1.x&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Custom shortcuts.&lt;/strong&gt; At first, I hated it, but after trying the &amp;ldquo;pop way&amp;rdquo;, I loved it and I actually change other distros to their defaults on shortcuts! For example, instead of alt + f4 (which usually requires 2 hands), Pop uses &amp;ldquo;windows + q&amp;rdquo; which is more accessible and easier to use. Instead of ctrl + alt + t for the terminal, you can use &amp;ldquo;windows + t&amp;rdquo; on Pop. This is really great and helps when you are working with a lot of multitasking (pretty much anyone who works with CS will love it).&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Easy Firmware updates.&lt;/strong&gt; Pop comes with a option inside gnome settings to make hardware updates. That is really great because it gives you more controls and details on these upgrades.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Recovery as a option.&lt;/strong&gt; On pop, you can have a &amp;ldquo;copy of the ISO&amp;rdquo; in the settings and &amp;ldquo;refresh the OS&amp;rdquo; if you ever need it. It may be useful if you broke something and want to restore the system without using a USB stick.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;SystemD boost instead of Grub.&lt;/strong&gt; This doesn&amp;rsquo;t makes difference for me, but a lot of people seems to praise systemdboot. I think it provides a faster boot time and it&amp;rsquo;s &amp;ldquo;simpler to setup&amp;rdquo; (I&amp;rsquo;m used to grub, so grub is easier for me, but I barely customize anything on the boot)&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Pipewire instead of Pulseaudio.&lt;/strong&gt; For years one of the softwares that people used to complain a lot about was Pulseaudio. It used to lag, crash, do not recognize devices, etc. Pipewire is the new guy that is leaner and has a lower latency. A lot of people praise it too. For much, I prefer Pipewire too as it just feels simpler and better to use than Pulseaudio.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Flatpak theming right and not Snap&lt;/strong&gt;. Snaps are being &amp;ldquo;forced&amp;rdquo; by Ubuntu distros, but a lot of people dislike them. Some dislike about the server not being open source, some complain about the bugs, space used some complain about auto updates (which can&amp;rsquo;t be turned off). For me, I also prefer Flatpaks, and it&amp;rsquo;s great to see that on Pop Flatpaks looks like native applications and flathub is Added by default. It&amp;rsquo;s also nice to see that Pop_Shop integrates well with Flatpaks.&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="https://github.com/pop-os/popsicle?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;&lt;strong&gt;Pop created popsicle&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt; This probably doesn&amp;rsquo;t get enough attention, but man! It&amp;rsquo;s WONDERFUL to have a iso flasher by default. And this one is so beautiful and integrates well with Pop. I like it more than Balena Etcher and other common software used on linux to create bootable sticks.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 id="pop-downsides"&gt;Pop downsides&#10;&lt;/h2&gt;&lt;p&gt;Although Pop is amazing, I see a few downsides on it as well. Most of them are personal, so you may not actually see them as downsides.&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Gnome. I just don&amp;rsquo;t like gnome at all. Feels heavy and changes all the time with major updates, breaking plugins and the user experience. The good part is that Pop is developing their own rust DE, which will be &lt;strong&gt;HOT&lt;/strong&gt; when it releases.&lt;/li&gt;&#10;&lt;li&gt;Pop_Shop uses 0.5GB of ram when idle. That may not be a issue for computers with more ram, but when you have less, that is kinda bad. If you have 4GB of ram for example (that is still common on third world countries) you will feel the difference. You can disable pop shop, but honestly the usage in idle should be lower.&lt;/li&gt;&#10;&lt;li&gt;tracker-miner-fs can suck your CPU if you download folders that contains a lot of subdfolders. Once I downloaded a WordPress site backup and extracted it. It had a lot of subfolders. I did notice my laptop slower, but I didn&amp;rsquo;t know what was happening. When I checked the task manage, tracker miner was acting and sucking all the CPU trying to index that subfolder. I tried to reset tracker miner, clean, see the status but it wasn&amp;rsquo;t replying. In the end, I disabled it as a &lt;a class="link" href="https://www.reddit.com/r/pop_os/comments/10q046k/trackerminerfs3_is_killing_my_performance/?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;pop developer said it was 100% safe&lt;/a&gt;.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 id="performance-overall-after-6-months"&gt;Performance overall after 6 months&#10;&lt;/h2&gt;&lt;p&gt;After 6 months using Pop, I can say that I was quite satisfied with the performance. I had a issue while for a few seconds mouse was slow and audio was freezing, but that is probably due to something I did (or maybe due to my hardware not being able to handle encryption well. I&amp;rsquo;m on a 12GB ram Ryzen 5 5500U laptop with NVME ssd of 256GB).&lt;/p&gt;&#10;&lt;p&gt;Due to the issues with tracker miner and this freezing issue, I decided to leave Pop and try Linux Mint XFCE for a while (I love XFCE and Mint is stable enough, so I decided to give it a try). I will probably review it after using it for a while as well.&lt;/p&gt;&#10;&lt;p&gt;Overall, using pop was a pleasure and I could do a bunch of great work on it. I work as CS/Devops, so most of the time I was chatting with customers or using bash scripts on the server, and for that Pop worked fine. For gaming it also worked well so I&amp;rsquo;m not complaining and I definitely would recommend it for most people. Pop &lt;strong&gt;has the best defaults that I&amp;rsquo;ve ever seen&lt;/strong&gt;. It&amp;rsquo;s the distro that I tweaked less, because it comes with everything that I need and use.&lt;/p&gt;&#10;&lt;h2 id="conclusion"&gt;Conclusion&#10;&lt;/h2&gt;&lt;p&gt;Pop is awesome! If you like gnome, give it a try. It will give you a great performance and all optimizations that matters are there out of the box. Battery will be nice on laptops and drivers will probably be optimized for gaming. Vulkan is also enabled by default.&lt;/p&gt;&#10;&lt;p&gt;My dad is using Pop on his laptop (I installed it) and he loves it.&lt;/p&gt;&#10;&lt;p&gt;I will definitely try Pop again once they release their new DE. In the meanwhile, I will enjoy my XFCE experience.&lt;/p&gt;&#10;&lt;p&gt;Thank you for reading :)&lt;/p&gt;&#10;</description></item><item><title>Top 7 things you should do after installing Xubuntu 22.04</title><link>https://aquasp.blog/top-7-things-that-you-should-do-after-installing-xubuntu-22-04/</link><pubDate>Mon, 08 Dec 2025 22:24:22 +0000</pubDate><guid>https://aquasp.blog/top-7-things-that-you-should-do-after-installing-xubuntu-22-04/</guid><description>&lt;h2 id="introduction"&gt;Introduction&#10;&lt;/h2&gt;&lt;p&gt;I recently reviewed Pop!_OS 22.04 after using it for a long time. I loved it, but I wanted to try something else long-term and ended up choosing Ubuntu 22.04 — specifically the Xubuntu flavor with XFCE.&lt;/p&gt;&#10;&lt;p&gt;Whenever I install a fresh OS, there are a few things I always do to make sure the system feels snappy, performs well in games, and (on laptops) gets the best possible battery life.&lt;/p&gt;&#10;&lt;p&gt;Before starting any of the steps below, I strongly recommend &lt;strong&gt;doing a full system upgrade&lt;/strong&gt;&lt;/p&gt;&#10;&lt;h2 id="install-the-liquorix-kernel"&gt;Install the Liquorix Kernel&#10;&lt;/h2&gt;&lt;p&gt;Liquorix is an enthusiast Linux kernel optimized for desktop responsiveness, low-latency audio/video work, and reduced frame-time jitter in games.&lt;/p&gt;&#10;&lt;p&gt;The stock Ubuntu kernel is a general-purpose kernel that has to work well on both desktops and servers. Liquorix takes the same Linux kernel source and applies desktop-focused patches and build options. The result feels noticeably snappier, especially under heavy load or when alt-tabbing quickly in games.&lt;/p&gt;&#10;&lt;p&gt;Installing it on Ubuntu/Debian is one command:&lt;/p&gt;&#10;&lt;p&gt;Bash&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;curl &amp;#39;https://liquorix.net/install-liquorix.sh&amp;#39; | sudo bash&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Reboot afterward and you’ll be running the new kernel.&lt;/p&gt;&#10;&lt;h2 id="add-the-latest-graphics-drivers"&gt;Add the Latest Graphics Drivers&#10;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;For Nvidia users:&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Bash&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo add-apt-repository ppa:graphics-drivers/ppa&#10;sudo dpkg --add-architecture i386&#10;sudo apt update&#10;sudo apt install -y nvidia-driver-560 libvulkan1 libvulkan1:i386&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;For AMD or Intel users (Kisak’s PPA – latest Mesa):&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Bash&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo add-apt-repository ppa:kisak/kisak-mesa&#10;sudo dpkg --add-architecture i386&#10;sudo apt update &amp;amp;&amp;amp; sudo apt upgrade&#10;sudo apt install libgl1-mesa-dri:i386 mesa-vulkan-drivers mesa-vulkan-drivers:i386&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Even on an older LTS release, this gives you the newest open-source drivers and Vulkan support.&lt;/p&gt;&#10;&lt;h2 id="lower-swappiness"&gt;Lower Swappiness&#10;&lt;/h2&gt;&lt;p&gt;Pop!_OS sets vm.swappiness=10 by default (swap is only used when RAM is ~90% full). Ubuntu/Xubuntu defaults to 60, which is far too aggressive for desktop use.&lt;/p&gt;&#10;&lt;p&gt;Change it permanently:&lt;/p&gt;&#10;&lt;p&gt;Bash&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo nano /etc/sysctl.conf&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Add this line at the end:&lt;/p&gt;&#10;&lt;p&gt;text&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;vm.swappiness=10&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Save and exit. The change applies immediately or on next reboot.&lt;/p&gt;&#10;&lt;h2 id="install-essential-utilities"&gt;Install Essential Utilities&#10;&lt;/h2&gt;&lt;p&gt;These are the tools I install on every fresh setup:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Redshift&lt;/strong&gt; – blue-light filter&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Flameshot&lt;/strong&gt; – best screenshot tool&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;AppImageLauncher&lt;/strong&gt; – integrates AppImages into your menu&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Gamemode&lt;/strong&gt; – massive FPS improvements in many games&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;TLP&lt;/strong&gt; – essential for laptops (often doubles battery life)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Bash&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo apt install redshift flameshot appimagelauncher gamemode tlp tlp-rdw&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;(Enable TLP if needed: sudo tlp start)&lt;/p&gt;&#10;&lt;h2 id="install-your-favorite-everyday-apps"&gt;Install Your Favorite Everyday Apps&#10;&lt;/h2&gt;&lt;p&gt;My personal picks:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Brave Browser (privacy-focused Chromium)&lt;/li&gt;&#10;&lt;li&gt;VLC (preferably via AppImage/Flatpak/Snap to avoid heavy Qt dependencies on XFCE)&lt;/li&gt;&#10;&lt;li&gt;LibreOffice&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="create-handy-aliases"&gt;Create Handy Aliases&#10;&lt;/h2&gt;&lt;p&gt;Open your .bashrc:&lt;/p&gt;&#10;&lt;p&gt;Bash&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;nano ~/.bashrc&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Add some useful aliases at the bottom, for example:&lt;/p&gt;&#10;&lt;p&gt;Bash&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;alias apply_filter=&amp;#39;redshift -O 1900&amp;#39;&#10;alias update=&amp;#39;sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y&amp;#39;&#10;alias please=&amp;#39;sudo $(history -p !!)&amp;#39; # rerun last command with sudo&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Reload the file:&lt;/p&gt;&#10;&lt;p&gt;Bash&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;source ~/.bashrc&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="customize-the-look--feel-optional"&gt;Customize the Look &amp;amp; Feel (Optional)&#10;&lt;/h2&gt;&lt;p&gt;Xubuntu + XFCE is extremely customizable. I run a very minimal setup and control almost everything with keyboard shortcuts. You can configure them in &lt;strong&gt;Settings → Window Manager&lt;/strong&gt; and &lt;strong&gt;Settings → Keyboard → Application Shortcuts&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;h2 id="conclusion"&gt;Conclusion&#10;&lt;/h2&gt;&lt;p&gt;The three biggest performance wins — Liquorix kernel, latest graphics drivers, and low swappiness — make a dramatic difference. Real-world example: &lt;em&gt;Life is Strange: True Colors&lt;/em&gt; jumped from ~23 FPS with stuttering on stock settings to a smooth 40+ FPS after applying these changes.&lt;/p&gt;&#10;&lt;p&gt;If you’re getting random lags or freezes on Xubuntu/Ubuntu, try these steps first. They solve a surprising number of issues.&lt;/p&gt;&#10;&lt;p&gt;Thanks for reading!&lt;/p&gt;&#10;</description></item></channel></rss>