1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
local lgi = require("lgi")
local gears_obj = require("gears.object")
-- Emulate the C API classes. They differ from C API objects as connect_signal
-- doesn't take an object as first argument and they support fallback properties
-- handlers.
local function _shim_fake_class()
local obj = gears_obj()
obj.data = {}
local meta = {
__index = function()end,
__newindex = function()end,
}
obj._connect_signal = obj.connect_signal
function obj.connect_signal(name, func)
return obj._connect_signal(obj, name, func)
end
function obj.set_index_miss_handler(handler)
meta.__index = handler
end
function obj.set_newindex_miss_handler(handler)
meta.__newindex = handler
end
function obj.emit_signal(name, c, ...)
local conns = obj._signals[name] or {strong={}}
for func in pairs(conns.strong) do
func(c, ...)
end
end
return obj, meta
end
local awesome = _shim_fake_class()
awesome._shim_fake_class = _shim_fake_class
-- Avoid c.screen = acreen.focused() to be called, all tests will fail
awesome.startup = true
function awesome.register_xproperty()
end
function awesome.xkb_get_group_names()
return "pc+us+inet(evdev)"
end
function awesome.xkb_get_layout_group()
return 0
end
awesome.load_image = lgi.cairo.ImageSurface.create_from_png
function awesome.pixbuf_to_surface(_, path)
return awesome.load_image(path)
end
-- Always show deprecated messages
awesome.version = "v9999"
-- SVG are composited. Without it we need a root surface
awesome.composite_manager_running = true
awesome._modifiers = {
Shift = {
{keycode = 50 , keysym = 'Shift_L' },
{keycode = 62 , keysym = 'Shift_R' },
},
Lock = {},
Control = {
{keycode = 37 , keysym = 'Control_L' },
{keycode = 105, keysym = 'Control_R' },
},
Mod1 = {
{keycode = 64 , keysym = 'Alt_L' },
{keycode = 108, keysym = 'Alt_R' },
},
Mod2 = {
{keycode = 77 , keysym = 'Num_Lock' },
},
Mod3 = {},
Mod4 = {
{keycode = 133, keysym = 'Super_L' },
{keycode = 134, keysym = 'Super_R' },
},
Mod5 = {
{keycode = 203, keysym = 'Mode_switch'},
},
}
awesome._active_modifiers = {}
return awesome
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80
|