从 shell 脚本中打开指定大小的 luakit 窗口

有人能帮我用 luakit 实现这个吗? 我在树莓派上运行 raspbian,为了我的应用,我需要一个 luakit 窗口一直以全屏模式运行,并由 bash 脚本触发,我想要另一个浏览器窗口在某个时候打开到特定大小,比如 800x600。如果我还能确定第二个窗口的位置,那就更好了。

我能够通过在我的 rc.lua 配置中覆盖 window 函数来启动全屏或特定大小的 luakit。然后我使用一个或另一个 rc.lua 文件(-c 参数)来启动 luakit。但是,如果已经运行了一个 luakit 实例,第二个 luakit 窗口将使用已经运行的第一个窗口的配置。

我能否从 bash 脚本中触发新 luakit 窗口的窗口大小?

感谢任何帮助。

点赞
用户3620060
用户3620060

我找到了解决方法:不再给浏览器实例窗口尺寸,而是通过检查URL让其自行决定是否全屏启动。

在我的rc.lua中,我添加了 require "userconf",并创建了一个名为 userconf.lua 的文件,在其中重写了函数 window.new,代码如下:

function window.new(uris)
    local w = window.build()

    -- 设置窗口元表
    setmetatable(w, {
    __index = function (_, k)
        -- 首先检查小部件结构
        local v = rawget(w, k)
        if v then return v end
        -- 调用每个窗口索引函数
        for _, index in ipairs(window.indexes) do
            v = index(w, k)
            if v then return v end
        end
    end,
    })

    -- 为信号设置窗口小部件
    lousy.signal.setup(w)

    -- 调用窗口初始化函数
    for _, func in pairs(window.init_funcs) do
    func(w)
    end

    -- 调用窗口初始化函数
    for _, func in pairs(window.init_funcs) do
    func(w)
    end

    -- 使用标签页填充笔记本电脑
    for _, uri in ipairs(uris or {}) do
    w:new_tab(w:search_open(uri), false)
    end

    -- 确保已加载某些内容
    if w.tabs:count() == 0 then
    w:new_tab(w:search_open(globals.homepage), false)
    end

    -- 设置初始模式
    w:set_mode()

    -- 显示窗口
    w.win:show()

    -- 我们检查URL,如果指向我想在全屏中看到的URL,则启动全屏,否则保留默认情况。
    -- 在全屏中打开 myapplication.html,其他窗口在普通模式下
    w.win.fullscreen = false
    for _, uri in ipairs(uris or {}) do
            if string.match(uri, "myapplication.html") then
                    print "got myapplication.html"
                    w.win.fullscreen = true
            end
    end

    return w
end

这可能不是100%的解决方法,但对我来说足够了。

2017-11-29 23:10:27