Awesome WM: 将平铺客户端按特定顺序放置在启动时
2020-11-4 9:22:6
收藏:0
阅读:109
评论:2
我大约一周前安装了 Awesome WM。自那时以来,我一直试图在启动时以特定顺序放置终端客户端(裸终端和 vim、vifm、htop)。下面是我尝试实现的可视化表示形式:
########################
# # htop #
# ###########
# vim # bare #
# ###########
# # vifm #
########################
我已经成功将 vim 放置在正确的位置,但其他窗口被放置在似乎是任意的顺序,每次重新启动都会改变。以下是我的 autostart.lua 配置的内容:
1 local awful = require("awful")
1
2 awful.spawn.single_instance(terminal.."-e xmodmap ~/.Xmodmap; exit")
3 awful.spawn.single_instance("brave-browser", {
4 fullscreen = true,
5 focus = true
6 })
7
8 awful.spawn(terminal.." -e vim", {
9 tag = "edit",
10 placement = awful.placement.left,
11 callback = function(c) awful.client.setmaster(c) end})
12 awful.spawn(terminal.." -e htop", {
13 tag = "edit",
14 height = 80,
15 placement = awful.placement.top_right})
16 awful.spawn(terminal, {
17 tag = "edit",
18 placement = awful.placement.right})
19 awful.spawn(terminal.." -e vifm", {
20 tag = "edit",
21 placement = awful.placement.bottom_right})
22
23 awful.spawn(terminal.." -e neomutt", {
24 tag = "communication",
25 fullscreen = true })
26
27 awful.spawn("Spotify", { tag = "read" })
我有问题的标签布局是 “tile”。我正在使用 Awesome v4.3。我应该添加哪个客户端属性才能实现所需的行为?
点赞
用户14573348
为了在启动时将客户端生成在所需位置上,应该使用“回调”选项。这是我autostart.lua文件中与此问题相关的一部分代码:
1 local awful = require("awful")
2 local function spawn_vifm ()
3 awful.spawn(terminal.." -e vifm", {
4 tag = "edit",
5 placement = awful.placement.bottom_right
6 })
7 end
8 local function spawn_term ()
9 awful.spawn(terminal, {
10 tag = "edit",
11 placement = awful.placement.right,
12 callback = function(c) spawn_vifm() end
13 })
14 end
15 local function spawn_htop ()
16 awful.spawn(terminal.." -e htop", {
17 tag = "edit",
18 placement = awful.placement.top_right,
19 callback = function(c) spawn_term() end
20 })
21 end
.......
38 awful.spawn(terminal.." -e vim", {
39 tag = "edit",
40 placement = awful.placement.left,
41 callback = function(c)
42 awful.client.setmaster(c)
43 store_active_client(awful.tag.find_by_name(awful.screen.focused(), "edit"), c)
44 spawn_htop()
45 end
46 })
在上一个函数的回调函数中生成下一个客户端,可以确保将其放置属性保存在两者中间。
2020-11-04 11:23:11
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

我不知道你指的是什么:“我有问题的标签布局是向左平铺的”。我猜你的终端没有正确平铺?我在几年前使用了一周的 AwesomeWM,但很快意识到需要进行许多微调才能完全符合你的要求。你遇到的情况正是我遇到的。
我发现更容易使用 LXDE 和 Devilspie2。你可以使用 Lua 脚本无装饰地最大化窗口、跳转到其他桌面或任何你想要的操作,方法相当容易。这“可能会帮助你实现你的目标”,但如果你没有明确你的问题,很难说。
local screenwidth = awful.screen.geometry.width local screenheight = awful.screen.geometry.height local halfwidth = math.floor(screenwidth / 2) local thirdheight = math.floor(screenheight / 3) awful.spawn(terminal .. " -e vim", { tag = "edit", width = halfwidth, height = screenheight, placement = awful.placement.left, callback = function(c) awful.client.setmaster(c) end } ) awful.spawn(terminal.." -e htop", { tag = "edit", width = halfwidth, height = thirdheight, placement = awful.placement.top_right } ) awful.spawn(terminal, { -- bare tag = "edit", width = halfwidth, height = thirdheight, placement = awful.placement.right } ) awful.spawn(terminal .. " -e vifm", { tag = "edit", width = halfwidth, height = thirdheight, placement = awful.placement.bottom_right } )此外,如果你只是想在桌面上查看终端输出的话,可能Conky是一个可行的解决方案,同时还可以使用 Lua 进行脚本编写。