Garuda Rani - preview releases and testing

Rani, short for “Reliable Assistant for Native Installations” is supposed to replace the Garuda applications in the long run.

The idea was to have a uniform look with both website, forum and repository views, while being much easier to maintain than our other tools.

Currently implemented are Garuda Welcome, Garuda Assistant and Garuda Gamer features (plus Systemd service management).

Most features work, though I’m 100% sure that there are bugs preventing some functionalities.

Test builds are in the repo:

sudo pacman -Syu garuda-rani

or

sudo pacman -Syu garuda-rani-git

If you want to help to test, please report bugs back to me.
When facing a bug, please open the application via CLI (garuda-rani) and provide the logs printed, they are very verbose for this purpose currently.

Initial preview, a lot changed since then

Garuda's Nextcloud

Changelog

Changelog

All notable changes to this project will be documented in this file.

[2.4.0] - 2025-03-29

:rocket: Features

  • (locales) Add new component allowing language changes
  • (packages) Safeguard against non-available pkgnames
  • (theming) More design choices
  • (maintenance) Prompt to delete merged .pacnew, make snapshot success mandatory
  • (window) Don’t hide buttons on systems without the Kwin setting active
  • Make things more navigatable, preparement for cmd args
  • (cli) Allow CLI commands to open tabs, pages and execute diagnostic actions
  • (configService) Refresh pkgs, locale and reboot pending after actions
  • (terminal) Add copy, upload to privatebin buttons, keyboard shortcuts
  • (app) Allow closing globally via ctrl + q
  • (system-settings) Add option to choose iwd as NetworkManager backend
  • Migrate to nx
  • Verbose cmdarg, fix diagnostics args

:bug: Bug Fixes

  • (angular) Increase budgets
  • (system-components) Correct systemd service name for opensnitch
  • (system-settings) Correct ‘service’ to ‘pkg’ for “Intel-undervolt installed” checkbox
  • (system-settings) Correct ‘service’ to ‘pkg’ for “Thermald installed” checkbox
  • (package-lists) Remove xbox-generic-controller from gaming
  • (theming) Make checkboxes easier to see, misc fixes
  • (maintenance) Make it clear how to merge pacdiff, drop kompare, warn about destructiveness
  • (kernels) Update kernel state after kernels initialized for the first time
  • (maintenance) Pacdiff file not being deleted after y
  • (kernels) Distinguish broken and non-installed modules
  • (configService) Too many update executions
  • (http) Downgrade tauri http plugin, adapter currently breaks actions
  • (kernels) Remove unnecessary double call
  • (translations) Missing translations with angular optimization
  • Focus active window when opening rani a second time

:tractor: Refactor

  • Move status data to cached service, allow running external AUR update

:artist_palette: Styling

  • (prettier) Set tailwindcss plugin active and reformat

:gear: Miscellaneous Tasks

  • Post nx-migration cleanup invalid tests
  • Set nx defaults for generation of components

[2.3.0] - 2025-03-21

:rocket: Features

  • (packages) Use searchable table instead for display
  • (system-tools) Only load components when tab has been selected
  • (kernels) Add kernels component
  • (kernels) Add dkms module check and loading indicator
  • (gaming) Add more WINE versions
  • (language-packs) New component
  • (settings) Move to dedicated page
  • (maintenance) Allow merging pacdiff files interactively
  • (system-status) Warn about pending reboot
  • (system-settings) Add bpftune

:bug: Bug Fixes

  • (system-components) Scanning-support never being enabled
  • (os-interact) Check for systemd sockets as well, fixing non-recognized sockets
  • (pnpm-lock.yaml) Sync with package.json
  • (config-service) Apply Loglevel on settings change
  • (notifications) Unbreak not-sending notifications

:tractor: Refactor

  • Massively improve performance by caching and using services
  • Use pacman regex for prefiltering, print commands used

:gear: Miscellaneous Tasks

  • Drop ununsed code

[2.2.0] - 2025-03-18

:rocket: Features

  • (system-settings) Add packages section
  • (translation) Use inbuilt Tauri resources to load translations
  • Version 2.2.0

:bug: Bug Fixes

  • (system-components) Virtualbox checking for group rather than pkg
  • (packages) Invalid pkgnames, fixed parser as well
  • (language) Only update language once on startup
  • (translations) Safeguard for failing to load translation files

[2.1.0] - 2025-03-18

:rocket: Features

:bug: Bug Fixes

  • (vmware,virtualbox) Disable DMABUF renderer
  • (lib.rs) Attempt fixing detection by making strings lowercase
  • (dynamic-checkboxes) Allow disabled entries to be properly managed.

:books: Documentation

  • (changelog) Add changelog

:gear: Miscellaneous Tasks

  • (flake.lock) Update

[2.0.0] - 2025-03-17

:rocket: Features

  • (window) Responsive window button states
  • (loadingservice) Use refcount on loading indicator
  • (font) Use system-ui
  • (init) Resize window to reasonable size when monitor is too small
  • Move parseArchWiki script to Typescript
  • (system-status) Report AUR updates too
  • (system-status) Support schedule AUR updates, update on task updates
  • Strip AUR functionality, we decided to not support it
  • (system-components) Expand with containers section
  • Menu bar “terminal” button glows actively when tasks are pending
  • (terminal) Only show buttons when needed/reasonable

:bug: Bug Fixes

  • (os-interact) Fix setting dns to default
  • (diagnostics) Disable logging symbol after loading full diagnostics
  • (system-status) Invalid update versions
  • (angular) Zoneless change detection complaining
  • (gamer) Some icons being improperly sized
  • (gaming) Missing pacakges, add script to check for missing ones
  • (theme) Light theme not working, wrong window buttons on the right
  • (window) Set reasonable menu breakpoint, set logicalSize dynamically
  • (dynamic-checkboxes) Ensure already enabled/installed packages are not disabled
  • Duplicated updates, duplicated logic
  • (systemd-services) Event reporting failure due to no output
  • Menu bar “terminal” button size changing when glow effect is active

:artist_palette: Styling

  • Declare types as types

:gear: Miscellaneous Tasks

  • Cleanup unused
  • Add package list check
  • Also check AUR packages
  • Fix missing pnpm, less verbose script

[1.3.1] - 2025-03-12

:bug: Bug Fixes

  • Set WEBKIT_DISABLE_COMPOSITING_MODE for NVIDIA GPUs

[1.3.0] - 2025-03-06

:bug: Bug Fixes

  • (package.json,cargo.toml) Cleanup required packages
  • (translation) Load translations before the application loads
  • (home) Utilize launch-terminal garuda-libs script for chroot

[1.2.0] - 2025-03-05

:rocket: Features

  • Allow confirmation-less app exit when there are no pending tasks.
  • (operation-manager) Do not store/restore pending operations when exiting app
  • (logs) Allow setting loglevel

:bug: Bug Fixes

  • (shell.nix) Fix nix build env
  • (style) Disable any kind of text selection
  • (diagnostics) Do not use garuda-inxi funstuff
  • (config,home) Fix excessive redraws, live system detection, angular change detection
  • More efficient file existence checks via plugin-fs
  • (status) Logs reporting update check failure when none are availble
  • (theme-handler) Use updateConfig method to set new setting
  • (xterm) Use computed signal to prevent wrong theme

:tractor: Refactor

  • (first-boot) Revamp first boot checks
  • (darkmode) Redo darkmode to be more consistent
  • (language-switcher) Redo language-switcher to be more consistent
  • (app) Pre-init config before rendering application
  • (app) More reliable menu/label setup, more reliable transloco

[1.1.0] - 2025-03-02

:rocket: Features

  • Run setup-assistant on first boot, relaunch after update
  • (gaming) Import new icons from gamer, placeholders update

[1.0.2] - 2025-03-02

:rocket: Features

  • (welcome) Don’t show status on live system

:bug: Bug Fixes

  • No max size, inform about errors, calamares not starting

[1.0.1] - 2025-03-02

:bug: Bug Fixes

  • User set to null, loglevel to info, skip mirrorlist by default

[1.0.0] - 2025-03-02

:rocket: Features

  • Safeguards app shutdown/remove action, only safe undone
  • (operations) Allow aborting running, and running directly
  • (system-status) Warn on >2w no update
  • Add autostart config, remove problematic vboxkvm

:bug: Bug Fixes

  • (nvidia) Attempt disabling dmabuf renderer
  • (gaming) Invalid parsed entries
  • (operation-manager) Passed signal instead of value
  • (diagnostics) Make buttons not rounded, comply with rest of app

:gear: Miscellaneous Tasks

[0.2.0] - 2025-03-01

:rocket: Features

  • (privilege-manager) Keep one-time use creds between a run of multiple
  • Make settings menu entries dynamic, use fontawesome icons
  • Improve visuals on home and other places
  • Set reasonable min window size, report progress, misc fixes
  • (gaming) Derive list of games from AUR, check whether available
  • (operations) Sort pending list after order, cleanup subscriptions
  • Use cdr onpush for better performance, support installing AUR games
  • Support reporting pacdiff/update status on home, allow ensuring package is installed

:bug: Bug Fixes

  • Save state on shutdown
  • (system-settings) Toggling hblock now works as expected
  • Singleton ConfigService, shell not initializing
  • (privilege-manager) Handle aborted input gracefully
  • (checkboxes) Fix unexpected toggle behaviour
  • (diagnostics) Page not loading due to privatebinclient constructor missing
  • (deps) Add missing dep, remove obsolete
  • (window) Add missing permission
  • Hblock enable action, don’t try translating game titles
  • Use better icons for status

:tractor: Refactor

  • (configService) Move user determination to configService
  • (configService) Source darkMode from configService

:books: Documentation

  • Add deps, run funstuff

:gear: Miscellaneous Tasks

  • Add linting
  • (types) Declare a handful interfaces as types
  • Version 0.2.0

[0.1.1] - 2025-02-27

:rocket: Features

  • (terminal) Use WebGlAddon

:bug: Bug Fixes

  • (gamer) No more broken icons
  • (privilege-manager) Don’t dump password into logs

[0.1.0] - 2025-02-27

:rocket: Features

  • (logger) Introduce custom logger class for loglevels
  • (translations) Add trashy auto-translated languages
  • (shortcuts) Prevent default browser shortcuts in prod

:bug: Bug Fixes

  • (translations) Disable script optimisations in prod mode

:gear: Miscellaneous Tasks

  • Version 0.1.0

[0.0.1] - 2025-02-27

:rocket: Features

  • Initial commit
  • (gamer) Finished queue logic, much more entries
  • Systemd services actions/comp, reset configs, many improvements
  • Integrate btrfs-assistant and apps in need of sudo
  • Correct icons, provide some services globally
  • Fake window buttons
  • Start porting sys components, misc improvements
  • A boat load of improvements, too many to specify
  • Saving progress, loading indicator, tons of improvements
  • Heavy refactoring to make use of privilege/operation services, add loading indicator
  • Make more use of loadingService, diagnostics refactor
  • Tabbed maintenance, skip done, support live/installed actions in welcome, theme fixes
  • Adjust package name, reformat

:bug: Bug Fixes

  • (privilege-manager) Wrong authenticated status
  • Operation management, show disabled services
  • Direct run should open terminal
  • Await store being ready, make initial window higher, readme link

:tractor: Refactor

  • Migrate to configService

:books: Documentation

  • (readme) Add

:gear: Miscellaneous Tasks

  • Drop some unused code, update cargo deps
  • Cleanup unused code
  • Add some ci
  • Use non-alpine container, add missing libsoup
  • Update mirrorlist before installation
  • Limit to bundle directories
  • Add the regular checks, try bullseye
  • Flake.nix setup
  • Add .desktop file
  • Only upload the needed files
24 Likes

WOW! That overhaul of the Garuda applications looks amazing!
That “debug info and diagnosis” section looks very sleek too! So that auto copies to clipboard? Neat!

2 Likes

Yes, it auto-copies indeed. And it uploads to Privatebin as well if required :grimacing:

Gotta finish the logic for applying (did a refactor half-way) all options seamlessly, then we are ready for testing :smiley:

Not only does it look like the website, forum and chaotic-aur tools, it’s also looking the same no matter which edition is used. And it’s something which can be expanded rather easily :slight_smile:
(It’s not electron-based but makes use of Tauri instead, if you wondered).

8 Likes

Neat!
I am assuming that is better as a dependency than relying on electron versions too? (as that can get kind of messy with updates) :grinning:

3 Likes

Yes, basically it uses gtkwebview for rendering, controlled by a tiny Rust binary which manages all access to system resources and stuff like permissions etc.

Are there suggestions on what to add as additional functionality we currently do not have? (E.g. system service management has been added already!)

6 Likes

Juicy!

I like the color scheme it looks like a pastel. Will you do similar colored theme as well for KDE? Or the default Dragonized is still Sweet-Dark?

1 Like

That looks amazing. it will be way more simple for people to get debug info as well. It takes out 90% of what makes arch seem hard to new linux users. Amazing work!

4 Likes

Check Mokka

5 Likes

Maybe funny cat videos? Or a tab that automatically generates the nvidia-bug-report and sends it to the nvidia developer forum in hundreds of copies at the push of a button? And a complaint link for shitty coded proprietary broadcom drivers? A DDoS button that paralyzes the microsoft azure infra wouldn’t be bad either… :rofl:

Edit:

An input mask for submitting anonymous troll posts in the “green” forum is sure to meet with plenty of approval. :partying_face:

Jokes aside, good work Nico, as always. :smiley:

8 Likes

Is it possible to at a tab for the aur and arch pkg searches kinda like a web app of it. Or a way for when the user clicks on view pkgbuild or download snapshot it just installs.
Or a search box that upon picking the program runs garuda update --skip-mirrorlist and then installs the pkg.
If it errors out it saves a file to temp with the error output and adds the garuda-inxi.

Or maybe a box that asks you “what DE” an then has a live link to there bug report page for system bugs.

All mad suggestions I know lol :joy:

2 Likes

Tried it just now, loving it already. That Color palette with all the UI design is lovely.

1 Like

Have you checked the colours in the forum?

By the way, I have nothing to do with it :smiley:


Seems like there is no interest in i3wm anymore either. :slight_smile:

5 Likes

I didn’t even know this exists xD. Thanks for the hint, love it. It looks amazing on a QDOLED.

2 Likes

I don’t know how impactful/helpful it would be for i3 but, have have a hmm “post your i3 desktop or festfetch with age” To get a grasp on the numbers. Since unlike sway or hyprland there’s been no big changes announced i feel for a long while.

2 Likes

It’s basically like Hyprland, a basic framework that the experienced user can design however they want, just not so colorful. :smiley:

2 Likes

Updated the first post. A preview is available in the repo, so it can be tested by everyone who’s interested :slight_smile:

6 Likes

Just a heads up, this also can provide plain text sudo passwords. Be sure to redact them in submitted logs!

2 Likes

Fixed this here.

4 Likes

Talk about a fast fix! Thanks a ton.

edit: just wanted to add a quick thing I’ve noticed. Not really a bug but I see that AdGuard isn’t in the list of DNS providers this time around.

3 Likes

The only things I can see is maybe the symbolic icons on the “welcome” page be scaled up a bit for those that are near sighted.

The xbox svgs in controller support need a color swap. Maybe adding bluez there for ps bluetooth or lact for gpu management.

Other than that and the settings drop-down when you click on window buttons or dark mode not changing text I think its perfect. Great work.

1 Like