Awesome WM broken after latest update (Garuda GNOME / Mokka)

Hello,

after today’s Garuda update my Awesome WM installation broke completely.
After reboot, Awesome WM no longer starts properly.

I tested this on two different laptops with different editions:

  • Garuda Mokka

  • Garuda GNOME

Both GNOME and Plasma still work fine after the update, but Awesome WM fails to start.

I had to roll back using Snapper to make the system usable again, but of course this means the update cannot be applied while keeping Awesome WM functional.

Here is the error message I get when trying to start Awesome WM:

Ooops an error happened
~/.config/awesome/rc.lua:268: attempt to call a nil value (field 'at_screen_connect')

Ooops, there were errors during startup!
error while running function!
stack traceback:
~/.config/awesome/rc.lua:268: in local func
/usr/share/awesome/lib/awful/screen.lua:438 in function 'awful.screen.connect_for_each_screen'
~/.config/awesome/rc.lua:268: in main chunk
error: ~/.config/awesome/rc.lua:268: attempt to call a nil value (field 'at_screen_connect')


Question

Do you have any suggestions on how to fix this issue so that Awesome WM continues to work after updates?
Is this a known bug in the latest Garuda packages, or should I patch my rc.lua manually?


System info

As requested, here is the output of garuda-inxi:System:
  Kernel: 6.16.8-zen2-1-zen arch: x86_64 bits: 64 compiler: gcc v: 15.2.1
    clocksource: hpet avail: acpi_pm
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
    root=UUID=f1c8448d-e832-4179-840a-01631969e766 rw rootflags=subvol=@
    quiet loglevel=3
  Desktop: awesome v: 4.3 vt: 2 dm: GDM v: 49.0.1 Distro: Garuda
    base: Arch Linux
Machine:
  Type: Laptop System: ASUSTeK product: F80Q v: 1.0
    serial: <superuser required>
  Mobo: ASUSTeK model: F80Q v: 1.0 serial: <superuser required>
    uuid: <superuser required> BIOS: American Megatrends v: 219 date: 04/10/2009
Battery:
  ID-1: BAT0 charge: 46.1 Wh (100%) condition: 46.1/48.4 Wh (95.3%)
    volts: 12.02 min: 10.8 model: ASUSTEK F80--22 type: Li-ion serial: N/A
    charging: status: full cycles: N/A
CPU:
  Info: model: Intel Core2 Duo T8100 bits: 64 type: MCP arch: Penryn level: v1
    built: 2008 process: Intel 45nm family: 6 model-id: 0x17 (23) stepping: 6
    microcode: 0x60F
  Topology: cpus: 1x dies: 1 clusters: 1 cores: 2 smt: <unsupported> cache:
    L1: 128 KiB desc: d-2x32 KiB; i-2x32 KiB L2: 3 MiB desc: 1x3 MiB
  Speed (MHz): avg: 798 min/max: 800/2101 boost: enabled scaling:
    driver: acpi-cpufreq governor: schedutil cores: 1: 798 2: 798 bogomips: 8379
  Flags-basic: ht lm nx pae sse sse2 sse3 sse4_1 ssse3 vmx
  Vulnerabilities: <filter>
Graphics:
  Device-1: Intel Mobile 4 Series Integrated Graphics vendor: ASUSTeK
    driver: i915 v: kernel arch: Gen-5 process: Intel 45nm built: 2008 ports:
    active: LVDS-1 empty: DP-1,VGA-1 bus-ID: 00:02.0 chip-ID: 8086:2a42
    class-ID: 0300
  Device-2: Chicony 2.0M UVC Webcam / CNF7129 driver: uvcvideo type: USB
    rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 4-3:2 chip-ID: 04f2:b071
    class-ID: 0e02 serial: <filter>
  Display: x11 server: X.org with: Xwayland v: 24.1.8 compositor: Picom
    v: 12.5 driver: X: loaded: intel unloaded: modesetting alternate: fbdev,vesa
    gpu: i915 display-ID: :0 screens: 1
  Screen-1: 0 s-res: 1280x800 s-dpi: 96 s-size: 338x211mm (13.31x8.31")
    s-diag: 398mm (15.69")
  Monitor-1: LVDS-1 mapped: LVDS1 model: AU Optronics 0x4444 built: 2006
    res: mode: 1280x800 hz: 60 scale: 100% (1) dpi: 108 gamma: 1.2
    size: 300x190mm (11.81x7.48") diag: 358mm (14.1") ratio: 16:10
    modes: 1280x800
  API: EGL v: 1.5 hw: drv: intel crocus platforms: device: 0 drv: crocus
    device: 1 drv: swrast gbm: drv: crocus surfaceless: drv: crocus x11:
    drv: crocus inactive: wayland
  API: OpenGL v: 4.5 compat-v: 2.1 vendor: intel mesa v: 25.2.3-arch1.2
    glx-v: 1.4 direct-render: yes renderer: Mesa Mobile Intel GM45 Express (CTG)
    device-ID: 8086:2a42 memory: 1.46 GiB unified: yes
  API: Vulkan v: 1.4.321 layers: 5 device: 0 type: cpu name: llvmpipe (LLVM
    20.1.8 128 bits) driver: mesa llvmpipe v: 25.2.3-arch1.2 (LLVM 20.1.8)
    device-ID: 10005:0000 surfaces: N/A
  Info: Tools: api: eglinfo, glxinfo, vulkaninfo
    x11: xdpyinfo, xprop, xrandr
Audio:
  Device-1: Intel 82801I HD Audio vendor: ASUSTeK driver: snd_hda_intel
    v: kernel bus-ID: 00:1b.0 chip-ID: 8086:293e class-ID: 0403
  API: ALSA v: k6.16.8-zen2-1-zen status: kernel-api tools: N/A
  Server-1: PipeWire v: 1.4.8 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 RTL810xE PCI Express Fast Ethernet vendor: ASUSTeK
    driver: r8169 v: kernel pcie: gen: 1 speed: 2.5 GT/s lanes: 1 port: d800
    bus-ID: 01:00.0 chip-ID: 10ec:8136 class-ID: 0200
  IF: enp1s0 state: down mac: <filter>
  Device-2: Qualcomm Atheros AR928X Wireless Network Adapter
    vendor: AzureWave AW-NE771 802.11bgn driver: ath9k v: kernel pcie: gen: 1
    speed: 2.5 GT/s lanes: 1 bus-ID: 02:00.0 chip-ID: 168c:002a class-ID: 0280
  IF: wlp2s0 state: up mac: <filter>
  Info: services: NetworkManager, smbd, sshd, systemd-timesyncd,
    wpa_supplicant
Drives:
  Local Storage: total: 119.24 GiB used: 28.06 GiB (23.5%)
  SMART Message: Required tool smartctl not installed. Check --recommends
  ID-1: /dev/sda maj-min: 8:0 vendor: Apacer model: AS350 128GB
    size: 119.24 GiB block-size: physical: 512 B logical: 512 B speed: 3.0 Gb/s
    tech: SSD serial: <filter> fw-rev: 117D scheme: MBR
Partition:
  ID-1: / raw-size: 119.24 GiB size: 119.24 GiB (100.00%)
    used: 28.06 GiB (23.5%) fs: btrfs dev: /dev/sda1 maj-min: 8:1
  ID-2: /home raw-size: 119.24 GiB size: 119.24 GiB (100.00%)
    used: 28.06 GiB (23.5%) fs: btrfs dev: /dev/sda1 maj-min: 8:1
  ID-3: /var/log raw-size: 119.24 GiB size: 119.24 GiB (100.00%)
    used: 28.06 GiB (23.5%) fs: btrfs dev: /dev/sda1 maj-min: 8:1
  ID-4: /var/tmp raw-size: 119.24 GiB size: 119.24 GiB (100.00%)
    used: 28.06 GiB (23.5%) fs: btrfs dev: /dev/sda1 maj-min: 8:1
Swap:
  Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
  ID-1: swap-1 type: zram size: 3.78 GiB used: 0 KiB (0.0%) priority: 100
    comp: zstd avail: lzo-rle,lzo,lz4,lz4hc,deflate,842 dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 37.0 C mobo: N/A
  Fan Speeds (rpm): N/A
Info:
  Memory: total: 4 GiB available: 3.78 GiB used: 754 MiB (19.5%)
  Processes: 202 Power: uptime: 1m states: freeze,mem,disk suspend: deep
    avail: s2idle wakeups: 0 hibernate: platform avail: shutdown, reboot,
    suspend, test_resume image: 1.48 GiB
    services: power-profiles-daemon,upowerd Init: systemd v: 258
    default: graphical tool: systemctl
  Packages: pm: pacman pkgs: 1254 libs: 353 tools: paru Compilers:
    gcc: 15.2.1 Shell: Bash v: 5.3.3 running-in: tilix inxi: 3.3.39
Garuda (2.8.3-2):
  System install date:     2025-06-19
  Garuda release:          250308
  Last full system update: 2025-09-23
  Is partially upgraded:   No
  Relevant software:       snapper NetworkManager dracut
  Windows dual boot:       <superuser required>
  Failed units:            
--- System Health Check Report ---
22/24 checks run in 2.10 seconds ⌛
Powered by garuda-health 🦅

✅ System health check passed. No issues found.
 

I dont know if its matter or not but xlibre is installed by this github repo. (on both mashines) .

I tested in QEMU with Xorg using the default configuration, and Awesome WM works fine.
The crash only happens when using the themes/configs from lcpz/awesome-copycats.

The problematic line is:

-- Create a wibox for each screen and add it
awful.screen.connect_for_each_screen(function(s) beautiful.at_screen_connect(s) end)

If I comment out this line, the error disappears, but then the top bar (wibox) is not visible at all.

If someone has similar problems there is a quickfix.

But! If you using Opensnitch, the icon does not showing in wibar after you install the fixed awesome. Im not sure about this, maybe problem is on me. -No way to test this.

paru -Rns awesome-git awesome-freedesktop-git lain-git

Or if you installed awesome from pacman:

sudo pacman -Rns awsome

paru -Rns awesome-freedesktop-git lain-git

then you create a fix-awesome.sh bash script.. paste what you find it on this link

chmod +x fix-awesome.sh
./fix-awesome.sh

then reinstall what you remove earlier..

paru -S awesome-freedesktop-git lain-git

Why paste bin? You can use https://bin.garudalinux.org/ too
but short scripts (< 32,000 chars IIRC) you can just post here.
No English possible?

#!/bin/bash
set -e
 
# Mappa neve
PKG=awesome-git
COMMIT=80b7fa8262495e331da3c98a48adf94a5a806fef
 
echo ">>> $PKG letöltése az AUR-ból..."
paru -G $PKG || (echo "Hiba: nem sikerült letölteni a PKGBUILD-ot" && exit 1)
 
cd $PKG
 
echo ">>> PKGBUILD módosítása a commit-ra ($COMMIT)..."
# Biztonsági mentés
cp PKGBUILD PKGBUILD.bak
 
# source sort átírjuk
sed -i "s|https://github.com/awesomeWM/awesome.git.*|https://github.com/awesomeWM/awesome.git#commit=$COMMIT\")|" PKGBUILD
 
echo ">>> Fordítás és telepítés..."
makepkg -si --noconfirm
 
echo ">>> Kész! Most már a fixelt awesome-git commit van telepítve."

English version

#!/bin/bash
set -e

# Directory name
PKG=awesome-git
COMMIT=80b7fa8262495e331da3c98a48adf94a5a806fef

echo ">>> Downloading $PKG from the AUR..."
paru -G $PKG || (echo "Error: failed to download the PKGBUILD" && exit 1)

cd $PKG

echo ">>> Modifying the PKGBUILD for the commit  ($COMMIT)..."
# Backup
cp PKGBUILD PKGBUILD.bak

# We rewrite the source
sed -i "s|https://github.com/awesomeWM/awesome.git.*|https://github.com/awesomeWM/awesome.git#commit=$COMMIT\")|" PKGBUILD

echo ">>> Compiling and installing..."
makepkg -si --noconfirm

echo ">>> Done! The fixed awesome-git commit is now installed."

Changed the link to bin.garudalinux.org changed to engrish.
I tryed to insert the bathc file but looks like im too dumb to format well in this forum… :rofl:

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