You are not logged in.
Yesterday, I tried logging into AwesomeWM after taking a day or 2 playing around with other Tiling Window Managers. I am now getting these errors:
~/.config/awesome/rclua:256: attempt to call a nil value (field 'at_screen_connect')
error while running function!
stack traceback:
~/.config/awesome/rc.lua:256: in local 'func'
/usr/share/awesome/lib/awful/screen.lua:438: in function 'awful.screen.connect_for_each_screen'
~/.config/awesome/rc.lua:256: in main chunk
error: ~/.config/awesome/rc.lua:256: attempt to call a nil value (field 'at_screen_connect')
Okay. So, what's at those lines?
The rc.lua line looks like this:
awful.screen.connect_for_each_screen(function(s) beautiful.at_screen_connect(s) end)
The screen.lua line looks like this:
func(s)
The rest of that section looks like this:
function screen.connect_for_each_screen(func)
for s in capi.screen do
func(s)
end
Someone on the Awesome Discord mentioned this:
edit /usr/share/awesome/lib/awful/spawn.lua and add local GioUnix = lgi.GioUnix under the local Gio = lgi.Gio line then run a find and replace on Gio.UnixInputStream to GioUnix.InputStream.
I did that too and it's still not working.
Someone mentioned that glib2 and or lua53-lgi broke Awesome.
If anyone knows what's going on and knows how to fix this, please let me know. I'd greatly appreciate it.
Last edited by Phydoux (2025-09-26 14:05:45)
Offline
Maybe related to https://github.com/awesomeWM/awesome/issues/4025
If so, install awesesome-git from AUR with the following change in PKGBUILD: https://github.com/lcpz/awesome-copycat … 3326200858
Online
Are you using "awesome 4.3-5"?
There is a new version in "extra-testing" (awesome 4.3-6) that fixes something regarding glib2 / Gio (https://gitlab.archlinux.org/archlinux/ … -/issues/1).
My problems were fixed with that version. I bet it will be pushed to "extra" in the next days.
Offline
Maybe related to https://github.com/awesomeWM/awesome/issues/4025
If so, install awesesome-git from AUR with the following change in PKGBUILD: https://github.com/lcpz/awesome-copycat … 3326200858
Okay, I installed the awesome-git from the AUR and when I logged into it, it loaded the wallpapers and my screen positioning but the top bars on each screen are missing. So, I'm getting close to fixing this... Thank you BTW, this is the closest I've come to being anywhere close to fixing this...
There was a line in my rc.lua that would still give me the default empty configuration...
awful.screen.connect_for_each_screen(function(s) beautiful.at_screen_connect(s) end)
If I leave that in there, I'm presented with the error for that line and I get the default beginning Awesome config with nothing in it like a new install.
So, I commented that out and it's almost working... So, why isn't my top bar showing up now? I've added the line in PKGBUILD before installing awesome.git and it's still not quite there...
I'm so close. I am thinking it's something to do with wibox or the AUR version isn't allowing something from the original version to function correctly...
SOOOOOO... CLOSE!!!!
Last edited by Phydoux (2025-09-25 13:18:01)
Offline
There was a line in my rc.lua that would still give me the default empty configuration...
awful.screen.connect_for_each_screen(function(s) beautiful.at_screen_connect(s) end)
Without seeing the rest of the surrounding code at least, or better yet, the whole rc.lua, I can only make assumptions. Going off my own rc.lua, which is copypasted from one of the lain ones, I'd assume that on connect_for_each_screen the wibars get built, and you basically commented out your wibars that way.
But first things first, let's check the low-hanging fruits, because for me just installing the correct commit fixed everything: Can you paste the full modified PKGBUILD you used?
Should look like this:
# Maintainer: Yauhen Kirylau <actionless DOT loveless PLUS aur AT gmail MF com>
# Maintainer: Oleg Shparber <trollixx+aur@gmail.com>
# Contributor: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Sébastien Luttringer
# Contributor: xduugu
# Contributor: Ronald van Haren <ronald.archlinux.org>
# Contributor: Vesa Kaihlavirta
_pkgname=awesome
pkgname=${_pkgname}-git
pkgver=4.3.1686.g80b7fa826
pkgrel=1
pkgdesc='Highly configurable framework window manager'
arch=('i686' 'x86_64')
url='https://awesomewm.org/'
license=('GPL2')
depends=('cairo' 'dbus' 'gdk-pixbuf2' 'libxdg-basedir' 'libxkbcommon-x11'
'lua' 'lua-lgi' 'pango' 'startup-notification' 'xcb-util-cursor'
'xcb-util-keysyms' 'xcb-util-wm' 'xcb-util-xrm' 'libxfixes')
makedepends=('asciidoctor' 'cmake' 'docbook-xsl' 'git' 'imagemagick' 'ldoc'
'xmlto')
optdepends=('rlwrap: readline support for awesome-client'
'dex: autostart your desktop files'
'xcb-util-errors: for pretty-printing of X11 errors'
'librsvg: for displaying SVG files without scaling artifacts'
)
provides=('notification-daemon' 'awesome')
conflicts=('awesome')
backup=('etc/xdg/awesome/rc.lua')
source=("$pkgname::git+https://github.com/awesomeWM/awesome.git#commit=80b7fa8262495e331da3c98a48adf94a5a806fef")
md5sums=('SKIP')
_LUA_VER=5.4
pkgver() {
cd $pkgname
git describe | sed 's/^v//;s/-/./g'
}
build() {
mkdir -p build
cd build
cmake ../$pkgname \
-DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_INSTALL_PREFIX=/usr \
-DSYSCONFDIR=/etc \
-DLUA_INCLUDE_DIR=/usr/include/lua${_LUA_VER} \
-DLUA_LIBRARY=/usr/lib/liblua.so.${_LUA_VER} \
-DLUA_EXECUTABLE=/usr/bin/lua${_LUA_VER} \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
make
}
package() {
cd build
make DESTDIR="$pkgdir" install
install -Dm644 "$srcdir"/$pkgname/awesome.desktop \
"$pkgdir/usr/share/xsessions/awesome.desktop"
}Also, post the output of pacman -Qs awesome - for me this results in
[ ~ ] pacman -Qs awesome
local/awesome-git 4.3.1686.g80b7fa826-1
Highly configurable framework window managerAnd I'd recommend a full pacman -Syu and a reboot beforehand, just to get any lingering things out of the way. How did you build/install awesome-git? Like I mentioned on reddit or with the diffs from the github gist? (Assuming that was your post with the same username on reddit where I answered - my user over there is "frozengrowl".)
Reply might take a bit, I'll be on the road for the next few hours.
Online
You mentioned the same function in your OP - does the repo awesome work if you comment that function?
https://awesomewm.org/apidoc/theme_rela … tiful.html
https://www.google.com/search?q=%22beau … connect%22 doesn't seem to be a thing itfp?
Offline
Google might not find it, and it's not in the docs, but it's exactly what's used in the lzpc/awesome-copycats themes in their rc.lua.template: https://github.com/lcpz/awesome-copycat … plate#L251
Where it comes from IDK, can't find it either in the awesome source nor the copycats repo See below - it gets defined in the theme.lua of copycats.
Last edited by Whoracle (2025-09-25 14:07:23)
Online
And awesome thinks it's a nil value and google actually finds it: https://github.com/lcpz/awesome-copycats/issues/235
Offline
Without seeing the rest of the surrounding code at least, or better yet, the whole rc.lua, I can only make assumptions. Going off my own rc.lua, which is copypasted from one of the lain ones, I'd assume that on connect_for_each_screen the wibars get built, and you basically commented out your wibars that way.
So, my rc.lua is 1035 lines long (probably the #1 reason why I'm having issues all of a sudden). I don't think I can post the whole thing here. Where would be a good place to put it for viewing?
But here are the lines surrounding the problematic line that deal with the screen variables:
-- {{{ Screen
-- Re-set wallpaper when a screen's geometry changes (e.g. different resolution)
screen.connect_signal("property::geometry", function(s)
-- Wallpaper
if beautiful.wallpaper then
local wallpaper = beautiful.wallpaper
-- If wallpaper is a function, call it with the screen
if type(wallpaper) == "function" then
wallpaper = wallpaper(s)
end
gears.wallpaper.maximized(wallpaper, s, true)
end
end)
-- Create a wibox for each screen and add it
awful.screen.connect_for_each_screen(function(s) beautiful.at_screen_connect(s) end)
-- }}}The line I'm commenting out to bring up the wallpapers and xrandr is the second from the bottom.
But first things first, let's check the low-hanging fruits, because for me just installing the correct commit fixed everything: Can you paste the full modified PKGBUILD you used?
Here's that:
# Maintainer: Yauhen Kirylau <actionless DOT loveless PLUS aur AT gmail MF com>
# Maintainer: Oleg Shparber <trollixx+aur@gmail.com>
# Contributor: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Sébastien Luttringer
# Contributor: xduugu
# Contributor: Ronald van Haren <ronald.archlinux.org>
# Contributor: Vesa Kaihlavirta
_pkgname=awesome
pkgname=${_pkgname}-git
pkgver=4.3.1686.g80b7fa826
pkgrel=1
pkgdesc='Highly configurable framework window manager'
arch=('i686' 'x86_64')
url='https://awesomewm.org/'
license=('GPL2')
depends=('cairo' 'dbus' 'gdk-pixbuf2' 'libxdg-basedir' 'libxkbcommon-x11'
'lua' 'lua-lgi' 'pango' 'startup-notification' 'xcb-util-cursor'
'xcb-util-keysyms' 'xcb-util-wm' 'xcb-util-xrm' 'libxfixes')
makedepends=('asciidoctor' 'cmake' 'docbook-xsl' 'git' 'imagemagick' 'ldoc'
'xmlto')
optdepends=('rlwrap: readline support for awesome-client'
'dex: autostart your desktop files'
'xcb-util-errors: for pretty-printing of X11 errors'
'librsvg: for displaying SVG files without scaling artifacts'
)
provides=('notification-daemon' 'awesome')
conflicts=('awesome')
backup=('etc/xdg/awesome/rc.lua')
source=("$pkgname::git+https://github.com/awesomeWM/awesome.git#commit=80b7fa82624")
#source=("$pkgname::git+https://github.com/awesomeWM/awesome.git")
md5sums=('SKIP')
_LUA_VER=5.4
pkgver() {
cd $pkgname
git describe | sed 's/^v//;s/-/./g'
}
build() {
mkdir -p build
cd build
cmake ../$pkgname \
-DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_INSTALL_PREFIX=/usr \
-DSYSCONFDIR=/etc \
-DLUA_INCLUDE_DIR=/usr/include/lua${_LUA_VER} \
-DLUA_LIBRARY=/usr/lib/liblua.so.${_LUA_VER} \
-DLUA_EXECUTABLE=/usr/bin/lua${_LUA_VER} \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
make
}
package() {
cd build
make DESTDIR="$pkgdir" install
install -Dm644 "$srcdir"/$pkgname/awesome.desktop \
"$pkgdir/usr/share/xsessions/awesome.desktop"
}Also, post the output of pacman -Qs awesome - for me this results in
And the output from pacman -Qs awesome:
local/awesome-git 4.3.r1684.gf009815-1
Highly configurable framework window managerAnd don't worry about the long time to reply. I've got things to do here anyway and I probably won't be around the computer all day because of that.
Thanks for the help BTW! Much appreciated! I think I said that earlier. If I did, then that just means I greatly appreciate you taking the time out of your day to help me.
Last edited by Phydoux (2025-09-25 15:31:44)
Offline
And the output from pacman -Qs awesome:
local/awesome-git 4.3.r1684.gf009815-1 Highly configurable framework window manager
Looks like you did not install that package. The pkgver from the PKGBUILD doesn't match what pacman reports. Which commands did you run after changing the PKGBUILD?
Online
Which commands did you run after changing the PKGBUILD?
git clone https://aur.archlinux.org/awesome-git.git
cd awesome-git/
vim PKGBUILD
Edited the source with this:
source=("$pkgname::git+https://github.com/awesomeWM/awesome.git#commit=80b7fa82624")
makepkg -sDid I install the wrong git package?
EDIT:
So, I've backed up my rc.lua file and I'm using the original rc.lua. So far, I've got it recognizing my terminal program isn't 'xterm' and Super + Enter opens my default terminal. I've also added the autostart.sh file that loads xrandr, my wallpapers and a couple other things and that is working well too. The top bar still looks like the original one from the freshly installed Awesome WM.
However, I just noticed monitor 3 doesn't have any of the desktop stuff on the top bar. I might just try and logout and back in and see if it's just a glitch. I'm thinking maybe it's something in that autostart file like picom or something maybe. But so far, it's almost looking like it did. If all I need to do is just a couple more tweaks to get it closer to feeling like the one I had before, that might work...
Last edited by Phydoux (2025-09-25 18:13:01)
Offline
The actual pkgver gets set during the build, question would be "did you install that package at all or is this some older git build"
pacman -Qi awesome-gitBut I suspect even the regular awesome from the repos might work - but not with that apparently bogus awesome.lua that makes use of non-existent beautiful functions.
Offline
The actual pkgver gets set during the build, question would be "did you install that package at all or is this some older git build"
pacman -Qi awesome-gitBut I suspect even the regular awesome from the repos might work - but not with that apparently bogus awesome.lua that makes use of non-existent beautiful functions.
Yeah, I think the rc.lua I got is tainted with LOTS of made up stuff that's built into the config file itself. Things like 'beautiful', 'naughty', 'awful'. and whatever other BS got put into it.
Offline
beautiful, naughty and awful are awesome modules (the entire thing is a pun) - the immediate problem is that specific function that does not seem to exist in beautiful, no idea where the author of that lua got that.
Offline
beautiful, naughty and awful are awesome modules (the entire thing is a pun) - the immediate problem is that specific function that does not seem to exist in beautiful, no idea where the author of that lua got that.
Yep. You're right. It looks as if Beautiful is a theme handling thing. I always thought it was part of awesome. But maybe someone added that and configured it to do different things.
-- Theme handling library
local beautiful = require("beautiful")And I wonder why I'm having issues with a bastardized Timing Window Manager
Offline
https://aur.archlinux.org/packages/awesome-themes-git looks maintained (not using it here, I've just rewritten the default theme to become more like I wanted it to behave)
Offline
The function in question exists - it gets defined in theme.lua. see the GitHub issue that you linked, Seth
Phydoux, you just didn't install the package you created. Do that with pacman -U.
The awesome in extra does not yet contain the fixes, the one in extra-testing does.
Online
The awesome in extra does not yet contain the fixes, the one in extra-testing does.
So, I just need to put my old rc.lua back in place, install the testing version and it'll work again?
EDIT: Nevermind! I saw what I messed up on last night. When I copied the source line for PKGBUILD that I needed to edit... I didn't copy the whole line. Just part of it.
So, I saw what I did wrong and made a second attempt at it using ALL of the changed source line and now pacman -Qs awesome shows me this:
local/awesome-git 4.3.1686.g8b7fa826-1So all is well and good again. I am back in AwesomeWM and everything is working great again.
THANK YOU SO MUCH FOR ALL WHO HELPED ME WITH THIS!!!! IT REALLY MEANS A LOT!!!!
Last edited by Phydoux (2025-09-26 07:07:23)
Offline
"-U" takes a file, ie. the *.pkg.tar.zst that was created by makepkg
"makepkg -i" does that automatically.
Offline
@seth I didn't recommend makepkg -i because I don't remember if that needs sudo or something similar setup properly to work
But yeah, forgot to explicitly mention the package file that goes after.
@Phydoux might be a good idea to track either https://github.com/awesomeWM/awesome/pull/4027 and/or https://github.com/awesomeWM/awesome/pull/4022 to see when you can switch back to the "proper" awesome-git or extra/awesome to see when 4.3-6 lands there to switch back to the repo package.
Either way, please always remember to mark resolved threads by editing your initial posts subject - so others will know that there's no task left, but maybe a solution to find.
Thanks.
Last edited by Whoracle (2025-09-26 10:33:15)
Online
Ftr, a glib-fixed version is already in testing, https://archlinux.org/packages/extra-te … 4/awesome/
Offline
@Phydoux might be a good idea to track either https://github.com/awesomeWM/awesome/pull/4027 and/or https://github.com/awesomeWM/awesome/pull/4022 to see when you can switch back to the "proper" awesome-git or extra/awesome to see when 4.3-6 lands there to switch back to the repo package.
So when they do fix it, all I would need to do in my spawn.lua file is switch back to Gio.UnixInputStream from GioUnix.InputStream? Or is there more that I need to do, like remove the
local GioUnix = lgi.GioUnixand re-install the original Awesome WM Package and not the awesome-git version? Basically, undoing everything I did to temporarily fix it?
And, also, I edited the title of my post with a [SOLVED] in the beginning of the title. That is the corredt way to do it I hope.
Last edited by Phydoux (2025-09-26 14:32:57)
Offline
spawn.lua should be part of the package anyways, no?
You should just be able to reinstall the version from extra once that gets bumped.
Also, you marked the thread correctly, no worries ![]()
Online