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 slightly customized Silverblue-main base image, which is derived from the amazing Universal Blue project.
Thanks to Fedora for developing the original Fedora Silverblue Linux distribution.

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

Replaced packages (RPMs):

Replaced packages (RPMs) with flatpaks:

  • LibreWolf instead of Firefox
    (it has better defaults, like Ublock Origin out-of-the-box, doesn't send telemetry & it offers easy customization to fix some LibreWolf quirks)
  • Mission Center instead of Gnome System Monitor, nvtop & htop
    (it's 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)

Installed akmods:

  • NCT6687D (AMD B550 chipset temperature driver)
  • OpenRazer (for supporting Razer devices)
  • V4L2-loopback (for allowing you to create virtual video devices to apply some cool effects to real video devices)
  • XOne (Xbox One RF driver)
  • XPadNeo (Xbox One Bluetooth driver)
  • XPad (Xbox/Xbox 360 USB & RF driver + Xbox One USB driver - built-in into upstream kernel)
  • Zenergy (AMD Ryzen/Threadripper CPU sensor reading driver)

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 quick update of advanced Android udev rules, along with automatic assignment of adbusers group to all users (so Android platform-tools is ready to be used without tinkering)
  • 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)
  • 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 LibreWolf to:
    • enable WebGL
    • disable ResistFingerprinting
    • disable deleting cookies & cache on exit
    • enable auto-scroll
    • disable middle-click paste
    • disable Ctrl+Q on quit
    • enable rounded window bottom edge
    • download to Downloads folder without asking
    • enable favorite websites in homepage
    • set 2 rows for favorite websites
    • disable tab manager arrow
    • enable switching tabs with mouse-wheel
    • autohide "Downloads" button
    • disable offline translation
  • Set Gapless to enable background playback
  • Use cool BlueBuild boot & login-screen logo instead of Fedora

Installation (ISO) [Recommended]

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.

If you are on UEFI system, you will notice blue MOK screen after installer, which is used for enrolling security keys. You will need to "Enroll key" with a password universalblue. This needs to be done even if you're not using Secure Boot.

Otherwise, continue boot.

Installation (Rebase)

Please read the Wiki before proceeding with the installation.

Rebasing is only supported from Fedora Silverblue edition.

You will need to enroll security key before rebase with the command below, even if you're not using Secure Boot (requires internet). It will prompt you for sudo user password, so type that, then type the password for secure key, which is universalblue:

wget -q https://github.com/ublue-os/akmods/raw/main/certs/public_key.der -O /tmp/akmods-ublue.der && sudo mokutil --timeout -1 && sudo mokutil --import /tmp/akmods-ublue.der && rm /tmp/akmods-ublue.der

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
    
  • You will be prompted with blue MOK screen, which is used for enrolling security keys. Choose "Enroll key" & type universalblue as a password. Continue boot afterwards.

  • 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
    

COPR repos used for some installed RPM packages

Note for myself regarding what I do after install

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