mogenson/PaperWM.spoon

`attempt to index a nil value` in function `xpcall`

hacker-DOM opened this issue · 5 comments

I just installed PaperVM.spoon. I am getting the following error:

2022-10-15 21:13:40: -- Lazy extension loading enabled
2022-10-15 21:13:40: -- Loading ~/.hammerspoon/init.lua
2022-10-15 21:13:40: -- Loading Spoon: PaperWM
2022-10-15 21:13:40: -- Loading extension: window
2022-10-15 21:13:40: -- Loading extensions: window.filter
2022-10-15 21:13:40: -- Loading extension: logger
2022-10-15 21:13:40: -- Loading extension: spaces
2022-10-15 21:13:40: *** ERROR: /Users/dteiml/.hammerspoon/Spoons/PaperWM.spoon/init.lua:437: attempt to index a nil value
stack traceback:
	/Users/dteiml/.hammerspoon/Spoons/PaperWM.spoon/init.lua:437: in function 'PaperWM.addWindow'
	/Users/dteiml/.hammerspoon/Spoons/PaperWM.spoon/init.lua:389: in function 'PaperWM.refreshWindows'
	/Users/dteiml/.hammerspoon/Spoons/PaperWM.spoon/init.lua:182: in function 'PaperWM.start'
	/Users/dteiml/.hammerspoon/init.lua:248: in main chunk
	[C]: in function 'xpcall'
	...poon.app/Contents/Resources/extensions/hs/_coresetup.lua:723: in function 'hs._coresetup.setup'
	(...tail calls...)

I get this for both the default keybindings, as well as just for:

-- ~/.hammerspoon/init.lua
PaperWM = hs.loadSpoon("PaperWM")
PaperWM:start()

Line 437 is: https://github.com/mogenson/PaperWM.spoon/blob/main/init.lua#L437

Although we check prev_focused_id, it looks like we can't find a window with that id. If you change line 435 of init.lua to be the following, can you load the spoon?

if prev_focused_id and hs.window.get(prev_focused_id) and space == index_table[prev_focused_id].space then

Also, what version of HammerSpoon are you using?

I wrapped the rest of the if block in the line above, and it worked! I am on Version 0.9.97 (6267)

Glad to hear! Issue should be fixed with 01d76f1

hi I still have this issue and I'm using Version 0.9.96 (6262) under macos 10.15.7. The log is

2024-07-01 19:09:49: -- Lazy extension loading enabled
2024-07-01 19:09:49: -- Loading ~/.hammerspoon/init.lua
2024-07-01 19:09:49: -- Loading Spoon: SpoonInstall
2024-07-01 19:09:49: -- Loading extension: logger
2024-07-01 19:09:49: -- Loading extension: spoons
2024-07-01 19:09:49: -- Loading Spoon: PaperWM
2024-07-01 19:09:49: -- Loading extension: mouse
2024-07-01 19:09:49: -- Loading extension: geometry
2024-07-01 19:09:49: -- Loading extension: screen
2024-07-01 19:09:49: -- Loading extension: spaces
2024-07-01 19:09:49: -- Some applications have alternate names which can also be checked if you enable Spotlight support with `hs.application.enableSpotlightForNameSearches(true)`.
2024-07-01 19:09:49: *** ERROR: ...merspoon.app/Contents/Resources/extensions/hs/spaces.lua:71: attempt to index a nil value (local 'contents')
stack traceback:
	...merspoon.app/Contents/Resources/extensions/hs/spaces.lua:71: in local 'getDockExitTemplates'
	...merspoon.app/Contents/Resources/extensions/hs/spaces.lua:76: in main chunk
	[C]: in function 'rawrequire'
	...poon.app/Contents/Resources/extensions/hs/_coresetup.lua:662: in function 'require'
	...poon.app/Contents/Resources/extensions/hs/_coresetup.lua:457: in metamethod 'index'
	/Users/takaobsid/.hammerspoon/Spoons/PaperWM.spoon/init.lua:37: in main chunk
	[C]: in function 'rawrequire'
	...poon.app/Contents/Resources/extensions/hs/_coresetup.lua:662: in function 'require'
	...poon.app/Contents/Resources/extensions/hs/_coresetup.lua:337: in field 'loadSpoon'
	...merspoon.app/Contents/Resources/extensions/hs/spoons.lua:240: in function 'hs.spoons.use'
	...akaobsid/.hammerspoon/Spoons/SpoonInstall.spoon/init.lua:408: in function 'SpoonInstall.andUse'
	/Users/takaobsid/.hammerspoon/init.lua:9: in main chunk
	[C]: in function 'xpcall'
	...poon.app/Contents/Resources/extensions/hs/_coresetup.lua:723: in function 'hs._coresetup.setup'
	(...tail calls...)

any way to solve this? I don't want to update the OS, but 0.9.96 is the last version that HS support 10.15.7 :(

@QuarterHeaven It looks like you're running into this issue: Hammerspoon/hammerspoon#3170

This bug was fixed in upstream HammerSpoon. It's part of the hs/spaces.lua code and not PaperWM.spoon.

You could try manually making the following change to /Applications/Hammerspoon.app/Contents/Resources/extensions/hs/spaces.lua: Hammerspoon/hammerspoon@c6855da