Installing CatchyOS
CachyOS Hyprland_Create a Popup Keybinding Cheatsheet
Terminal Considerations
-
Installing wallpapers (terminal)
The easiest and safest method is to install the official CachyOS and KDE wallpaper packages through Pacman. This gives you a large, curated collection without downloading images individually.
1. Install the official wallpaper collections
Open Konsole and run:
sudo pacman -Syu cachyos-wallpapers plasma-workspace-wallpapersEnter your password when prompted. Nothing will appear while you type the password; this is normal.
The current official CachyOS package occupies about 154 MB after installation and includes numerous CachyOS-branded images, including a 5K wallpaper. The KDE collection adds roughly 255 MB of additional wallpapers. (GitHub)
For an even larger collection, add the GNOME and COSMIC wallpaper packages:
sudo pacman -S gnome-backgrounds cosmic-wallpapers2. Find the downloaded wallpapers
Most will be installed here:
/usr/share/wallpapers/The CachyOS-specific collection should be under:
/usr/share/wallpapers/cachyos-wallpapers/Open it in Dolphin with:
dolphin /usr/share/wallpapers/3. Use them as a rotating slideshow
-
Right-click an empty area of the desktop.
-
Select Configure Desktop and Wallpaper.
-
Change the wallpaper type from Image to Slideshow.
-
Select Add Folder.
-
Enter:
/usr/share/wallpapers/-
Choose how frequently KDE should change the image.
-
Click Apply.
Using
/usr/share/wallpapers/includes the CachyOS, KDE, GNOME, and COSMIC collections you installed.4. Optional: copy them into your Pictures folder
System wallpaper packages are stored outside your home folder. To create your own editable collection, run:
mkdir -p "$HOME/Pictures/Wallpapers" cp -r /usr/share/wallpapers/* "$HOME/Pictures/Wallpapers/"You can then delete unwanted images, reorganize folders, or synchronize the collection with pCloud. The originals in
/usr/share/wallpapers/remain untouched.Recommended setup
Install all four collections:
sudo pacman -Syu cachyos-wallpapers plasma-workspace-wallpapers gnome-backgrounds cosmic-wallpapersThen point KDE’s slideshow at:
/usr/share/wallpapers/This is preferable to downloading random wallpaper archives because Pacman handles updates, file placement, and package integrity automatically.
-
-
Printer setup (home with Epson L3560 printer)
Only the HP-specific package
hplipis installed. Remove it with:sudo pacman -Rns hplipReview the removal list before confirming. It should remove
hplipand possibly unused HP-related dependencies, but it should not remove core packages such as:cups cups-filters avahi saneAfter removal, verify:
pacman -Q | grep -Ei '^(hplip|hplip-plugin|hpijs|hpoj)\b'No output means the HP packages are gone.
Then install the Epson L3560 foundation:
sudo pacman -S cups cups-filters print-manager system-config-printer \ avahi sane sane-airscan simple-scanEnable printing and network-printer discovery:
sudo systemctl enable --now cups.service sudo systemctl enable --now avahi-daemon.serviceFor a USB-connected Epson L3560, also install and enable:
sudo pacman -S ipp-usb sudo systemctl enable --now ipp-usb.serviceThen open:
System Settings → Printers → Add Printer
Choose the Epson entry labeled Driverless, IPP Everywhere, or AirPrint.
-
Install Poco if installing Collabora-Office package
This is a current AUR packaging problem, not a compiler problem on your CachyOS installation. The
collabora-officerecipe does not currently declarepocoas a dependency, although the build falls back to system POCO and requiresPoco/Net/WebSocket.h. Other users reported the same failure in July 2026. The official Archpocopackage contains that exact header.1. Install the missing POCO package
sudo pacman -Syu pocoVerify that the required file is now installed:
pacman -Ql poco | grep '/Poco/Net/WebSocket.h$'You should see:
poco /usr/include/Poco/Net/WebSocket.h2. Rebuild Collabora Office cleanly
Run:
paru -S collabora-officeThis time, when prompted:
==> Packages to cleanBuild?enter:
ADo not select
N. A clean build is appropriate because the previous configuration attempt was performed before POCO was installed.For:
==> Diffs to show?you may enter:
N3. If Paru still reuses the failed build directory
Remove only Collabora Office’s cached AUR build directory:
rm -rf ~/.cache/paru/clone/collabora-officeThen retry:
paru -S collabora-officeDo not run
paruwithsudo; it will request your password when it needs to install the finished package.Why this should correct it
Your log shows:
configure: POCO not found in the engine workdir, falling back to system POCO ... checking for Poco/Net/WebSocket.h... noInstalling
pocosupplies:/usr/include/Poco/Net/WebSocket.hThe configure check should then change to:
checking for Poco/Net/WebSocket.h... yesThe AUR maintainer recently removed the POCO dependency because it was expected to be bundled in the provided engine assets, but multiple users found that the bundled detection was not working consistently.
-
Setting up SyncThing
-
Installing fonts
Install
paruonce manually, then use it for the font packages:sudo pacman -Syu --needed base-devel git rust git clone https://aur.archlinux.org/paru.git ~/paru cd ~/paru makepkg -si cd ..Do not run
makepkgwithsudo; it builds as your normal user and asks for your password only when installing the finished package.Then install the fonts:
paru -S ttf-ms-fonts ttf-google-fonts-git fc-cache -fYou can delete the temporary Paru build folder after it installs:
rm -rf ~/paruIf you only need the Microsoft fonts and do not want an AUR helper, build that package directly instead:
sudo pacman -Syu --needed base-devel git git clone https://aur.archlinux.org/ttf-ms-fonts.git ~/ttf-ms-fonts cd ~/ttf-ms-fonts makepkg -si fc-cache -fBefore running
makepkg, it’s good practice to open and review the package’sPKGBUILD; AUR packages are community-maintained rather than repository packages. ArchWiki AUR guidance -
Install WinBoat dependencies (CachyOS)
WinBoat relies on a few system components: KVM virtualization, Docker, Docker Compose v2, having your user in the docker group, and ensuring the Docker daemon is running.
1) Enable virtualization (BIOS/UEFI)
-
Reboot and enter BIOS/UEFI.
-
Enable Intel VT-x / AMD-V (SVM).
-
Save and reboot.
2) Confirm KVM is available
lsmod | grep -E "kvm|kvm_intel|kvm_amd" || trueIf nothing prints, install/enable the modules:
-
Intel:
sudo pacman -S --needed intel-ucode sudo modprobe kvm_intel -
AMD:
sudo pacman -S --needed amd-ucode sudo modprobe kvm_amd
(Optional validation)
egrep -c '(vmx|svm)' /proc/cpuinfo3) Install Docker + Docker Compose (v2)
sudo pacman -Syu sudo pacman -S --needed docker docker-compose4) Add your user to the docker group (then re-log)
sudo usermod -aG docker $USERThen log out and log back in (or reboot) so the group change applies.
Verify:
groups | grep docker || echo "docker group not active (relog needed)"5) Start Docker now + enable it on boot
sudo systemctl enable --now docker sudo systemctl status docker --no-pager6) Quick checks WinBoat expects
docker --version docker compose version docker run --rm hello-world -
-
Install
yay(AUR helper) on CachyOSyaylets you install packages from the AUR (Arch User Repository). CachyOS is Arch-based, so the standard install method applies.1) Install prerequisites
sudo pacman -Syu sudo pacman -S --needed base-devel git2) Clone the
yayrepo from AURcd ~ git clone https://aur.archlinux.org/yay.git cd yay3) Build + install
makepkg -si4) Quick test
yay --version yay -SyuNotes
-
During
makepkg -si, you may be prompted to review PKGBUILD files; that’s normal. -
If you ever want to remove
yaylater:sudo pacman -Rns yay
-
-
Setting up rclone like Google Drive App
-
How to remove rclone like Google Drive App
These steps remove the systemd user service, unmount the folder, remove the remote config, clear VFS cache, and uninstall rclone + fuse3 (the dependencies used in this setup).
0) Stop the mount (if running) and unmount
systemctl --user stop rclone-gdrive.service 2>/dev/null || true fusermount3 -uz ~/GoogleDrive 2>/dev/null || true1) Disable the service so it doesn’t come back on reboot
systemctl --user disable rclone-gdrive.service 2>/dev/null || true2) Remove the systemd service file
rm -f ~/.config/systemd/user/rclone-gdrive.service systemctl --user daemon-reload systemctl --user reset-failed3) Remove the mount folder (optional)
Only do this if you don’t want the empty folder to remain.
rmdir ~/GoogleDrive 2>/dev/null || true4) Remove the rclone config (remotes, tokens)
This deletes the Google Drive remote and its OAuth token.
rm -f ~/.config/rclone/rclone.conf5) Remove rclone cache (recommended)
This removes any cached file contents created by
--vfs-cache-mode full.rm -rf ~/.cache/rclone6) Uninstall packages
sudo pacman -Rns rclone fuse37) Quick sanity checks (optional)
which rclone || echo "rclone removed" systemctl --user list-unit-files | grep rclone || echo "no rclone service" mount | grep -i GoogleDrive || echo "not mounted" -
How long it takes to sync across devices and Google Drive with rclone
In the “Rclone like Google Drive App” toggle, your mount command includes:
-
-poll-interval 15s -
-vfs-write-back 5s
So typical propagation time (Linux Mint → Google Drive) with that exact setup is:
-
For small file edits (once the file is saved/closed):
Usually ~5–20 seconds.
-
-vfs-write-back 5smeans rclone waits about 5 seconds after the last write before it starts uploading. -
Upload then depends on your connection + file size.
-
-
For new/renamed/moved files/folders:
Typically within ~a few seconds to ~30 seconds, but you should expect it to be “near the poll interval” for the mount to notice remote-side changes consistently.
- The
-poll-interval 15sis your main “freshness” lever for detecting Drive changes and staying current.
- The
-
For large files (videos, big PDFs, big folders):
The delay is mostly upload time, so it can be minutes+ depending on size and upstream bandwidth.
Practical rule of thumb for your config: “Expect Google Drive to reflect local changes in ~10–30 seconds for normal small edits, longer for big uploads.”
-
Prompt: Help me set up rclone from scratch in Linux Mint in a way that closest replicates Google Drive app in terms of effectiveness and efficiencies. It should mount automatically each time system reboots and awakens from sleep mode.
Setting up
rcloneon Linux Mint to emulate the Google Drive desktop experience requires a specific combination of VFS (Virtual File System) caching and a Systemd user service. This setup allows you to browse files on demand without downloading everything, while keeping frequently used files local for speed.Phase 1: Installation and Basic Config
First, ensure you have the latest version of
rcloneand the necessary FUSE filesystem support.- Install rclone + FUSE (EndeavourOS / Arch):
sudo pacman -Syu sudo pacman -S --needed rclone fuse3-
Configure the Google Drive Remote:
Run
rclone configand follow these specific choices:-
n) New remote
-
name:
gdrive(you can change this, but remember it for later) -
Storage type: Search for
driveor enter the number for Google Drive. -
Client ID/Secret: Leave blank (press Enter) to use rclone’s defaults.
-
Scope: Choose
1(Full access). -
Service Account: Leave blank.
-
Edit advanced config: No.
-
Use web browser to authenticate: Yes. (Follow the browser login process).
-
Configure this as a Shared Drive? No (unless you specifically need it).
-
Keep and save? Yes.
-
Phase 2: Create the Mount Point
Create the folder where your Google Drive files will appear.
mkdir -p ~/GoogleDrivePhase 3: The “Efficiency” Script (Systemd)
To make the mount behave like the official app—fast browsing, instant file opening, and background uploading—we use a Systemd User Service. This ensures it starts on boot and recovers after the system wakes from sleep.
- Create the service file:
mkdir -p ~/.config/systemd/user/ nano ~/.config/systemd/user/rclone-gdrive.service[Unit] Description=Rclone Google Drive Mount After=network-online.target Wants=network-online.target [Service] Type=notify ExecStart=/usr/bin/rclone mount gdrive: %h/GoogleDrive \ --config=%h/.config/rclone/rclone.conf \ --vfs-cache-mode full \ --vfs-cache-max-age 24h \ --vfs-cache-max-size 10G \ --vfs-read-ahead 128M \ --dir-cache-time 1000h \ --poll-interval 15s \ --attr-timeout 1000h \ --buffer-size 64M \ --vfs-write-back 5s \ --log-level INFO \ --log-file /tmp/rclone-gdrive.log # This ensures the mount is cleaned up properly on shutdown/sleep ExecStop=/bin/fusermount -uz %h/GoogleDrive Restart=on-failure RestartSec=5 [Install] WantedBy=default.targetPhase 4: Why these settings work
-
-vfs-cache-mode full: This is the “magic” flag. It makes the mount act like a real disk. Files are cached locally when you open them, allowing apps to read/write without lag. -
-poll-interval 15s: Google Drive tellsrclonewhen a file changes on the server. This setting ensures your local folder updates almost instantly if you change a file on your phone or web browser. -
-dir-cache-time 1000h: This keeps the folder structure in memory. Browsing through folders will be instant rather than waiting for the API to load every time. -
-vfs-write-back 5s: When you save a file, it saves locally instantly and then uploads to Google in the background 5 seconds later.
Phase 5: Activation and Automation
Here are the commands from Phase 5, separated so you can run them one by one.
Make sure you have already saved the file in
nanobefore running these.1. Refresh the Systemd configuration
This tells the system to look for the new
.servicefile you just created.Bash
systemctl --user daemon-reload2. Start the mount immediately
This actually runs the
rclone mountcommand in the background.Bash
systemctl --user start rclone-gdrive.service3. Enable the mount on startup
This ensures that every time you log into Linux Mint, the drive mounts automatically.
Bash
systemctl --user enable rclone-gdrive.service4. Verify the status
Run this to make sure the service is “active (running)” and hasn’t encountered any errors.
Bash
systemctl --user status rclone-gdrive.service
A quick note on “Sleep Mode”
Because we used
Restart=on-failureandRestartSec=5in the configuration, if your Wi-Fi drops when the laptop lid closes, the service will “fail” briefly. As soon as the system wakes up and the network is back online, Systemd will automatically attempt to remount it within 5 seconds without you needing to do anything.Is the
~/GoogleDrivefolder showing your files now? -
-
Setting up rclone to mirror external hard drive with Google Drive
-
Info on depreciating API keys
I’ve got good news: you actually don’t need to worry about this deprecation for your syncing setup, because there’s a slight mix-up in how
rcloneauthenticates.rclonedoes not use Generative Language API or Google AI Studio keys. It relies entirely on the Google Drive API to move your files.Here is how the two differ and how to permanently solve your syncing limitations.
The Mix-Up: AI Keys vs. Drive Credentials
-
Generative Language API (Google AI Studio): These keys are strictly for accessing Google’s AI models (like Gemini). You are correct that Google is deprecating standard AI keys in September 2026, but this has absolutely no impact on
rcloneor file syncing. -
Google Drive API: This is the pipeline
rcloneuses to interact with your Google Drive. It uses OAuth 2.0 Credentials (a Client ID and a Client Secret) generated through the Google Cloud Console, not AI Studio.
The Real Fix for Syncing Limitations
The
403 Quota Exceedederror you experienced earlier happened because you are currently usingrclone’s default, shared Google Drive Client ID. When you use the default ID, you share a rate limit with thousands of other users globally.To permanently bypass this bottleneck and get your own dedicated sync quota, you need to generate your own Google Drive API credentials.
-
Create a Google Cloud Project:
Go to the Google Cloud Console, sign in, and create a new project (this is completely free). -
Enable the Google Drive API:
Navigate to APIs & Services > Library, search for “Google Drive API,” and click Enable. -
Configure the OAuth Consent Screen:
Go to APIs & Services > OAuth consent screen. Choose External, fill in the required app name and email fields, and add your own Google account as a “Test User.” -
Generate Your Credentials:
Go to APIs & Services > Credentials. Click Create Credentials and select OAuth client ID. Choose Desktop app as the application type. -
Add to Rclone:
Google Cloud will give you a Client ID and a Client Secret. Runrclone config, edit your existing Google Drive remote, and paste these two strings when prompted.
Once you complete these steps, your
bisynccommands will use your private, unshared quota, vastly reducing the chance of hitting those rate limits again. -
To achieve an automated, bidirectional sync—similar to InSync—between your external Seagate hard drive and Google Drive on CachyOS, you will want to use
rclone bisync.Because InSync relies on real-time file watching (which can be resource-intensive and tricky to configure purely from the command line for external drives), the most robust and native Linux approach is to use
rclonepaired with a systemd user timer. This will automatically trigger the sync a minute after you boot, and then continuously check for and mirror changes every few minutes in the background, pausing safely if the drive is ever unplugged.Here is the step-by-step process to set this up.
Step 1: Install Rclone
Because CachyOS is based on Arch Linux,
rcloneis readily available in the official repositories.Open your terminal and install it:
sudo pacman -S rcloneStep 2: Authenticate Google Drive
You need to link your Google Drive to
rclone.- Run the configuration tool:
rclone config-
Type
nfor New remote. -
Name the remote (for this guide, type
gdrive). -
Scroll through the list of storage providers and type the number corresponding to Google Drive (usually
18). -
Leave
client_idandclient_secretblank (just press Enter) unless you have your own API keys. -
Choose
1for full access to all files. -
Leave
service_account_fileblank. -
Type
nfor advanced config. -
Type
yto use auto-config. This will open a browser window asking you to log into your Google account and grant Rclone permissions. -
If asked about a Shared Drive, answer according to your needs (usually
n). -
Type
yto accept the configuration, andqto quit.
Step 3: Perform the Initial Sync
Before
bisynccan run in the background, it requires a “First Run” to establish the baseline of your files and create tracking data.A Quick Warning: You mentioned wanting to mirror to your entire Google Drive (the root directory). While the command below does exactly that, be aware that if you already have files in Google Drive, they will be pulled down to your Seagate drive, and everything on the Seagate will be pushed to the main page of your Google Drive.
Make sure your hard drive is mounted, then run the initial sync:
rclone bisync /mnt/usb-Seagate_Portable_NT3FC3FJ-0:0-part1 gdrive: --resync --create-empty-src-dirs -vrclone bisync /mnt/usb-Seagate_Portable_NT3FC3M0-0:0-part1 gdrive: --resync --create-empty-src-dirs -vDepending on the size of your drive, this might take a while. Let it finish completely.
Step 4: Automate the Sync with Systemd
To make this behave like InSync, we will create a background service that automatically syncs the two locations without you needing to think about it.
1. Create the Service File
This file tells your system how to run the sync, and ensures it only runs if the Seagate drive is actually plugged in and mounted.
Create the necessary directories:
mkdir -p ~/.config/systemd/user/Create and open the service file:
nano ~/.config/systemd/user/rclone-bisync.servicePaste the following configuration into the file:
[Unit] Description=Rclone Bidirectional Sync for Seagate Drive After=network-online.target Wants=network-online.target # This ensures the sync safely aborts if your external drive is unplugged RequiresMountsFor=/mnt/usb-Seagate_Portable_NT3FC3FJ-0:0-part1 [Service] Type=oneshot # The sync command. --resilient and --recover help it bounce back from unexpected unmounts or network drops. ExecStart=/usr/bin/rclone bisync /mnt/usb-Seagate_Portable_NT3FC3FJ-0:0-part1 gdrive: --create-empty-src-dirs --resilient --recover[Unit] Description=Rclone Bidirectional Sync for Seagate Drive After=network-online.target Wants=network-online.target # This ensures the sync safely aborts if your external drive is unplugged RequiresMountsFor=/mnt/usb-Seagate_Portable_NT3FC3M0-0:0-part1 [Service] Type=oneshot # The sync command. --resilient and --recover help it bounce back from unexpected unmounts or network drops. ExecStart=/usr/bin/rclone bisync /mnt/usb-Seagate_Portable_NT3FC3M0-0:0-part1 gdrive: --create-empty-src-dirs --resilient --recover(Save and exit:
Ctrl+O,Enter,Ctrl+X)2. Create the Timer File
This file tells your system when to run the sync.
Create and open the timer file:
nano ~/.config/systemd/user/rclone-bisync.timerPaste the following configuration:
[Unit] Description=Run Rclone BiSync every 5 minutes RequiresMountsFor=/mnt/usb-Seagate_Portable_NT3FC3FJ-0:0-part1 [Timer] # Starts the first sync 1 minute after you boot up OnBootSec=1m # Runs the sync continuously every 5 minutes OnUnitActiveSec=5m [Install] WantedBy=timers.target[Unit] Description=Run Rclone BiSync every 5 minutes RequiresMountsFor=/mnt/usb-Seagate_Portable_NT3FC3M0-0:0-part1 [Timer] # Starts the first sync 1 minute after you boot up OnBootSec=1m # Runs the sync continuously every 5 minutes OnUnitActiveSec=5m [Install] WantedBy=timers.target(Save and exit:
Ctrl+O,Enter,Ctrl+X)
Step 5: Enable and Start the Automation
Finally, you just need to tell systemd to activate the timer you just built.
- Reload systemd so it sees your new files:
systemctl --user daemon-reload- Enable and start the timer:
systemctl --user enable --now rclone-bisync.timer- (Optional) If you want this sync to run in the background even when you are logged out of your CachyOS user account, run this command to enable lingering:
loginctl enable-linger $USERYour external hard drive and your Google Drive are now successfully mirrored. The system will automatically check for changes on both sides every 5 minutes and resolve them quietly in the background. If you unplug the drive, the timer will safely fail until you plug the drive back into that exact mount point, at which point it will seamlessly pick up where it left off.
-
-
Enabling TRIM
💡 TRIM is a command that helps optimize SSDs by informing them which data blocks are no longer in use and can be erased, improving performance and extending the drive’s lifespan.
Enable periodic TRIM (recommended)
sudo systemctl enable --now fstrim.timer sudo systemctl status fstrim.timerRun TRIM once right now (optional)
sudo fstrim -avTwo optional checks (only if you want extra confirmation):
- Verify the schedule systemd sees:
systemctl list-timers --all | grep fstrim- If you want to run TRIM immediately once (separate from the weekly timer):
sudo systemctl start fstrim.service sudo systemctl status fstrim.service -
Installing apps
EndeavorOS terminal command for installing the following packages: extension manager, preload, kdenlive, obs-studio, Microsoft Teams, Proton mail, Notion electron, pspp, ocs-url, onlyoffice, variety, system monitor-next gnome extension,
Since you are on EndeavourOS, we can grab most of these from the official repositories using
pacmanand the rest from the AUR (Arch User Repository) usingyay.Copy and paste these two commands to get everything installed:
1. Official Repository Packages
This installs the heavy hitters and standard tools directly from the main Arch/Endeavour repos.
sudo pacman -S kdenlive obs-studio gnome-disk-utility2. AUR Packages (The “Everything Else” List)
These packages are either proprietary (Teams, Notion) or specifically packaged for Arch by the community.
yaywill handle the build process for you.yay -S onlyoffice-bin teams-for-linux prospect-mail notion-app-electron preload ttf-ms-fonts ttf-vista-fonts whatsie scrivener pspp qualcoder-bin pdfarranger-git okular-git python-unoserver webapp-manager-git ytmdesktop krita-git morgen-git rutorrentfc-cache -f -v
Quick Notes on Specific Apps:
-
Microsoft Teams: The official desktop app for Linux was retired by Microsoft.
teams-for-linuxis the most popular and stable community-maintained version (an Electron wrapper). -
Notion: Since there is no official Linux client,
notion-appis the standard Electron-based version used by the community. -
Preload: Once installed, you’ll want to enable the service so it actually starts working:Bash
sudo systemctl enable --now preload -
OCS-URL: This is usually used for “One-Click Install” buttons on sites like GNOME-look.org. It might ask you to confirm a PGP key during installation; just hit “A” for All or “Y” for Yes.
A Tip for your Vivobook
Since you are currently compiling that kernel (or just finished), I’d recommend running the
yaycommand after you are finished with the kernel task. Running too many intensive installs at once can occasionally lead to a “lock” on the package database.Are you planning to use Kdenlive or OBS for your ELT Cast production later today?
-
-
Installing Waydroid (gmail package)
To run the Android Gmail app natively on your system, the best tool available is Waydroid. Waydroid uses a container-based approach to boot a full Android system directly on a GNU/Linux system.
Because you are running CachyOS (often misspelled as CatchyOS!), you are actually in a great position. The default CachyOS kernel is already optimized for Waydroid, meaning the necessary binder modules are built-in and you do not need to install any messy third-party DKMS drivers.
Here is how to get Waydroid set up with Google Apps (GAPPS) so you can download and run Gmail.
1. Install and Initialize Waydroid
Because Gmail relies on Google Play Services, you must initialize Waydroid using the Google Apps (GAPPS) image rather than the standard vanilla image.
Open your terminal and run the following commands:
# Install the Waydroid package sudo pacman -S waydroid # Initialize Waydroid and download the LineageOS image with Google Apps support sudo waydroid init -s GAPPS2. Enable Network Forwarding
Sometimes, Waydroid will install but fail to connect to the internet out-of-the-box on CachyOS. To ensure your Android container has internet access to download your emails, configure your IP forwarding by running these commands:
echo "net.ipv4.ip_forward = 1" | sudo tee /etc/sysctl.d/99-waydroid.conf echo "net.ipv4.conf.all.forwarding = 1" | sudo tee -a /etc/sysctl.d/99-waydroid.conf sudo sysctl --system3. Start the Services
Next, you need to enable the background service and start your Android session. Note that Waydroid only runs natively if you are using a Wayland session manager.
# Start and enable the container service sudo systemctl enable --now waydroid-container # Launch the full Android UI waydroid show-full-ui4. Install Gmail
-
Device Certification: Because this is an unofficial Android environment, Google Play might initially say your device is uncertified. If this happens, you will need to open the Waydroid shell (
sudo waydroid shell), find your Android ID, and register it on Google’s uncertified device page. -
Download Gmail: Once the Google Play Store is working, sign in with your Google account and download the Gmail app directly.
-
Desktop Integration: Waydroid integrates directly with Linux. Once installed, the Android Gmail app will show up right inside your regular CachyOS application launcher alongside your Linux apps.
-
-
Changing key binding from Application Launcher to Overview Effect
Go to Keyboard shortcuts and look for “toggle overview”, “Window Management”, or something similar.
-
Delete any orphan packages
sudo pacman -Rns $(pacman -Qtdq) sudo systemctl --failed sudo journalctl -p 3 -xb -
Install extension package
sudo pacman -S --needed git base-devel git clone https://aur.archlinux.org/yay.git cd yay makepkg -si --- yay -S extension-manager -
Install Microcode - Intel
sudo pacman -S intel-ucode sudo grub-mkconfig -o /boot/grub/grub.cfg -
Setting up HP LaserJet P1102w Printer Failed - Dealbreaker
Below is the recommended setup path for the HP LaserJet P1102w on CachyOS / Arch. This model is picky because it often needs the HPLIP plugin (firmware) and benefits from being set up by USB first.
Recommended setup (USB-first, then Wi‑Fi)
0) Prereqs: confirm you’re on the printing stack you expect
-
If you’re using CUPS (common and fine), proceed as below.
-
If you’re using cups-browsed/IPP-only workflows and this printer is unreliable, fall back to the CUPS approach below (this printer is older and can be temperamental with modern “driverless” assumptions).
1) Install the required packages
sudo pacman -Syu sudo pacman -S --needed cups hplip system-config-printerOptional but commonly helpful:
sudo pacman -S --needed ghostscript gsfonts
2) Enable and start CUPS
sudo systemctl enable --now cups.serviceOpen the local CUPS web UI (optional but useful for troubleshooting):
3) Plug the printer in via USB and confirm detection
lsusb | grep -i hp || true lpinfo -v | grep -i hp || true
4) Install the HPLIP proprietary plugin (this is often the missing piece)
The P1102w frequently needs the plugin to print reliably.
-
Run:
sudo hp-plugin -
Accept the license and let it download/install the plugin.
If the plugin download fails, it’s usually because of network/DNS/TLS issues at the time — retry after confirming you can reach HP’s servers.
5) Run HP setup (recommended) or add via GUI
Recommended (HP tool):
sudo hp-setup -i-
Choose the USB connection first.
-
If/when offered, select the HPLIP / hpcups driver option.
Alternative (GUI):
-
Open Print Settings (
system-config-printer) -
Add the printer and choose an HPLIP/hpcups driver if prompted.
6) Verify printing
lpstat -t hp-testpageIf
hp-testpagefails, try printing a small text file through CUPS:echo "test" | lp
Optional: switch to Wi‑Fi after USB setup
Once USB printing works, you can configure Wi‑Fi.
-
Use the HP wizard if available:
sudo hp-setup -iand choose the Network/Wireless path.
-
Or add the printer in CUPS as a network printer after it has joined Wi‑Fi.
Practical note: Many people keep this printer as USB-only on Linux for maximum reliability, even if Wi‑Fi is technically possible.
Common fixes (if it still fails)
-
Ensure you’re in the
lpgroup:sudo usermod -aG lp $USER(Log out/in afterward.)
-
Check CUPS logs:
- http://localhost:631 → Administration → View Log Files
-
Confirm the plugin is installed:
hp-check -r
-
-
Terminal command for bulk conversion from Word (libreoffice) to PDF.
On CachyOS (Arch-based), the simplest and most reliable way to bulk-convert .docx → .pdf is to use LibreOffice’s headless mode (Writer engine) from the terminal.
1) Install LibreOffice (native / pacman)
sudo pacman -Syu sudo pacman -S --needed libreoffice-fresh(Optional, but helps with font compatibility for Word documents):
sudo pacman -S --needed ttf-liberation noto-fonts
2) Bulk convert all .docx in a folder (same directory output)
lowriteris LibreOffice Writer’s CLI entry point.cd /path/to/your/docs lowriter --headless --nologo --nofirststartwizard --convert-to pdf *.docx
3) Bulk convert with a loop (safer with spaces in filenames)
cd /path/to/your/docs for f in ./*.docx; do lowriter --headless --nologo --nofirststartwizard --convert-to pdf --outdir . "$f" done
4) Convert into a dedicated output folder
cd /path/to/your/docs mkdir -p pdf for f in ./*.docx; do lowriter --headless --nologo --nofirststartwizard --convert-to pdf --outdir ./pdf "$f" done
Common troubleshooting (CachyOS)
-
If conversion “works” but PDFs look wrong: install missing fonts (especially Microsoft core fonts via AUR):
yay -S ttf-ms-fonts -
If LibreOffice hangs on first run: the
--nofirststartwizardflag above usually fixes it.
-