📄 magnifier.lua.in
字号:
----------------------------------------------------------------------------- @author Julien Danjou <julien@danjou.info>-- @copyright 2008 Julien Danjou-- @release @AWESOME_VERSION@----------------------------------------------------------------------------- Grab environment we needlocal setmetatable = setmetatablelocal ipairs = ipairslocal math = mathlocal tag = require("awful.tag")local capi ={ client = client, screen = screen}local client = require("awful.client")--- Magnifier layout module for awfulmodule("awful.layout.suit.magnifier")local function magnifier(_, screen) -- Fullscreen? local area = capi.screen[screen].workarea local cls = client.tiled(screen) local focus = capi.client.focus local t = tag.selected(screen) local mwfact = tag.getmwfact(t) local fidx -- Focus client index in cls table -- Check that the focused window is on the right screen if focus and focus.screen ~= screen then focus = nil end if not focus and #cls > 0 then focus = cls[1] fidx = 1 end -- Abort if no clients are present if not focus then return end -- If focused window is not tiled, take the first one which is tiled. if client.floating.get(focus) then focus = cls[1] fidx = 1 end local geometry = {} if #cls > 1 then geometry.width = area.width * math.sqrt(mwfact) geometry.height = area.height * math.sqrt(mwfact) geometry.x = area.x + (area.width - geometry.width) / 2 geometry.y = area.y + (area.height - geometry.height) /2 else geometry.x = area.x geometry.y = area.y geometry.width = area.width geometry.height = area.height end focus:geometry(geometry) focus:raise() if #cls > 1 then geometry.x = area.x geometry.y = area.y geometry.height = area.height / (#cls - 1) geometry.width = area.width -- We don't know what the focus window index. Try to find it. if not fidx then for k, c in ipairs(cls) do if c == focus then fidx = k break end end end -- First move clients that are before focused client. for k = fidx + 1, #cls do cls[k]:geometry(geometry) geometry.y = geometry.y + geometry.height end -- Then move clients that are after focused client. -- So the next focused window will be the one at the top of the screen. for k = 1, fidx - 1 do cls[k]:geometry(geometry) geometry.y = geometry.y + geometry.height end endendsetmetatable(_M, { __call = magnifier })
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -