Installing Fedora 44 Gnome
-
Installing SyncThing on two PCs
Syncthing setup for two Fedora 44 GNOME PCs and two external drives
This version assumes:
-
Both computers run Fedora 44 Workstation with GNOME.
-
Home folder:
/mnt/MyData/MyData_Home -
Office folder:
/mnt/MyData/MyData_Home -
The Home drive initially contains the authoritative copy.
-
After the first synchronization, both computers will use normal two-way synchronization.
-
Tailscale and SSH will let you finish the Home configuration remotely from the Office.
Fedora 44 provides Syncthing directly in its repositories and includes both system and user service files. As of July 2026, Fedora 44 offers Syncthing 2.1.1. Fedora Syncthing package
Part 1: Prepare the Home external drive
1. Confirm the drive’s current location
Open Terminal and set the intended synchronization path:
SYNC_FOLDER="/mnt/MyData/MyData_Home"Inspect the disks and mounts:
lsblk -o NAME,SIZE,FSTYPE,LABEL,UUID,MOUNTPOINTSThen check which filesystem contains the intended folder:
findmnt -T "$SYNC_FOLDER" -o TARGET,SOURCE,FSTYPE,OPTIONSIf the result shows:
TARGET /stop. The external drive is not mounted at that location, and
/mnt/MyData/MyData_Homecurrently points to your internal drive.2. Create a permanent mount
Back up the current mount configuration:
sudo cp /etc/fstab /etc/fstab.backup-before-syncthingFind the external partition’s UUID and filesystem:
lsblk -fCreate the mount point:
sudo mkdir -p /mnt/MyDataInstall nano if necessary:
sudo dnf install nanoEdit
/etc/fstab:sudo nano /etc/fstabAdd only the line matching your drive’s filesystem.
For Btrfs:
UUID=YOUR-UUID-HERE /mnt/MyData btrfs defaults,nofail,x-systemd.automount,x-systemd.device-timeout=15s 0 0For ext4:
UUID=YOUR-UUID-HERE /mnt/MyData ext4 defaults,nofail,x-systemd.automount,x-systemd.device-timeout=15s 0 2For NTFS, first determine your user and group IDs:
id -u id -gThen use those numbers, commonly
1000:UUID=YOUR-UUID-HERE /mnt/MyData ntfs3 defaults,nofail,x-systemd.automount,uid=1000,gid=1000,umask=0022,x-systemd.device-timeout=15s 0 0For exFAT:
UUID=YOUR-UUID-HERE /mnt/MyData exfat defaults,nofail,x-systemd.automount,uid=1000,gid=1000,umask=0022,x-systemd.device-timeout=15s 0 0Save in nano:
-
Press
Ctrl+O. -
Press
Enter. -
Press
Ctrl+X.
Reload and test:
sudo systemctl daemon-reload sudo mount -a ls /mnt/MyData findmnt -T "$SYNC_FOLDER"Confirm that
SOURCEis the external-drive partition—not the internal Fedora partition.3. Create and test the folder
Only continue after confirming the external drive is mounted correctly:
sudo mkdir -p "$SYNC_FOLDER"For Btrfs or ext4:
sudo chown "$USER":"$(id -gn)" "$SYNC_FOLDER"Test writing:
touch "$SYNC_FOLDER/.syncthing-write-test" rm "$SYNC_FOLDER/.syncthing-write-test"If this fails on Btrfs or ext4, and everything inside this folder should belong to your account:
sudo chown -R "$USER":"$(id -gn)" "$SYNC_FOLDER"Do not use recursive
chownon NTFS or exFAT; ownership is controlled by the/etc/fstaboptions.Part 2: Install Syncthing on the Home PC
4. Install the Fedora package
sudo dnf upgrade --refresh sudo dnf install syncthingCheck it:
syncthing --version dnf info syncthingDo not run:
sudo syncthingSyncthing must operate under your normal user account.
5. Enable the unattended system service
Because the Home PC must be available without a GNOME login:
sudo systemctl enable --now "syncthing@${USER}.service"Check it:
systemctl status "syncthing@${USER}.service"Press
qto exit.Fedora’s package includes both
syncthing@.serviceand the user-levelsyncthing.service; the system service is appropriate here because the Home PC must run unattended. Syncthing automatic-start documentationOnce this service is enabled, do not separately launch “Start Syncthing” from the GNOME application menu. That could create a second competing Syncthing process.
6. Make Syncthing depend on the external drive
Create a service override:
sudo SYSTEMD_EDITOR=nano systemctl edit "syncthing@${USER}.service"Enter:
[Unit] RequiresMountsFor=/mnt/MyData/MyData_Home After=network-online.target Wants=network-online.targetSave, then run:
sudo systemctl daemon-reload sudo systemctl restart "syncthing@${USER}.service" systemctl status "syncthing@${USER}.service"This prevents Syncthing from starting normally if the required external-drive path cannot be mounted.
7. Allow Syncthing through Fedora’s firewall
Check that firewalld is running:
sudo firewall-cmd --stateAllow Syncthing in Fedora’s default firewall zone:
sudo firewall-cmd --permanent --add-service=syncthing sudo firewall-cmd --reload sudo firewall-cmd --list-servicesThis opens:
-
TCP 22000
-
UDP 22000
-
UDP 21027
Do not enable the
syncthing-guifirewall service. The web interface should remain accessible only from the local computer or through the SSH tunnel. Syncthing firewall documentationPart 3: Configure Syncthing on the Home PC
8. Open the interface
In Firefox, open:
http://127.0.0.1:83849. Secure the interface
Go to:
Actions → Settings → GUI
Configure:
-
GUI Authentication User: your preferred username
-
GUI Authentication Password: a strong, unique password
-
GUI Listen Address:
127.0.0.1:8384
Save and sign in again.
Do not change the GUI address to
0.0.0.0:8384, and do not forward port 8384 through your router.10. Name the Home device
Go to:
Actions → Settings → General
Set:
Device Name: Home-PC11. Remove the unused default folder
If a folder called Default Folder appears:
-
Expand it.
-
Select Edit.
-
Select Remove.
-
Confirm.
This removes it from Syncthing’s configuration; it does not delete your external-drive files.
12. Add the Home external folder
Select Add Folder.
Under General:
Folder Label: MyData Home Folder ID: mydata-home Folder Path: /mnt/MyData/MyData_HomeThe Folder ID must be identical on both computers.
Initially set:
Folder Type: Send OnlyThis protects the authoritative Home copy during the first synchronization.
Under File Versioning, select:
Staggered File Versioning Maximum Age: 180 daysLeave the versioning path blank so Syncthing uses
.stversions.Under Advanced:
-
Btrfs or ext4: Ignore Permissions off
-
NTFS or exFAT: Ignore Permissions on
Save and let Syncthing scan the folder. Do not delete the hidden
.stfolderdirectory.Part 4: Prepare remote access to the Home PC
13. Install and enable OpenSSH
sudo dnf install openssh-server sudo systemctl enable --now sshd systemctl status sshdFedora calls the service
sshd, notssh.14. Permit SSH tunneling
Create a configuration file:
sudo nano /etc/ssh/sshd_config.d/60-syncthing-remote.confEnter:
PermitRootLogin no PasswordAuthentication yes AllowTcpForwarding yesValidate it:
sudo sshd -tNo output means the configuration passed validation. Restart SSH:
sudo systemctl restart sshdMake sure your Fedora account has a strong password:
passwdDo not forward port 22 through your router.
15. Install Tailscale
Use Tailscale’s supported Linux installer:
curl -fsSL https://tailscale.com/install.sh | shEnable the service:
sudo systemctl enable --now tailscaledConnect the Home PC:
sudo tailscale upOpen the displayed login link and authenticate.
Record the Home Tailscale IP:
tailscale ip -4It will resemble:
100.85.42.17Also record your Fedora username:
whoamiCheck the connection:
tailscale statusTailscale provides a private route between the computers without conventional router port forwarding. Tailscale Linux installation
16. Test SSH through Tailscale
On the Home PC:
ssh "$USER@$(tailscale ip -4 | head -n1)"Type
yesif asked to trust the host, then enter your Fedora password.Test:
hostnameExit:
exit17. Record the Home Syncthing Device ID
In Syncthing, select:
Actions → Show ID
Save the full Home Device ID somewhere accessible from the Office.
18. Prevent GNOME from suspending the Home PC
Open:
Settings → Power → Automatic Suspend
While plugged in, turn Automatic Suspend off.
The display may turn off, but the computer itself must not suspend. If this is a laptop, leave the lid open during the initial synchronization unless you have separately configured Fedora not to suspend when the lid closes.
19. Reboot and verify the Home PC
sudo rebootAfter Fedora restarts, check:
findmnt -T /mnt/MyData/MyData_Home systemctl is-enabled "syncthing@${USER}.service" systemctl is-active "syncthing@${USER}.service" systemctl is-active sshd tailscale status ss -ltn | grep 8384Expected service results are:
enabled active activePort 8384 should show:
127.0.0.1:8384Create a Home test file:
printf 'Created on Home PC: %s\n' "$(date -Is)" \ > /mnt/MyData/MyData_Home/SYNCTHING_TEST_FROM_HOME.txtLeave the Home PC and external drive powered on.
Part 5: Configure the Office PC
20. Prepare the Office external drive
Repeat Steps 1–3 on the Office PC.
Use the Office disk’s own UUID in
/etc/fstab, even though the mount path will be the same:/mnt/MyData/MyData_HomeTest writing:
SYNC_FOLDER="/mnt/MyData/MyData_Home" touch "$SYNC_FOLDER/.office-write-test" rm "$SYNC_FOLDER/.office-write-test"Because Home is authoritative, the Office folder should ideally be empty before accepting the shared folder. Check:
find "$SYNC_FOLDER" -mindepth 1 -maxdepth 1 -printIf this displays existing files, stop and decide whether they should be backed up or moved aside before synchronization.
21. Install and start Syncthing
sudo dnf upgrade --refresh sudo dnf install syncthing sudo systemctl enable --now "syncthing@${USER}.service"Add the drive dependency:
sudo SYSTEMD_EDITOR=nano systemctl edit "syncthing@${USER}.service"Enter:
[Unit] RequiresMountsFor=/mnt/MyData/MyData_Home After=network-online.target Wants=network-online.targetApply it:
sudo systemctl daemon-reload sudo systemctl restart "syncthing@${USER}.service"Open the Syncthing firewall service:
sudo firewall-cmd --permanent --add-service=syncthing sudo firewall-cmd --reload22. Configure the Office interface
Open:
http://127.0.0.1:8384Configure:
-
GUI username and password
-
GUI listen address:
127.0.0.1:8384 -
Device name:
Office-PC
Remove Default Folder if it exists.
Do not add
MyData Homemanually yet. Let the Home PC offer the correctly identified folder.Record the Office Device ID from:
Actions → Show ID
23. Install Tailscale on the Office PC
curl -fsSL https://tailscale.com/install.sh | sh sudo systemctl enable --now tailscaled sudo tailscale upAuthenticate using the same Tailscale account used on the Home PC.
Check:
tailscale statusPart 6: Pair the computers remotely
24. Open the Home interface through an SSH tunnel
On the Office PC, replace the username and IP:
ssh -N -L 9999:127.0.0.1:8384 ben@HOME_TAILSCALE_IPFor example:
ssh -N -L 9999:127.0.0.1:8384 ben@100.85.42.17Leave that Terminal window open. The absence of a command prompt is normal.
Open another Firefox tab and visit:
http://127.0.0.1:9999You are now securely viewing the Home Syncthing interface. SSH tunneling allows the GUI to remain bound to localhost. Syncthing SSH-tunnel guidance
25. Add the Office device on the Home PC
In the tunneled Home interface:
-
Select Add Remote Device.
-
Enter the Office Device ID.
-
Set the device name to
Office-PC. -
Under Sharing, select MyData Home.
-
Save.
26. Accept the Home device at the Office
Return to the normal Office interface:
http://127.0.0.1:8384A new-device notification should appear.
-
Accept the Home device.
-
Confirm that the displayed Device ID matches the Home ID you recorded.
-
Name it
Home-PC. -
Save.
If no notification appears, select Add Remote Device and enter the Home Device ID manually.
27. Accept the shared folder
The Office interface should now offer the folder
mydata-home.Accept it using:
Folder Label: MyData Home Folder ID: mydata-home Folder Path: /mnt/MyData/MyData_Home Folder Type: Receive OnlyEnable Staggered File Versioning with a maximum age of 180 days.
For permissions:
-
Btrfs or ext4: Ignore Permissions off
-
NTFS or exFAT: Ignore Permissions on
Save.
Part 7: Complete the initial synchronization
28. Wait for “Up to Date”
Do not switch to two-way synchronization until:
-
Home reports the folder as Up to Date.
-
Office reports the folder as Up to Date.
-
SYNCTHING_TEST_FROM_HOME.txtappears on the Office drive.
For a large folder, the initial scan and transfer may take many hours.
29. Switch both computers to two-way synchronization
First, on the Home interface:
MyData Home → Edit → Folder Type → Send & Receive
Save.
Then, on the Office interface:
MyData Home → Edit → Folder Type → Send & Receive
Save.
30. Test synchronization in both directions
On the Office PC:
printf 'Created on Office PC: %s\n' "$(date -Is)" \ > /mnt/MyData/MyData_Home/SYNCTHING_TEST_FROM_OFFICE.txtWait for Syncthing to report Up to Date.
Check the Home copy remotely:
ssh ben@HOME_TAILSCALE_IP \ 'ls -l /mnt/MyData/MyData_Home/SYNCTHING_TEST_FROM_OFFICE.txt'If the file appears, two-way synchronization is working.
Keep in mind that Syncthing is synchronization, not a complete backup. A deletion can propagate to both computers, so continue keeping independent backups of important files.
-
-
pCloud icon does not appear in panel (fix)
GNOME does not show traditional tray icons by default. To place the pCloud status icon in the top panel, install Fedora’s AppIndicator extension.
1. Install AppIndicator support
Open Terminal and run:
sudo dnf install gnome-shell-extension-appindicator gnome-extensions-appFedora 44 provides a compatible AppIndicator package specifically for displaying application indicators in the GNOME panel. (Fedora Packages)
2. Log out and back in
Because Fedora GNOME normally uses Wayland, log out completely, then sign back in. A logout/login is required for newly installed GNOME Shell extensions under Wayland. (GitHub)
3. Enable the extension
Run:
gnome-extensions enable appindicatorsupport@rgcjonas.gmail.comConfirm that it is enabled:
gnome-extensions info appindicatorsupport@rgcjonas.gmail.comYou should see:
State: ENABLEDAlternatively:
-
Open Extensions from the applications menu.
-
Find AppIndicator and KStatusNotifierItem Support.
-
Turn it on.
The extension supports both modern AppIndicators and legacy tray icons, which should cover pCloud’s Linux client. (GitHub)
4. Restart pCloud
Close pCloud completely:
pkill -f pcloudThen reopen pCloud Drive from the application menu. Its icon should appear in the upper-right section of the GNOME top panel.
If the icon still does not appear
Check that the extension is running:
gnome-extensions list --enabled | grep appindicatorExpected output:
appindicatorsupport@rgcjonas.gmail.comThen verify that pCloud is running:
pgrep -af pcloudIf by “panel” you mean the bottom application dock rather than the top status area, open pCloud, right-click its dock icon, and select Pin to Dash.
-
-
Installing fonts
The best approach is to install Google fonts and Microsoft-compatible fonts from Fedora’s repositories, then optionally add genuine Microsoft fonts. Apple’s bundled macOS fonts have licensing restrictions, so they should not normally be copied to Fedora.
1. Install Google and Microsoft-compatible fonts
Run:
sudo dnf install -y \ liberation-fonts-all \ google-carlito-fonts \ google-crosextra-caladea-fonts \ google-noto-sans-fonts \ google-noto-serif-fonts \ google-noto-color-emoji-fonts \ google-roboto-fonts \ google-roboto-mono-fontsThis installs:
-
Liberation Sans as a replacement for Arial
-
Liberation Serif as a replacement for Times New Roman
-
Liberation Mono as a replacement for Courier New
-
Carlito as a metric-compatible replacement for Calibri
-
Caladea as a metric-compatible replacement for Cambria
-
Google’s Noto Sans, Noto Serif, Noto Color Emoji, Roboto, and Roboto Mono
These packages are available for Fedora 44 through Fedora’s repositories. (Fedora Packages)
Refresh the font cache:
fc-cache -f -v2. Install genuine Microsoft Core Fonts
This installs older Microsoft fonts such as Arial, Times New Roman, Verdana, Georgia, Trebuchet MS, Comic Sans MS, Courier New, and Impact:
sudo rpm -i https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpmThen rebuild the cache:
fc-cache -f -vThe installer retrieves Microsoft’s classic Core Web Fonts; it does not normally include newer Office fonts such as Calibri, Cambria, Aptos, or Segoe UI. (Fedora Discussion)
To check whether Arial was installed:
fc-list : family | grep -i ArialNewer Microsoft fonts
For Calibri, Cambria, Aptos, Segoe UI, and similar fonts, the safest Fedora option is to use Carlito and Caladea. Only manually copy genuine Microsoft font files when your Microsoft or Windows licence permits using them on another operating system.
3. Apple fonts
Apple’s standard macOS licence generally authorizes bundled fonts for displaying and printing content while running Apple software. Therefore, copying macOS system fonts such as San Francisco, Helvetica Neue, New York, or Menlo into Fedora is not normally covered by that licence. (Apple Support Community)
Recommended substitutes include:
-
SF Pro / Helvetica Neue: Inter, Noto Sans, Liberation Sans
-
New York: Noto Serif or Source Serif
-
Menlo: Roboto Mono or Liberation Mono
You already installed several of these through the first command.
Installing separately licensed font files
For font files that you have legally purchased or downloaded with a licence permitting Linux use, place them in:
~/.local/share/fonts/For example, assuming the files are inside
~/Downloads/AppleFonts:mkdir -p ~/.local/share/fonts/Apple find ~/Downloads/AppleFonts -maxdepth 1 -type f \ \( -iname '*.ttf' -o -iname '*.otf' -o -iname '*.ttc' \) \ -exec cp -n {} ~/.local/share/fonts/Apple/ \; fc-cache -f -vFedora recommends
~/.local/share/fontsfor fonts installed for one user and/usr/local/share/fontsfor system-wide manually installed fonts. (Fedora Project Docs)4. Verify the installation
Run:
fc-list : family | grep -Ei 'Arial|Times New Roman|Verdana|Carlito|Caladea|Roboto|Noto|Liberation' | sort -uClose and reopen LibreOffice, Firefox, Thunderbird, and other applications so they reload the updated font list.
-
-
Installing HP 1102w printer
Yes. For a fresh Fedora 44 GNOME installation, I recommend installing the HP LaserJet Professional P1102w with HPLIP, rather than letting GNOME create a generic driverless queue.
Fedora 44 currently provides HPLIP 3.26.4-7, and the Fedora package specifically includes the P1102w PPD file:
hp-laserjet_professional_p_1102w.ppd.gzThe P1102w is officially supported by HPLIP over both USB and network, but HP marks it as requiring its proprietary binary plug-in. (Fedora Packages)
I would set it up over USB first, confirm it prints, and then optionally add Wi-Fi printing.
Part 1 — Update Fedora
Open Terminal and run:
sudo dnf upgrade --refresh -yReboot if Fedora installed substantial system or kernel updates:
systemctl reboot
Part 2 — Install CUPS and HP software
After reboot, install the printing packages:
sudo dnf install -y \ cups \ cups-filters \ hplip \ hplip-gui \ system-config-printer \ usbutilsFedora 44’s current HPLIP package is 3.26.4-7, and
hplip-guiprovides HP’s graphical configuration utilities. (Fedora Packages)Check the installed version:
rpm -q hplip hplip-guiYou should see something similar to:
hplip-3.26.4-7.fc44.x86_64 hplip-gui-3.26.4-7.fc44.x86_64
Part 3 — Enable CUPS
Run:
sudo systemctl enable --now cupsCheck it:
systemctl status cups --no-pagerYou want to see:
Active: active (running)CUPS is Fedora’s print spooler and handles the printer queues and print jobs. (Fedora Project)
You can also confirm it responds with:
lpstat -rExpected:
scheduler is running
Part 4 — Connect the P1102w by USB
For the initial setup, I strongly recommend USB.
-
Turn the P1102w off.
-
Connect the USB cable directly to your Fedora PC.
-
Avoid using a USB hub initially.
-
Turn the printer on.
-
Wait about 10 seconds.
Now run:
lsusbLook for an entry mentioning:
HPor:
Hewlett-PackardFor a more focused check:
lsusb | grep -i -E 'hp|hewlett'If it appears, Fedora sees the hardware.
Also run:
lpinfo -v | grep -Ei 'hp|usb'You may eventually see something resembling:
direct hp:/usb/HP_LaserJet_Professional_P1102w?serial=...The important part is:
hp:/usb/
Part 5 — Install the required HP proprietary plugin
This step is particularly important for the P1102w.
HP’s HPLIP database explicitly lists the P1102w as requiring a driver plug-in. (HP Developers)
Run:
sudo hp-plugin -iYou should get something similar to:
PLUG-IN INSTALLATION FOR HPLIP 3.26.4 Option Description d Download plug-in from HP p Specify a path to the plug-in q QuitEnter:
dand press Enter.
When asked whether you agree to HP’s license, enter:
yAllow the installation to complete.
Fedora’s current HPLIP 3.26.4 package contains a specific 2026 fix for the location/user-agent used by the plug-in downloader, so Fedora 44 should be preferable to the older workarounds you may find online. (Fedora Packages)
You ideally want to see:
Plug-in installation successfulor equivalent.
Part 6 — Verify the plugin
Run:
hp-plugin -iIf it reports that the correct version is already installed, quit with:
qYou can also run:
hp-checkDon’t be alarmed if
hp-checkproduces some warnings about optional packages or desktop integration. What matters is that the printer, HPLIP and required plug-in are available.
Part 7 — Install the printer with HPLIP
I recommend the terminal-based HPLIP setup rather than adding it through GNOME Settings initially.
Run:
sudo hp-setup -iYou should see something like:
Choose connection type: 0* usb 1 netFor USB, choose:
0and press Enter.
HPLIP should search for the printer.
You want it to identify something similar to:
HP LaserJet Professional P1102wWhen asked whether to use the recommended PPD/driver, answer:
yThe Fedora package already contains the exact P1102w PPD at the HPLIP driver level. (Fedora Packages)
Part 8 — Give the printer a sensible queue name
When HPLIP asks for a printer name, I recommend:
HP_P1102wFor description:
HP LaserJet Professional P1102wFor location you can use:
Homeor simply leave it blank.
If it asks whether this should be the default printer, answer:
yIf offered a test page:
yThe printer should now print.
Part 9 — Verify the CUPS printer queue
Run:
lpstat -tYou should see information such as:
scheduler is running system default destination: HP_P1102w device for HP_P1102w: hp:/usb/HP_LaserJet_Professional_P1102w... HP_P1102w accepting requests printer HP_P1102w is idleThe particularly important lines are:
HP_P1102w accepting requestsand:
printer HP_P1102w is idle
Part 10 — Print a test page from Terminal
Fedora/CUPS provides a standard test page.
Run:
lp -d HP_P1102w /usr/share/cups/data/testprintThen check the queue:
lpstat -oIf printing succeeds, the USB installation is complete.
Part 11 — Check it in GNOME
Now open:
Settings → Printers
You should see:
HP LaserJet Professional P1102w
Click the printer and verify that it is:
-
Enabled
-
Ready
-
Using the correct HP driver
-
Set as default if desired
At this point, I would not add another copy of the printer from GNOME Settings. You already created the correct HPLIP/CUPS queue.
Part 12 — Optional: Install HP Device Manager
Because we installed
hplip-gui, you can launch:hp-toolboxThis opens the HP Device Manager.
You can also search GNOME’s application menu for something similar to:
HP Device Manager
For an old LaserJet like the P1102w, not every toolbox function will be available, but it’s useful for checking the HPLIP connection.
Part 13 — Configure Wi-Fi
The P1102w also supports network printing. HPLIP officially lists it as supporting both USB and network connections. (HP Developers)
There are two situations.
Situation A — P1102w is already connected to your Wi-Fi
If the blue wireless light on the printer is solid, it is probably already connected.
Find its IP address through your router’s connected-device page.
It might look something like:
192.168.1.73or:
192.168.0.115Test connectivity:
ping -c 4 192.168.1.73Replace the example with the actual IP.
Then ask HPLIP to discover network printers:
hp-probe -bnetIf the P1102w appears, configure it:
sudo hp-setup -iThis time choose:
1for:
netHPLIP should find the network printer.
If automatic discovery doesn’t work, you can provide its IP address during the HPLIP setup when prompted.
Part 14 — If the printer is NOT connected to Wi-Fi
The easiest Linux-independent method is WPS if your router supports it.
HP documents WPS connectivity for this model. (community.hp.com)
On the P1102w:
-
Turn the printer on.
-
If it is asleep, wake it.
-
Press and hold the Wireless button for approximately 3 seconds.
-
The blue wireless light should begin flashing.
-
Within two minutes, press your router’s WPS button.
-
Wait.
Once connected, the blue wireless light should become:
solid blue
instead of flashing. HP states that the printer searches for the WPS connection for approximately two minutes. (community.hp.com)
Then find its IP through your router.
Part 15 — Test network detection from Fedora
Once the printer is connected to Wi-Fi, run:
hp-probe -bnetYou can also try:
lpinfo -v | grep -i hpand:
avahi-browse -art | grep -i hpIf
avahi-browseisn’t installed:sudo dnf install -y avahi-toolsThen:
avahi-browse -art | grep -i hp
Part 16 — Install the Wi-Fi queue
Run:
sudo hp-setup -iSelect:
1for network.
When it discovers:
HP LaserJet Professional P1102wselect it.
Again use the HP-recommended PPD.
For the queue name, I suggest distinguishing it from USB:
HP_P1102w_WiFiThat gives you:
HP_P1102w HP_P1102w_WiFiYou can eventually remove the USB queue if you intend to print exclusively over Wi-Fi.
Part 17 — Make Wi-Fi the default
List queues:
lpstat -p -dThen:
lpoptions -d HP_P1102w_WiFiVerify:
lpstat -dIt should say:
system default destination: HP_P1102w_WiFi
Part 18 — Test Wi-Fi printing
Disconnect the USB cable.
This is important because you want to prove the print job is going over Wi-Fi.
Then:
lp -d HP_P1102w_WiFi /usr/share/cups/data/testprintIf that prints, your Wi-Fi configuration is working independently of USB.
Part 19 — I strongly recommend reserving the printer’s IP
Once network printing works, log into your router and find the printer.
For example:
HP LaserJet Professional P1102w IP: 192.168.1.73 MAC: xx:xx:xx:xx:xx:xxCreate a DHCP reservation for it.
For example:
HP P1102w → 192.168.1.73This prevents your router from assigning a different IP later and breaking a manually configured printer queue.
Troubleshooting 1 — Printer doesn’t appear in
lsusbRun:
sudo journalctl -kfThen unplug the USB cable, reconnect it, and watch the output.
Also run:
lsusbTry another:
-
USB port
-
USB cable
-
Direct motherboard USB port rather than a hub
Troubleshooting 2 —
hp-pluginfailsFirst confirm your HPLIP version:
rpm -q hplipIt should currently be:
hplip-3.26.4-7.fc44Then refresh Fedora:
sudo dnf upgrade --refreshand retry:
sudo hp-plugin -iThis is particularly relevant because Fedora’s HPLIP 3.26.4 received a specific fix on May 26, 2026 for plugin downloading. (Fedora Packages)
Do not follow old tutorials telling you to download HPLIP 3.18, 3.19, 3.22, etc. Fedora 44 already has a considerably newer patched version.
Troubleshooting 3 — Printer is installed but nothing prints
Check:
lpstat -tThen:
lpstat -oRestart CUPS:
sudo systemctl restart cupsCancel stuck jobs:
cancel -aThen try again:
lp -d HP_P1102w /usr/share/cups/data/testprint
Troubleshooting 4 — Queue says stopped
Check:
lpstat -pIf you get:
printer HP_P1102w disabledenable it:
sudo cupsenable HP_P1102wand:
sudo cupsaccept HP_P1102wVerify:
lpstat -p
Troubleshooting 5 — Check CUPS logs
Run:
sudo journalctl -u cups -b --no-pagerFor recent errors only:
sudo journalctl -u cups -b -p warning --no-pagerYou can also examine:
sudo tail -100 /var/log/cups/error_logIf the error log doesn’t provide enough detail, temporarily enable CUPS debugging:
sudo cupsctl --debug-logging sudo systemctl restart cupsPrint once, then inspect:
sudo tail -200 /var/log/cups/error_logTurn verbose logging off afterward:
sudo cupsctl --no-debug-logging sudo systemctl restart cups
Troubleshooting 6 — Check the exact HPLIP device
Run:
hp-probe -busbFor network:
hp-probe -bnetFor detailed information:
hp-infoAnd HPLIP’s diagnostic:
hp-check
Troubleshooting 7 — Don’t accidentally use a generic driver
This is important for the P1102w.
Run:
lpstat -vIf you installed it through HPLIP, you ideally want a URI beginning with:
hp:/For example:
hp:/usb/HP_LaserJet_Professional_P1102w?serial=...or an HPLIP network URI.
The P1102w is an older model that specifically has an HPLIP driver and proprietary plugin requirement. I therefore prefer the HPLIP queue over a generic GNOME-created driverless queue for this printer. HP’s own support matrix confirms the plug-in requirement. (HP Developers)
Recommended final configuration
For your Fedora 44 machine, I would ultimately aim for:
Fedora 44 │ ├── CUPS │ ├── HPLIP 3.26.4 │ └── HP proprietary plugin │ └── HP LaserJet Professional P1102w │ └── Wi-Fi → reserved IPwith:
lpstat -tshowing something like:
scheduler is running system default destination: HP_P1102w_WiFi printer HP_P1102w_WiFi is idle. enabledFor the first installation, I would specifically follow Parts 1–10 and get USB printing working before touching the wireless setup. That isolates the driver/plugin setup from network issues and makes troubleshooting much easier.
-
-
Installing themes
For a fresh Fedora 44 Workstation install with GNOME 50, I would install eight themes that are popular, visually distinct, and relatively easy to maintain from GitHub. Fedora 44 currently provides GNOME 50-series extension packages, including the User Themes extension needed to change the GNOME Shell itself. (Fedora Packages)
My eight choices are:
Rank Theme Style Fedora/GNOME 50 assessment 1 MacTahoe macOS Tahoe ⭐ Excellent — GNOME 50 fixes 2 WhiteSur macOS / polished ⭐ Excellent — GNOME 50 fixes 3 Orchis Material / rounded ⭐ Excellent — GNOME 50 fixes 4 Colloid Modern GNOME / clean Very good 5 Fluent Windows 11 / Fluent Very good 6 Graphite Minimal / elegant Very good, with GTK4 caveat 7 Qogir Flat / modern Good 8 Matcha Flat / colorful Good MacTahoe, WhiteSur, and Orchis are especially attractive choices right now because their maintainers have specifically released GNOME 50 fixes in 2026. (GitHub)
1. Prepare Fedora
First fully update the fresh installation:
sudo dnf upgrade --refresh -yThen install GNOME Tweaks, GNOME Extensions, the User Themes extension, Git, and the common theme-building dependencies:
sudo dnf install -y \ git \ gnome-tweaks \ gnome-extensions-app \ gnome-shell-extension-user-theme \ sassc \ glib2-devel \ gtk-murrine-engine \ gtk2-enginesThese packages are available for Fedora 44;
gnome-tweaks,sassc,gtk-murrine-engine, and the User Themes extension are all provided in Fedora’s repositories. (Fedora Packages)Create directories for the themes:
mkdir -p ~/.themes mkdir -p ~/ThemesEnable GNOME’s User Themes extension:
gnome-extensions enable user-theme@gnome-shell-extensions.gcampax.github.comI recommend logging out and back in once at this point, especially on a completely fresh Fedora installation.
2. MacTahoe
This is currently my #1 choice for Fedora 44. It is a newer theme that reproduces the macOS Tahoe appearance. Its May 2026 release specifically fixed GNOME 50 issues, with additional updates in July and August. (GitHub)
cd ~/Themes git clone --depth=1 https://github.com/vinceliuice/MacTahoe-gtk-theme.git cd MacTahoe-gtk-theme ./install.sh -d "$HOME/.themes"Then return:
cd ~/Themes
3. WhiteSur
WhiteSur remains one of the most polished GNOME themes available. Its 2026 updates include GNOME 50/Nautilus fixes. (GitHub)
git clone --depth=1 https://github.com/vinceliuice/WhiteSur-gtk-theme.git cd WhiteSur-gtk-theme ./install.sh -d "$HOME/.themes" cd ~/ThemesWhiteSur’s installer supports light/dark variants, accent colors, opacity options, and GNOME Shell themes. (GitHub)
4. Orchis
Orchis is one of the best choices if you want something modern without making Fedora look exactly like macOS or Windows.
git clone --depth=1 https://github.com/vinceliuice/Orchis-theme.git cd Orchis-theme ./install.sh -d "$HOME/.themes" cd ~/ThemesOrchis received a July 2026 release specifically addressing GNOME 50 issues. (GitHub)
It has excellent blue, purple, pink, red, orange, yellow, green, teal, and grey variants. (GitHub)
5. Colloid
Colloid is probably my favorite if you want a modern Linux/GNOME look instead of copying another OS.
git clone --depth=1 https://github.com/vinceliuice/Colloid-gtk-theme.git cd Colloid-gtk-theme ./install.sh -d "$HOME/.themes" cd ~/ThemesColloid includes light/dark versions, compact versions, multiple accents, and even Nord, Dracula, Gruvbox, Everforest, and Catppuccin color schemes. (GitHub)
6. Fluent
If you like the Windows 11 aesthetic, Fluent is the obvious choice.
git clone --depth=1 https://github.com/vinceliuice/Fluent-gtk-theme.git cd Fluent-gtk-theme ./install.sh -d "$HOME/.themes" cd ~/ThemesIt includes standard, compact, rounded, floating-panel and blur variants, and is designed specifically for GNOME/GTK desktops. (GitHub)
7. Graphite
Graphite gives GNOME a much more restrained, sophisticated appearance.
git clone --depth=1 https://github.com/vinceliuice/Graphite-gtk-theme.git cd Graphite-gtk-theme ./install.sh -d "$HOME/.themes" cd ~/ThemesIt supports numerous accent colors, adjustable corner radius, and alternative GNOME Shell panel designs. (GitHub)
There is one important GNOME 50 caveat: current reports indicate that its optional Libadwaita/GTK4 override can cause inconsistent Nautilus styling on GNOME 50.1. The normal GTK/Shell theme is much safer, which is why I am not telling you to install it with
-l. (GitHub)
8. Qogir
Qogir is a clean flat theme descended from Arc.
git clone --depth=1 https://github.com/vinceliuice/Qogir-theme.git cd Qogir-theme ./install.sh -d "$HOME/.themes" cd ~/ThemesQogir includes GTK, GNOME Shell, light/dark and rounded variants. Its installer also explicitly supports Fedora’s
gtk-murrine-enginedependencies. (GitHub)
9. Matcha
Finally, Matcha gives you several attractive green, blue and other color combinations.
git clone --depth=1 https://github.com/vinceliuice/Matcha-gtk-theme.git cd Matcha-gtk-theme ./install.sh -d "$HOME/.themes" cd ~Matcha contains GTK2, GTK3 and GNOME Shell components and includes several hue variants. (GitHub)
Its most recent formal release targets GNOME 48 rather than GNOME 50, so I rank it below MacTahoe, WhiteSur and Orchis on Fedora 44. (GitHub)
10. Select a theme
Open:
Applications → Tweaks → Appearance
You should now see entries under Legacy Applications such as:
MacTahoe WhiteSur Orchis Colloid Fluent Graphite Qogir MatchaMore importantly, you should now have a Shell selector.
Select the corresponding theme under:
Tweaks → Appearance → Shell
If the Shell selector shows a warning or is disabled, open:
Applications → Extensions
and make sure:
User Themes → ON
Then log out and back in.
One important GNOME 50 issue
Fedora 44 relies heavily on GTK4 + Libadwaita. GNOME intentionally does not provide the same conventional third-party theming mechanism for Libadwaita that exists for GTK3. WhiteSur itself documents that GTK4/Libadwaita theming requires replacing/linking files under
~/.config/gtk-4.0. (GitHub)Consequently, at first I recommend not using:
./install.sh -lon any of the eight themes.
Without
-l:-
GNOME Shell gets themed.
-
GTK3/legacy programs get themed.
-
Window elements get themed where supported.
-
Fedora’s GTK4/Libadwaita programs remain closer to standard Adwaita.
-
You greatly reduce the chance of Files, Settings, Calculator, etc. looking broken.
Once you choose your favorite theme, then we can apply its GNOME 50-compatible Libadwaita styling.
My ranking for your fresh Fedora system
I’d start with MacTahoe → WhiteSur → Orchis → Colloid. MacTahoe and WhiteSur give the most dramatic transformation; Orchis feels like a sophisticated customized GNOME desktop; and Colloid is the one I would choose if you want Fedora to remain recognizably Linux/GNOME while looking considerably more polished.
If you want, I can next give you a single copy-and-paste Fedora 44 script that installs all eight themes plus the best matching icon packs, cursors, Dash-to-Dock, Blur My Shell, and wallpapers.
[11]: https://github.com/vinceliuice/Graphite-gtk-theme/issues/224?utm_source=chatgpt.com “GTK4/Libadwaita theme broken on GNOME Shell 50.1 - “Not a valid image” CSS parser error · Issue #224 · vinceliuice/Graphite-gtk-theme · GitHub”
-
-
Install Winboat and dependencies
Recommended method: WinBoat RPM + Docker Engine
Although Fedora includes Podman, I recommend Docker Engine for WinBoat because it offers the fullest compatibility, including WinBoat’s experimental USB passthrough. Do not install Docker Desktop; WinBoat explicitly states that Docker Desktop is unsupported. WinBoat remains beta software, so occasional troubleshooting may be necessary. (GitHub)
WinBoat requires:
-
At least 4 GB RAM
-
At least two CPU threads
-
At least 32 GB free storage
-
Hardware virtualization/KVM
-
Docker Engine and Docker Compose v2
-
FreeRDP 3 with sound support (GitHub)
1. Update Fedora and install the basic dependencies
Open Terminal and run:
sudo dnf upgrade --refreshThen install FreeRDP and Fedora’s DNF repository-management plugin:
sudo dnf install -y \ dnf5-plugins \ freerdp \ curlFedora 44 currently provides FreeRDP 3, including both the X11
xfreerdpand Waylandwlfreerdpclients. (Fedora Packages)Verify FreeRDP:
command -v xfreerdp xfreerdp /versionYou should see a path similar to:
/usr/bin/xfreerdpand a version beginning with
3.2. Verify hardware virtualization
Run:
echo "Virtualization information:" lscpu | grep -i virtualization echo echo "KVM device:" ls -l /dev/kvm echo echo "KVM modules:" lsmod | grep '^kvm'A working Intel system normally shows:
kvm_intel kvmAn AMD system normally shows:
kvm_amd kvmFedora documentation recommends checking for
kvm_intelorkvm_amdto confirm that the KVM modules are loaded. (Fedora Project Docs)If
/dev/kvmis missing, reboot into your BIOS/UEFI and enable:-
Intel: Intel Virtualization Technology, VT-x or VMX
-
AMD: SVM Mode or AMD-V
After enabling it, boot Fedora and repeat the checks.
You can also try loading the appropriate module manually.
For Intel:
sudo modprobe kvm sudo modprobe kvm_intelFor AMD:
sudo modprobe kvm sudo modprobe kvm_amd3. Remove conflicting Docker compatibility packages
Fedora may have Podman installed. Podman itself can remain installed, but the
podman-dockercompatibility package can interfere by redirecting thedockercommand to Podman.Run:
rpm -q podman-docker >/dev/null 2>&1 && \ sudo dnf remove -y podman-dockerRemove any older or unofficial Docker packages:
sudo dnf remove -y \ docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engineIt is normal for Fedora to report that some or all of these packages are not installed. Docker recommends removing these conflicting packages before installing Docker Engine from its official repository. (Docker Documentation)
4. Add Docker’s official Fedora repository
Run:
sudo dnf config-manager addrepo \ --from-repofile https://download.docker.com/linux/fedora/docker-ce.repoInstall Docker Engine, the command-line client, containerd and Compose v2:
sudo dnf install -y \ docker-ce \ docker-ce-cli \ containerd.io \ docker-buildx-plugin \ docker-compose-pluginWhen asked to approve Docker’s signing key, verify that the fingerprint ends with:
C52F EB6B 621E 9F35These are Docker’s current official installation instructions for Fedora 44. (Docker Documentation)
5. Start Docker automatically
Enable Docker now and at every boot:
sudo systemctl enable --now dockerConfirm that it is running:
systemctl status docker --no-pagerYou should see:
Active: active (running)6. Give your account access to Docker
WinBoat must be able to use Docker without
sudo. Add your account to the Docker group:sudo usermod -aG docker "$USER"Now log out of Fedora completely and log back in. Restarting the computer is also acceptable.
Do not merely close Terminal: the GNOME desktop session must reload your group membership. Docker also warns that membership in the
dockergroup effectively grants root-level privileges, so only trusted user accounts should belong to it. (Docker Documentation)After signing back in, verify membership:
id -nGThe output must include:
dockerTest Docker without
sudo:docker version docker compose version docker run --rm hello-worldThe final command should display a successful “Hello from Docker!” message.
7. Download the WinBoat Fedora RPM
Open the official WinBoat download page and choose:
Download → Fedora → RPM
The latest upstream release currently listed is WinBoat 0.9.0. The project provides an RPM specifically for Fedora-based systems. (GitHub)
After downloading it, use this command to locate and install the newest WinBoat RPM in your Downloads folder:
RPM_FILE=$( find "$HOME/Downloads" \ -maxdepth 1 \ -type f \ -iname '*winboat*.rpm' \ -printf '%T@ %p\n' | sort -nr | head -n1 | cut -d' ' -f2- ) if [ -n "$RPM_FILE" ]; then echo "Installing: $RPM_FILE" sudo dnf install -y "$RPM_FILE" else echo "No WinBoat RPM was found in $HOME/Downloads" fiConfirm installation:
rpm -qa | grep -i winboat8. Launch WinBoat
Press the Super key, search for WinBoat, and open it.
You can also try:
winboatWinBoat’s prerequisite screen should now recognize:
-
KVM
-
Docker
-
Docker Compose v2
-
Docker group membership
-
Docker daemon
-
FreeRDP 3
Do not run WinBoat with
sudo.9. Complete the initial Windows setup
During WinBoat’s setup:
-
Select Docker as the container runtime.
-
Use the default installation folder:
/home/your-username/winboatFor your account, that will probably be:
/home/ben/winboat- Assign resources while leaving enough for Fedora.
A reasonable example for a computer with 16 GB RAM is:
Windows RAM: 8 GB CPU cores: Half of available physical cores Disk: 64–128 GB-
Select the Windows version.
-
Allow WinBoat to download and install Windows.
-
Wait for Windows setup and the WinBoat Guest Server to complete.
-
Open Windows Desktop from WinBoat.
-
Install your Windows applications normally inside Windows.
WinBoat does not provide a Windows licence. Its default Windows images use an unactivated installation, so you must provide your own valid product key to activate Windows. (WinBoat)
Common Fedora problems
Docker permission denied
Check:
id -nGIf
dockeris missing, run:sudo usermod -aG docker "$USER"Then reboot Fedora.
Docker reports that
iptablesis missingRun:
sudo alternatives --set iptables /usr/bin/iptables-nft sudo systemctl restart dockerDocker documents this Fedora-specific correction for Docker services that fail because they cannot locate the appropriate iptables implementation. (Docker Documentation)
WinBoat does not detect FreeRDP
Run:
command -v xfreerdp command -v xfreerdp3 command -v wlfreerdp rpm -q freerdpThen reinstall it:
sudo dnf reinstall -y freerdpFedora’s native
freerdppackage containsxfreerdp, which WinBoat’s current prerequisite detection supports. (Fedora Packages)Custom or external installation folder gives permission errors
First install Windows using:
/home/ben/winboatThis avoids external-drive ownership, mount-option and SELinux complications. Do not disable SELinux merely to make WinBoat work.
Podman alternative
WinBoat 0.9.0 also supports Podman:
sudo dnf install -y podman podman-compose freerdpHowever, WinBoat’s USB passthrough is currently unavailable when using Podman, so Docker remains the more complete choice. (GitHub)
-