Skip to content

[Feat] Ubuntu 26.04 support - #1769

Open
solidus1983 wants to merge 1 commit into
mylinuxforwork:mainfrom
solidus1983:feature/ubuntu-26-04-support
Open

[Feat] Ubuntu 26.04 support#1769
solidus1983 wants to merge 1 commit into
mylinuxforwork:mainfrom
solidus1983:feature/ubuntu-26-04-support

Conversation

@solidus1983

@solidus1983 solidus1983 commented Aug 2, 2026

Copy link
Copy Markdown

Description

Adding a feature to install on Ubuntu 26.04 systems.

Changes

  • Feature
  • Bug Fixes
  • Improved
  • Documentation
  • Other

Context

As it stands, there is currently no official way to install ML4W on Ubuntu. This PR seeks to change this.

This has both features and fixes for said feature.

Features:

  • Add preflight/post/packages scripts for Ubuntu, matching the existing Arch/Fedora/openSUSE pattern
  • Build quickshell, awww, walker, elephant, and nwg-dock-hyprland from source (no apt packages)
  • Start hyprpolkitagent explicitly and hide mate-polkit's autostart entry so it wins the polkit-agent race
  • Theme hyprpolkitagent's dialogue via a new matugen template (hyprtoolkit.conf)
  • Quiet noisy apt/cargo/cmake/go build output behind a gum spinner, with a sudo keep-alive loop

Fixes:

  • Missing QML modules, missing Font Awesome icons, quickshell not autostarting, apt package name mismatches, missing libzstd-dev breaking quickshell's cmake configure
  • Unmask swaync.service on Ubuntu and gate autostart.lua's swaync exec-once to Ubuntu specifically via /etc/os-release's ID (not /etc/debian_version, which also matches Mint/Pop!_OS/other Debian derivatives that don't have this Ubuntu-specific D-Bus-activation setup and would otherwise never get swaync started at all)
  • Add gnome-themes-extra-data, gnome-themes-ubuntu, imagemagick, and pipx to packages-ubuntu; drop uwsm (unused on Ubuntu)
  • Remove a systemctl mask call that targeted the wrong (nonexistent) snapd-desktop-integration unit name; the real protection was always the ConditionEnvironment drop-in below it
  • JetBrains Mono Nerd Font and Font Awesome 7 installs no longer leave an empty destination directory on a partial failure, which permanently blocked retry on every future run
  • Oh My Posh install no longer silently reports success when the curl download fails
  • Charm apt keyring self-heals after a failed download instead of treating a stale empty keyring as present forever
  • ML4W Settings App's sed patch on the downloaded upstream script now validates its anchor point instead of silently mis-patching or no-op'ing
  • preflight-ubuntu.sh and post-ubuntu.sh now use set -euo pipefail instead of set -e / no explicit option at all

Refactor:

  • Collapse the quickshell/nwg-dock-hyprland/Walker/Elephant from-source build blocks into a shared build_from_source helper
  • Collapse the JetBrains Mono/Font Awesome zip installs into a shared install_font_zip helper

How Has This Been Tested?

  • Tested on Arch Linux/Based Distro.
  • Tested on Fedora Linux/Based Distro.
  • Tested on openSuse.
  • Tested on Ubuntu 26.04

Tested directly in a Virtual Machine during building, then a clean install on bare metal.

Checklist

  • My code follows the style guidelines of this project.
  • I have performed a self-review of my code.
  • I have commented on my code, particularly in hard-to-understand areas.
  • My changes do not introduce new warnings.
  • I have added tests that prove my fix is effective or that my feature works.
  • I have made corresponding changes to the documentation
  • New and existing unit tests pass locally with my changes.

Screenshots

Screenshot from 2026-08-02 14-30-32 Screenshot from 2026-08-02 14-28-55 Screenshot from 2026-08-02 14-27-58 Screenshot from 2026-08-02 14-26-42 Screenshot from 2026-08-02 14-26-06

Additional Notes

Will also need to create a PR for the installer script to incorporate the required changes.

@mylinuxforwork

Copy link
Copy Markdown
Owner

I am looking forward testing this.

@solidus1983

Copy link
Copy Markdown
Author

I am looking forward testing this.

I can't wait to hear feedback and what changes are possibly needed.
If Testing works well and there are no effects on the other distros, I will then change PR from draft.

However, which repo do I need to edit to make the online command detect Ubuntu?

@solidus1983
solidus1983 force-pushed the feature/ubuntu-26-04-support branch from 4b92931 to d9e73c6 Compare August 2, 2026 18:23
@solidus1983

Copy link
Copy Markdown
Author

Updated my branch to the latest main

@solidus1983 solidus1983 mentioned this pull request Aug 2, 2026
1 task
@solidus1983
solidus1983 force-pushed the feature/ubuntu-26-04-support branch from d9e73c6 to e66b031 Compare August 3, 2026 16:09
@solidus1983

Copy link
Copy Markdown
Author

@mylinuxforwork You will need the installer script, which is https://github.com/solidus1983/dotfiles/blob/test/ubuntu-26-04-vm-install/install-ubuntu.sh if you want to test.

I have also rebased from main again.

@solidus1983

Copy link
Copy Markdown
Author

My laptop died so awaiting for engineer to come out to replace main board after I will rebase again.

@mylinuxforwork

Copy link
Copy Markdown
Owner

Good look with your Laptop. No stress. I have just released ML4W OS 2.15 and Ubuntu support would be next ;-)

@solidus1983
solidus1983 force-pushed the feature/ubuntu-26-04-support branch from e66b031 to b795983 Compare August 5, 2026 16:02
@solidus1983

Copy link
Copy Markdown
Author

Right i have now rebased my branches with the latest changes, and my laptop is now working again!

@solidus1983
solidus1983 force-pushed the feature/ubuntu-26-04-support branch from b795983 to 2e2f0a4 Compare August 14, 2026 10:52
@solidus1983

Copy link
Copy Markdown
Author

Rebased on the latest main.

@solidus1983
solidus1983 marked this pull request as ready for review August 14, 2026 13:51
@solidus1983
solidus1983 marked this pull request as draft August 14, 2026 13:57
@solidus1983

Copy link
Copy Markdown
Author

Testing some changes to Ubuntu scripts during a code cleanup.

@solidus1983
solidus1983 force-pushed the feature/ubuntu-26-04-support branch from 2e2f0a4 to 3d9601f Compare August 14, 2026 15:52
Features:
- Add preflight/post/packages scripts for Ubuntu, matching the existing Arch/Fedora/openSUSE pattern
- Build quickshell, awww, walker, elephant, and nwg-dock-hyprland from source (no apt packages)
- Start hyprpolkitagent explicitly and hide mate-polkit's autostart entry so it wins the polkit-agent race
- Theme hyprpolkitagent's dialog via a new matugen template (hyprtoolkit.conf)
- Quiet noisy apt/cargo/cmake/go build output behind a gum spinner, with a sudo keep-alive loop

Fixes:
- Missing QML modules, missing Font Awesome icons, quickshell not autostarting, apt package name mismatches, missing libzstd-dev breaking quickshell's cmake configure
- Unmask swaync.service on Ubuntu and gate autostart.lua's swaync exec-once to Ubuntu specifically via /etc/os-release's ID (not /etc/debian_version, which also matches Mint/Pop!_OS/other Debian derivatives that don't have this Ubuntu-specific D-Bus-activation setup and would otherwise never get swaync started at all)
- Add gnome-themes-extra-data, gnome-themes-ubuntu, imagemagick, and pipx to packages-ubuntu; drop uwsm (unused on Ubuntu)
- Remove a systemctl mask call that targeted the wrong (nonexistent) snapd-desktop-integration unit name; the real protection was always the ConditionEnvironment drop-in below it
- JetBrains Mono Nerd Font and Font Awesome 7 installs no longer leave an empty destination directory on a partial failure, which permanently blocked retry on every future run
- Oh My Posh install no longer silently reports success when the curl download fails
- Charm apt keyring self-heals after a failed download instead of treating a stale empty keyring as present forever
- ML4W Settings App's sed patch on the downloaded upstream script now validates its anchor point instead of silently mis-patching or no-op'ing
- preflight-ubuntu.sh and post-ubuntu.sh now use set -euo pipefail instead of set -e / no explicit option at all

Refactor:
- Collapse the quickshell/nwg-dock-hyprland/Walker/Elephant from-source build blocks into a shared build_from_source helper
- Collapse the JetBrains Mono/Font Awesome zip installs into a shared install_font_zip helper

Signed-off-by: William Rogers <hacktrix2006@gmail.com>
@solidus1983
solidus1983 force-pushed the feature/ubuntu-26-04-support branch from 3d9601f to 8b9aac1 Compare August 14, 2026 15:55
@solidus1983
solidus1983 marked this pull request as ready for review August 14, 2026 16:10
@solidus1983

Copy link
Copy Markdown
Author

@mylinuxforwork I am now ready for code review.

Should be done now, and will keep the rebases up to date from this point forward.

Awaiting your feedback, and will make changes where requested to do so.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants