Gidro-OS
My customized image, based on Fedora Silverblue.
Gidro-OS was based on Universal Blue's silverblue-main
image in the past, but now, I just take some stuff that I need from them in a convenient recipe as a base.
Reasoning for that is to have more control over the Universal Blue's base, which would make it possible for me to react immediately with changes if needed, to avoid some questionable additions to the base, to make image smaller (and with it, updates faster) etc.
You can see my changes to the base recipe here.
This image is created using the easy & robust BlueBuild tooling for creating & maintaining container-based Linux desktop images.
It is similar to making custom ROMs in the Android community, but in a much easier & more reliable way.
Why did I make the custom image?
Modifications
Removed packages (RPMs):
- Gnome classic session
- Gnome system extensions (some are from Fedora, some are from Gnome classic session, which are not needed)
Replaced packages (RPMs):
Replaced packages (RPMs) with flatpaks:
Installed packages (RPMs):
- Additional Game ROM Properties for Nautilus
- Nautilus Python (for Python Nautilus extensions)
- Python3-icoextract (for .exe icons thumbnailing support)
- Gnome-randr-rust (xrandr equivalent for Gnome Wayland)
- Langpacks-EN (for avoiding Gnome Software's message about it & for potentially solving flatpak mixed locale issues)
- Zsync (Needed dependency for some AppImage auto-updates)
- Miniaturo (RAW pictures thumbnailing for Nautilus)
- BrLaser (Driver which supports additional Brother printers)
- Epson-inkjet-printer-escpr 1 & 2 (Driver which supports some additional Epson printers)
- HPlip (Driver which supports some additional HP printers)
- Foo2zjs (Driver which supports some additional Konica Minolta printers)
- Uld (Driver which supports some additional Samsung printers)
- sg3_utils (Package which contains utilities that send SCSI commands to devices - used by Apple SuperDrive)
- rar (RAR CLI package)
- pandoc (CLI Document converter)
- fontconfig-font-replacements (Also known as
better-fonts
. It fills the gap of missing proprietary fonts with the open-source font replacements)
- dr14_t.meter (support for reading dynamic range of audio files)
Installed extensions:
Installed flatpaks:
Optional just config:
Settings applied by default:
- Enabled experimental support for Variable Refresh Rate on supported screens (improves video & gaming experience by dynamically matching screen refresh rate with the content framerate)
- Enabled Vulkan support for AMD GCN 1.0 & GCN 2.0 GPUs (for better performance & compatibility with those GPUs)
- Kyber I/O scheduler for SSDs/NVMEs, BFQ I/O scheduler for HDDs/microSDs/eMMCs (for improved responsiveness under I/O load)
- ZSTD I/O scheduler for ZRAM & better ZRAM values suited for desktop (avoids OOM situations better & it also improves responsiveness under I/O load. Also thanks to MaxPerfWiz & @ahydronous for some good research & values.)
- Set memlock limit from 64kb to 2GB (maps maximum locked value of 2GB per operation, needed for RPCS3 emulator)
- Increased vm.max_map_count value to match SteamOS (to allow some memory-hungry applications such as games to use more memory maps, which allows them to run & not crash)
- Disabled kernel split-lock mitigate (for restoring performance of affected games)
- Reduced dirty pages for USB devices (for showing real transfer speed of USB devices, rather than speed of writing to cache. Thanks to the user Megavolt from Manjaro forums for the useful benchmark)
- Enabled Nvidia GSP firmware for Nouveau GPU driver (to enable power-management for Nvidia GTX 1650+ GPUs)
- Increased inotify limits (for preventing errors like "too many open files" when installing/using some huge applications & games)
- Increased file nolimits (for preventing non-working Esync)
- BBR TCP congestion algorithm & FQ network packet scheduling (for better network performance, especially in low-signal situations)
- Applied workaround for automatic assignment of
adbusers
group to all users (so Android platform-tools is ready to be used without tinkering)
- Appended
plugdev
group to users, to make some udev rules like Yubikey working
- Partially fixed caps-lock delay (which is present in all other Linux distributions)
- Enabled num-lock by default
- Set font hinting to "None"
- Force font hinting to be manual, instead of automatic based on display resolution
- Set Nokia Pure Text font as default
- Set a beautiful Symbian^3 picture as a wallpaper, including dark variant
- Set light & dark theme to AdwGtk3 for GTK3 applications (to make Adwaita design more consistent)
- Use MoreWaita icon pack (to extend Adwaita theme icon language)
- Set Serbian Latin language as the locale (display language remains English)
- Set top bar to show weekday too in all languages
- Show battery percentage in top bar
- Power button powers off PC instead of suspending it
- Enabled "Remove Old Trash files automatically" in Nautilus (every 30 days by default in Gnome)
- Set mouse acceleration to flat
- Disabled mouse middle-click to paste & touchpad 3-click to paste for GTK applications
- Set Blur my Shell blur radius value to 8, as default value is too strong & looks cheap when using default background
- Set OpenWeather Refined to:
- show conditions in top bar
- show sunrise/sunset in top bar
- use "mbar" as pressure unit
- use arrows for wind direction
- use packaged icons
- use custom OpenWeatherMap API key (solves "too many users" issue)
- use OpenWeatherMap provider by default
- Set Notifications Alert to use less distracting, but still noticeable color for the alert instead of default bright red. This color also fits the top bar blur much better.
- Set Bluetooth Battery Meter to show battery percentage
- Set Night Time Switcher time offset to 0 & set manual time (time based on automatic location is not accurate. Manual location can be specified instead)
- Set Gnome 4x UI Improvements to only enable wallpaper thumbnails in workspace switcher
- Set Media Progress to use Nokia Pure Text T font instead of the hardcoded one
- Enabled Nautilus "Sort folders before files"
- Set keyboard delay to be much lower, as Gnome defaults are too slow
- "Window not responding" dialog extended to 20s (to prevent constant dialog showup in some games)
- Add Nautilus "New Document" to context menu
- Set Gnome Software to use Flathub-user remote by default (makes separation between OS flatpaks & user flatpaks much better)
- Disable Gnome Software flatpak auto-updater (not needed since Gidro-OS uses included ublue-os flatpak auto-updater)
- Disable Gnome Software "Software Repositories" option (Warehouse implements the same functionality)
- Lock some settings to prevent users messing with the system reliability, while still remaining customizable
- Hide ROM Properties desktop shortcut
- Enable silent auto-start on boot for those applications:
- Steam
- Discord
- ArmCord
- Telegram
- Deluge
- TutaMail
- Set Text Editor to:
- use Nokia Pure Text font
- increase the font size to 16
- disable Restore Session
- use higher contrast theme
- highlight line numbers
- Set Folio to use Nokia Pure Text font
- Set Calculator to separate thousands
- Set Clapper (Videos) to use Nokia Pure Text font for subtitles
- Set Gapless to enable background playback
- Set Terminal (Ptyxis) to don't restore session by default
- Use cool BlueBuild boot & login-screen logo instead of Fedora
Installation (ISO) [Recommended]
[!IMPORTANT]
Please read the Wiki before proceeding with the installation.
[!IMPORTANT]
Backup your important data before proceeding with the installation.
[!CAUTION]
This ISO installation guide assumes that you want to install Gidro-OS on single-boot single-disk setup.
ISO CHECKSUM
(verify the checksum if ISO is downloaded correctly with apps like Collision)
- ISO doesn't require an active internet connection during its usage (but it is recommended to have it, to make NTP working).
- Download the ISO & proceed with installation.
- When ISO is booted, finish the following mandatory tasks:
- In "Installation Destination", select on which disk to install Gidro-OS, select "Storage Configuration" to Automatic & select "Free up space by removing or shrinking existing partitions".
"Reclaim disk space" screen will pop-up. Click "Delete all" & "Reclaim space".
- In "User Creation", input full name, user name & password. Click Done.
- Optionally do tasks of "Keyboard", "Language Support", "Time & Date", etc.
- Click "Begin Installation"
- When ISO finished the installation, follow the instructions of the 1st-time setup pop-up & finish it.
Installation (Rebase)
[!IMPORTANT]
Please read the Wiki before proceeding with the installation.
[!IMPORTANT]
Backup your important data before proceeding with the installation.
To rebase an existing installation to the latest build:
- Reset any package overrides & other mutations that are done to the image:
rpm-ostree reset
- Update your current system to the latest version (system will reboot if update is available):
rpm-ostree update --reboot
- Rebase to the unsigned image, to get the proper signing keys and policies installed (system will reboot):
rpm-ostree rebase --reboot ostree-unverified-registry:ghcr.io/fiftydinar/gidro-os:latest
- Then rebase to the signed image, like this (system will reboot):
rpm-ostree rebase --reboot ostree-image-signed:docker://ghcr.io/fiftydinar/gidro-os:latest
- Do the factory-reset
just factory-reset all
- 1st-time setup should pop-up, just follow the instructions of it & finish it
(don't worry if you didn't finish it before, 1st-time setup remembers the setup state & it will be present until finished)
COPR repos used for some installed RPM packages