Skip to content

fiftydinar/gidro-os

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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):

  • 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 + encoding out-of-the-box & ads blocker)

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:

  • Disabled option for installing system packages, aka layering through rpm-ostree & dnf (to ensure that system integrity & reliability remains untouched)
  • 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.

TORRENT LINK
(higher download speed)

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:

  • Update your current system to the latest version (system will reboot):
    sudo bootc upgrade --apply
    
  • Rebase to the unsigned image, to get the proper signing keys and policies installed (system will reboot):
    sudo bootc switch --apply ghcr.io/fiftydinar/gidro-os:latest
    
  • Then rebase to the signed image, like this (system will reboot):
    sudo bootc switch --enforce-container-sigpolicy --apply 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

About

My personalized custom OS image.

Resources

License

Stars

Watchers

Forks

Releases

No releases published