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?
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):
- Yafti instead of Gnome Initial Setup & Gnome Tour
(for better, more suitable first-time install experience) - Power Profiles Daemon instead of Tuned
(because Power Profiles Daemon is simpler & more reliable than Tuned for power-management) - Hardened Chromium instead of Firefox
(it is a more secure browser, has support for web applications, working hardware-accelerated video decoding out-of-the-box & ads blocker)
Replaced packages (RPMs) with flatpaks:
- Mission Center instead of Gnome System Monitor
(it is a much better looking task manager with more useful functionality)
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)
- bootc (Required package for the bootloader update when using ISO)
- 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)
Installed extensions:
- Blur my Shell
- Caffeine
- Quick Close in Overview
- OpenWeather Refined
- Notifications Alert
- Bluetooth Battery Meter
- Night Theme Switcher
- RebootToUEFI
- Gnome 4x UI Improvements
- Quick Settings Audio Devices Renamer (disabled by default)
- Quick Settings Audio Devices Hider (disabled by default)
- Remove World Clocks (disabled by default)
- Sleep Through Notifications (disabled by default, useful for setups where screen wake on new notifications is annoying, while retaining notifications functionality)
- Unblank lock screen (disabled by default, useful if you don't want the behavior of locking the screen to also turn off your screen)
Installed flatpaks:
- Boxes
- Calculator
- Calendar
- Camera
- Contacts
- Clocks
- Decoder
- Papers
- Maps
- Text Editor
- Gapless Music Player
- Clapper Video Player
- Image Viewer
- Fotema
- Secrets
- Authenticator
- Sticky Notes
- Folio
- Rnote
- LocalSend
- GPU Screen Recorder
- Flatseal
- Warehouse
- Main Menu
- Extension Manager
- Easy Effects
Optional just config:
- Hide close button from windows (useful for mouses which have a special key for closing applications window)
- Scheduled nightly reboot (useful for applying system updates if you're leaving your PC turned on 24/7)
- Management of official Android platform-tools (useful for easy installing, updating & removing of Android platform-tools pulled from official Google source.
android-tools
official package is broken, so relying on this solution is better + it pairs nicely with existing Android udev rules) - Disable Bluetooth headset profile (HSP/HFP) (useful if you don't use mic from Bluetooth headphones, so you don't get surprisingly switched to lower audio quality headset profile)
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"
- 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
- 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
- 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 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
Please read the Wiki before proceeding with the installation.
ISO doesn't require an active internet connection during its usage.
TORRENT LINK
(higher download speed)
ISO CHECKSUM
(verify the checksum if ISO is downloaded correctly with apps like Collision)
Just download the ISO & proceed with installation.
Please read the Wiki before proceeding with the installation.
Rebasing is only supported from Fedora Silverblue edition.
To rebase an existing Silverblue installation to the latest build:
- Reset any package overrides that you might have:
rpm-ostree override reset --all
- Remove all packages that you layered:
rpm-ostree uninstall --all
- Reset any initramfs modifications that you might have:
rpm-ostree initramfs --disable
rpm-ostree initramfs-etc --untrack-all
- Rebase to the unsigned image, to get the proper signing keys and policies installed:
rpm-ostree rebase ostree-unverified-registry:ghcr.io/fiftydinar/gidro-os:latest
- Reboot to complete the rebase:
systemctl reboot
- Then rebase to the signed image, like so:
rpm-ostree rebase ostree-image-signed:docker://ghcr.io/fiftydinar/gidro-os:latest
- Reboot again to complete the installation
systemctl reboot
- I use
amd_pstate=active
kernel argument to force pstate for my supported CPU (Ryzen 5 5600X, waiting for upstream to enable it by default)