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

时间:2017-11-06 21:07:22

标签: shell browser lua raspberry-pi

任何人都可以用luakit来帮助我实现这个目标吗? 我在rpi3上运行raspbian,对于我的应用程序,我需要一个持续以全屏模式运行并由bash脚本触发的luakit窗口,我希望另一个浏览器窗口不时打开一定大小,例如800×600。如果我还能确定第二个窗口的位置会很好。

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

我可以以某种方式从bash脚本触发新luakit窗口的窗口大小吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我找到了解决问题的方法:我不是给浏览器实例提供窗口大小,而是通过检查URL来决定是否全屏启动。

在我的rc.lua中我添加了require "userconf"并创建了一个文件userconf.lua,其中我已经覆盖了函数window.new,如下所示:

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

    -- Set window metatable
    setmetatable(w, {
    __index = function (_, k)
        -- Check widget structure first
        local v = rawget(w, k)
        if v then return v end
        -- Call each window index function
        for _, index in ipairs(window.indexes) do
            v = index(w, k)
            if v then return v end
        end
    end,
    })

    -- Setup window widget for signals
    lousy.signal.setup(w)

    -- Call window init functions
    for _, func in pairs(window.init_funcs) do
    func(w)
    end

    -- Call window init functions
    for _, func in pairs(window.init_funcs) do
    func(w)
    end

    -- Populate notebook with tabs
    for _, uri in ipairs(uris or {}) do
    w:new_tab(w:search_open(uri), false)
    end

    -- Make sure something is loaded
    if w.tabs:count() == 0 then
    w:new_tab(w:search_open(globals.homepage), false)
    end

    -- Set initial mode
    w:set_mode()

    -- Show window
    w.win:show()

    -- we check the url, if it points to the URL i want to see in fullscreen we launch in fullscreen otherwise we leave the default.
    -- open myapplication.html in fullscreen, every other window in normal mode
    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%的解决方案,但对我来说没关系