【发布时间】:2020-09-08 22:50:37
【问题描述】:
有没有办法在 AwesomeWM Lua Config 中获取下一个或上一个标签?
原因:- 我想获取下一个或上一个标签以将重点客户标签设置为它,然后移动到该标签。 我知道有 awesome.tag.viewnext 移动到下一个标签,但不确定如何获取它将移动到的标签以在客户端上设置它。 提前致谢
【问题讨论】:
标签: awesome-wm
有没有办法在 AwesomeWM Lua Config 中获取下一个或上一个标签?
原因:- 我想获取下一个或上一个标签以将重点客户标签设置为它,然后移动到该标签。 我知道有 awesome.tag.viewnext 移动到下一个标签,但不确定如何获取它将移动到的标签以在客户端上设置它。 提前致谢
【问题讨论】:
标签: awesome-wm
嗯...是的,有一种方法,但没有一种完全微不足道的方法。
首先,让我们看一下默认配置。哪些现有功能必须获得下一个/上一个标签?那就是taglist上的鼠标滚轮:
那么,awful.tag.viewnext 和 viewprev 如何获得下一个标签?这些函数只需调用 viewidx 并使用 1 或 -1 的 idx,例如:
所以,awful.tag.viewidx 可以做我们想做的事。它是怎么做到的?
它获取所有未隐藏标签的表,找到当前选定标签的索引,然后使用gears.math.cycle 计算具有请求偏移量的标签的索引。
对你来说,类似下面的东西应该可以解决问题:
function get_tag_at_offset(i, s)
s = screen[s or awful.screen.focused()]
local tags = s.tags
local showntags = {}
for _, t in pairs(tags) do
if not awful.tag.getproperty(t, "hide") then
table.insert(showntags, t)
end
end
for k, t in ipairs(showntags) do
if t == sel then
return showntags[gears.math.cycle(#showntags, k + i)]
end
end
end
上面的函数可以像get_tag_at_offset(1) 一样使用来获取下一个标签,并使用参数-1 来获取上一个标签。在可能的情况下,我建议也通过第二个参数传入一个屏幕。
此外,所有这些都完全未经测试,只是当场编写的。这里很可能有错别字和其他错误。
【讨论】: