Rani minor issue

System:
  Kernel: 6.15.9-1-vfio arch: x86_64 bits: 64 compiler: gcc v: 15.1.1
    clocksource: tsc avail: hpet,acpi_pm
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-vfio
    root=UUID=748fc83f-8edc-436a-a837-2ebf04b7a602 rw rootflags=subvol=@
    rd.driver.pre=vfio-pci loglevel=3 iommu=1 amd_iommu=on ibt=off
  Desktop: KDE Plasma v: 6.4.4 tk: Qt v: N/A info: frameworks v: 6.16.0
    wm: kwin_wayland with: krunner vt: 1 dm: SDDM Distro: Garuda
    base: Arch Linux
Machine:
  Type: Desktop Mobo: ASUSTeK model: PRIME X570-P v: Rev X.0x
    serial: <superuser required> part-nu: SKU uuid: <superuser required>
    UEFI: American Megatrends v: 4021 date: 08/09/2021
CPU:
  Info: model: AMD Ryzen 7 5800X bits: 64 type: MT MCP arch: Zen 3+ gen: 3
    level: v3 note: check built: 2022 process: TSMC n6 (7nm) family: 0x19 (25)
    model-id: 0x21 (33) stepping: 0 microcode: 0xA20102E
  Topology: cpus: 1x dies: 1 clusters: 1 cores: 8 threads: 16 tpc: 2
    smt: enabled cache: L1: 512 KiB desc: d-8x32 KiB; i-8x32 KiB L2: 4 MiB
    desc: 8x512 KiB L3: 32 MiB desc: 1x32 MiB
  Speed (MHz): avg: 3734 min/max: 556/4854 boost: enabled scaling:
    driver: amd-pstate-epp governor: performance cores: 1: 3734 2: 3734 3: 3734
    4: 3734 5: 3734 6: 3734 7: 3734 8: 3734 9: 3734 10: 3734 11: 3734 12: 3734
    13: 3734 14: 3734 15: 3734 16: 3734 bogomips: 121598
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
  Vulnerabilities: <filter>
Graphics:
  Device-1: NVIDIA GP107 [GeForce GTX 1050 Ti] vendor: ASUSTeK
    driver: vfio-pci v: N/A alternate: nouveau,nvidia_drm,nvidia
    non-free: 550-570.xx+ status: current (as of 2025-04; EOL~2026-12-xx)
    arch: Pascal code: GP10x process: TSMC 16nm built: 2016-2021 pcie: gen: 1
    speed: 2.5 GT/s lanes: 4 link-max: gen: 3 speed: 8 GT/s lanes: 16
    bus-ID: 04:00.0 chip-ID: 10de:1c82 class-ID: 0300
  Device-2: NVIDIA GA106 [GeForce RTX 3060 Lite Hash Rate] vendor: ASUSTeK
    driver: nvidia v: 575.64.05 alternate: nouveau,nvidia_drm
    non-free: 550-570.xx+ status: current (as of 2025-04; EOL~2026-12-xx)
    arch: Ampere code: GAxxx process: TSMC n7 (7nm) built: 2020-2023 pcie:
    gen: 4 speed: 16 GT/s lanes: 16 ports: active: none off: DP-3 empty: DP-1,
    DP-2, HDMI-A-1, HDMI-A-2 bus-ID: 09:00.0 chip-ID: 10de:2504 class-ID: 0300
  Device-3: Logitech HD Pro Webcam C920 driver: snd-usb-audio,uvcvideo
    type: USB rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-2:2
    chip-ID: 046d:082d class-ID: 0102 serial: <filter>
  Display: wayland server: X.org v: 1.21.1.18 with: Xwayland v: 24.1.8
    compositor: kwin_wayland driver: X: loaded: nvidia
    unloaded: modesetting,nouveau alternate: fbdev,nv,vesa
    gpu: nvidia,nvidia-nvswitch display-ID: 0
  Monitor-1: DP-3 model: Samsung U32J59x serial: <filter> built: 2024 res:
    mode: 3840x2160 hz: 60 scale: 100% (1) dpi: 140 gamma: 1.2
    size: 697x392mm (27.44x15.43") diag: 800mm (31.5") ratio: 16:9 modes:
    max: 3840x2160 min: 640x480
  API: EGL v: 1.5 hw: drv: nvidia platforms: device: 0 drv: nvidia device: 2
    drv: swrast gbm: drv: nvidia surfaceless: drv: nvidia wayland: drv: nvidia
    x11: drv: nvidia inactive: device-1
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: nvidia mesa v: 575.64.05
    glx-v: 1.4 direct-render: yes renderer: NVIDIA GeForce RTX 3060/PCIe/SSE2
    memory: 11.72 GiB display-ID: :1.0
  API: Vulkan v: 1.4.321 layers: 15 device: 0 type: discrete-gpu
    name: NVIDIA GeForce RTX 3060 driver: nvidia v: 575.64.05
    device-ID: 10de:2504 surfaces: N/A device: 1 type: cpu name: llvmpipe
    (LLVM 20.1.8 256 bits) driver: mesa llvmpipe v: 25.1.7-arch1.1 (LLVM
    20.1.8) device-ID: 10005:0000 surfaces: N/A
  Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
    de: kscreen-console,kscreen-doctor gpu: nvidia-settings,nvidia-smi
    wl: wayland-info x11: xdpyinfo, xprop, xrandr
Audio:
  Device-1: NVIDIA GP107GL High Definition Audio vendor: ASUSTeK
    driver: vfio-pci alternate: snd_hda_intel pcie: speed: Unknown lanes: 63
    link-max: gen: 3 speed: 8 GT/s bus-ID: 04:00.1 chip-ID: 10de:0fb9
    class-ID: 0403
  Device-2: NVIDIA GA106 High Definition Audio vendor: ASUSTeK
    driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16
    bus-ID: 09:00.1 chip-ID: 10de:228e class-ID: 0403
  Device-3: Advanced Micro Devices [AMD] Starship/Matisse HD Audio
    vendor: ASUSTeK driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s
    lanes: 16 bus-ID: 0b:00.4 chip-ID: 1022:1487 class-ID: 0403
  Device-4: Logitech HD Pro Webcam C920 driver: snd-usb-audio,uvcvideo
    type: USB rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-2:2
    chip-ID: 046d:082d class-ID: 0102 serial: <filter>
  Device-5: Focusrite-Novation Scarlett 2i2 3rd Gen driver: snd-usb-audio
    type: USB rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 5-1.4:6
    chip-ID: 1235:8210 class-ID: 0102 serial: <filter>
  API: ALSA v: k6.15.9-1-vfio status: kernel-api with: aoss
    type: oss-emulator tools: alsactl,alsamixer,amixer
  Server-1: sndiod v: N/A status: off tools: aucat,midicat,sndioctl
  Server-2: PipeWire v: 1.4.7 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
    4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: Realtek RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet
    vendor: ASUSTeK RTL8111H driver: r8169 v: kernel pcie: gen: 1
    speed: 2.5 GT/s lanes: 1 port: d000 bus-ID: 05:00.0 chip-ID: 10ec:8168
    class-ID: 0200
  IF: enp5s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
  IF-ID-1: docker0 state: up speed: 10000 Mbps duplex: unknown mac: <filter>
  IF-ID-2: tun0 state: unknown speed: 10000 Mbps duplex: full mac: N/A
  IF-ID-3: veth82a23f8 state: up speed: 10000 Mbps duplex: full
    mac: <filter>
  IF-ID-4: vetha10d76d state: up speed: 10000 Mbps duplex: full
    mac: <filter>
  IF-ID-5: vethca82ea5 state: up speed: 10000 Mbps duplex: full
    mac: <filter>
  IF-ID-6: virbr1 state: down mac: <filter>
  Info: services: NetworkManager, smbd, systemd-timesyncd, wpa_supplicant
Drives:
  Local Storage: total: 11.83 TiB used: 7.22 TiB (61.0%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung
    model: SSD 970 EVO Plus 1TB size: 931.51 GiB block-size: physical: 512 B
    logical: 512 B speed: 31.6 Gb/s lanes: 4 tech: SSD serial: <filter>
    fw-rev: 2B2QEXM7 temp: 52.9 C scheme: GPT
  ID-2: /dev/sda maj-min: 8:0 vendor: Seagate model: ST4000DM004-2CV104
    size: 3.64 TiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
    tech: HDD rpm: 5425 serial: <filter> fw-rev: 0001 scheme: GPT
  ID-3: /dev/sdb maj-min: 8:16 vendor: Seagate model: ST8000VN004-3CP101
    size: 7.28 TiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
    tech: HDD rpm: 7200 serial: <filter> fw-rev: SC60 scheme: GPT
Partition:
  ID-1: / raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
    used: 571.78 GiB (61.4%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 616 KiB (0.2%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
  ID-3: /home raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
    used: 571.78 GiB (61.4%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-4: /var/log raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
    used: 571.78 GiB (61.4%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-5: /var/tmp raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
    used: 571.78 GiB (61.4%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
Swap:
  Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
  ID-1: swap-1 type: zram size: 31.25 GiB used: 415.2 MiB (1.3%)
    priority: 100 comp: zstd avail: lzo-rle,lzo,lz4,lz4hc,deflate,842
    dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 50.0 C mobo: 49.0 C
  Fan Speeds (rpm): fan-1: 0 fan-2: 1360 fan-3: 0 fan-4: 1076 fan-5: 3253
    fan-6: 0 fan-7: 0
Info:
  Memory: total: 32 GiB available: 31.25 GiB used: 9.53 GiB (30.5%)
  Processes: 476 Power: uptime: 15h 32m states: freeze,mem,disk
    suspend: deep avail: s2idle wakeups: 0 hibernate: platform avail: shutdown,
    reboot, suspend, test_resume image: 12.41 GiB services: org_kde_powerdevil,
    power-profiles-daemon, upowerd Init: systemd v: 257 default: graphical
    tool: systemctl
  Packages: pm: pacman pkgs: 2194 libs: 599 tools: pacseek,pamac,paru,yay
    pm: flatpak pkgs: 0 Compilers: clang: 20.1.8 gcc: 15.1.1 alt: 14 Shell: Bash
    v: 5.3.3 default: fish v: 4.0.2 running-in: konsole inxi: 3.3.38
Garuda (2.7.4-1):
  System install date:     2024-09-28
  Last full system update: 2025-08-06
  Is partially upgraded:   No
  Relevant software:       snapper NetworkManager dracut nvidia-dkms
  Windows dual boot:       No/Undetected
  Failed units:     


This is the first page opening Rani.

When opening preferences the drop-down list is blurred behind the back ground settings

After switching back to the welcome screen then the number of updates shows up.

Like I said minor issue using the latest garuda-rani not the git version

Ah yes, primeng and their sudden API changes. It’s a regression from the Angular 20 update. Just pushed the fix.

As for the updates, I have the following questions:

  • Is the update (working sign) still running in any form, while it doesn’t show up yet?
  • If you wait a while, does it show up?
  • What does the logs say, do they report updatable packages while it has now shown up yet?

I currently don’t have a Linux device to reproduce this on, therefore I need some feedback here. Sounds like broken change detection to me.

Randomly, the update number shows when I first launch garuda-rani. The rest of the time I have to switch to a different page, then back to the welcome screen, then it shows the correct number of updates.
Not sure which logs you mean.

Edit: When I switched to the zen kernel from vfio one, it seems to have fixed the number update issue

╰─λ garuda-rani (3.1.4-3)
INFO [21:20:27.912]: Renderer - Loaded 4 settings from store
INFO [21:20:28.196]: Renderer - Last update: 2025-08-09T12:32:09.000Z
INFO [21:20:28.578]: Renderer - No aur updates available

No update bell after loading rani, above 3 lines in console, click to any other tab and back, no more lines in console, update bell now visible with 5 updates, click circular arrow next to bell, circular hourglass working symbol next to search box, update bell disappears, 2 lines repeated in console below, click other tab and back again, bell comes back again … repeat.

INFO [21:23:20.673]: Renderer - Last update: 2025-08-09T12:32:09.000Z
INFO [21:23:21.023]: Renderer - No aur updates available

Anyone tried this on the git version? I have pushed a suspected fix here.

Just installed the git version, exactly the same as the non-git stable version (terminal size is fixed though :slight_smile: ). It did give me a red triangle reboot required just because I installed the git version first time running it.

╭─pauls@paul in ~ took 8s
╰─λ pacman -Q garuda-rani
garuda-rani-git 3.1.4.r5.gc545263-1

╭─pauls@paul in ~ took 0s
╰─λ garuda-rani
INFO [08:41:02.928]: Renderer - Loaded 4 settings from store
INFO [08:41:03.220]: Renderer - Last update: 2025-08-10T07:36:09.000Z
INFO [08:41:03.607]: Renderer - No aur updates available

1 Like

Thanks for confirming this for me. Then it’s not broken change detection and my assumption was wrong :smiley:

Is it drawing the welcome screen, waiting for the update check to finish, then not refreshing the welcome screen after it knows there are updates? The weird thing to me is pressing the refresh? icon removes the bell icon.

UPDATE: Clicking theme designer which slides in a panel on the right but doesnt change the welcome screen tab behind redraws the bell icon!!!

I´, not sure it´s a RANI thing. I got the exclamation mark to reboot. But there´s no reason for. Using fresh git version.

Hello, first of all, I wanted to tell you, for my first post, that the team and community are doing an exceptional job on the Garuda distros, well done!
And to answer the garuda-rani topic, I also had the same problem with the terminal window not fitting properly, but after installing the garuda-rani-git version, everything returned to normal! Thank you very much! :wink:

2 Likes

From my very limited knowledge of typescript (Im a veteran C++ developer) looking at the code on git seems to me to be a timing issue because of the conditional in system-status.component.html and whatever this Angular stuff is.

@if (systemStatusService.updates().length > 0)

which appears to not draw the bell icon when updates().length == 0 which is what happens when the app opens and when refresh icon is pressed (I assume it initialises it to empty before running the check for updates code and at that moment Angular jumps in and hides the icon). After the asynchronous check for updates completes there seems to be no “refresh screen” command to force the html to re-render and re-check the conditional.

markForCheck() only flags components as dirty, I think its still waiting for an “event” to start detecting changes, possibly try detectChanges() instead which runs change detection immediately.

Clicking Theme Designer is a click input that from what Ive read fires up Angular change detection routines which is why I think doing that redraws the bell icon (with the now non-zero updates() return value) as I noticed earlier.

Just trying to help.

2 Likes

Updates is a signal (looking like a function), and changes to signals should in theory trigger change detection by themselves. It’s some of the functionality bringing higher reactivity to Angular than before. That’s also why no explicit change detection trigger is used (and it also used to work perfectly fine). DetectChanges is of course something we could try as well however.
The main problem is that I don’t have a Linux device at hand to test things myself on currently.

Thanks for your time, appreciate it! :slight_smile:

Nevertheless, we should definitely push the changes to stable asap to get the terminal fix our to everyone :smiley:

After a crash course in java/ts webdev on linux via trial and error and lots of reading I managed to install node and pnmp and clone the git to my drive and run it in dev mode via the handy script you provided.

I tried detectChanges, that didnt help. I put console logging into the effect() and as I suspected its only calling it with a length of 0 when

this.updates.set([]);

is run in SystemStatusService.refreshStatuses(), also …

    this.updates.update((updates: SystemUpdate[]) => {
      updates.push({
        pkg,
        version,
        newVersion: newVersion,
        aur: type === 'aur',
      });
      return updates;
    });

…that code is not firing signals to the effect() function, which I would expect it to do 25 times (thats how many updates I have pending from trying to debug this :slight_smile: ) from reading the documentation on signals.

I tried adding a computed signal to point directly at the updates().length and referencing that instead, it didnt help either. So working on the information that .set() definitely fires a signal I added a new bit of code to the bottom of checkAurUpdates() (after all the Promises have completed) to re-set updates to its current value to force a signal like so …

this.updates.set(this.updates().concat([]));

and that “fixes” it, probably not in an ideal way but it gets the job done. :innocent:

1 Like

Thanks for checking this out! :slight_smile:

It kind of adds up to what I know about signals, now that you mention it. For objects like arrays these fire change detection only once the reference to the object changes (e.g. you set it to a non-referenced copy of the same object via spread operator), in this case it also works because .concat returns a new array.
To me, this feels unintuitive, but it is seemingly the intended functionality.

Cleanest would be the following in my opinion:

this.updates.set([...this.updates()]);

If you want, you can open up an MR at the GitLab repo and go get those credits :yum:

After that has been completed it is finally time for the new release :slight_smile:

Edit: I’ve pushed it myself and also tagged it, so those should be available for everyone very soon. Thanks again @wizzard8 ! :slight_smile:

1 Like

After I slept on it a bit while sweltering in bed in the humid night heat I figured it was just checking the memory address of the first element for array signals and ignoring internal changes to the contents of the array and when I researched it further today that turned out to be accurate, which I also found unintuitive :slight_smile:

Ive been at work today so looks like I missed out on those credits, lol :slight_smile: I never bothered properly forking it because I wasn’t expecting to be able to fix it, I wrote the first ts code of my life yesterday.

Btw, the “Create a new merge request at our main repository.” link on your rani homepage is dead, 404.

2 Likes

Haha sorry, I figured I’d use the time I had to get that new version out. But I mentioned you in the commit message to credit at least somehow :see_no_evil_monkey:

Thanks for the heads up!

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.