awesome-navbar/init.lua

73 lines
2.2 KiB
Lua

local gears = require("gears")
local awful = require("awful")
local wibox = require("wibox")
local switcherpopup = require("awesome-switcherpopup")
local launcherpopup = require("awesome-launcherpopup")
local longpress = require("awesome-longpress")
local vkbd = require("vkbd")
local navbar = {
iconSize = 96,
iconPath = gears.filesystem.get_configuration_dir() .. "/awesome-navbar/",
launcher = launcher or "xfce4-appfinder"
}
function navbar.new(s)
local landscape = s.geometry.width > s.geometry.height
local portrait = not landscape
s.tasklist = switcherpopup.new(s)
s.launcher = launcherpopup.new(s)
local switcher_button = wibox.container.place(awful.widget.button({image = navbar.iconPath .. "/switcher.svg"}), "center", "center")
switcher_button:buttons(gears.table.join(
switcher_button:buttons(),
awful.button({}, 1, nil, function()
s.launcher:hide()
s.tasklist:toggle()
end)
))
local kb_button = wibox.container.place(awful.widget.button({image = navbar.iconPath .. "/keyboard.svg"}), "center", "center")
kb_button:buttons(gears.table.join(
kb_button:buttons(),
awful.button({}, 1, nil, function()
s.keyboard.visible = not s.keyboard.visible
end)
))
local launcher_button = wibox.container.place(awful.widget.button({image = navbar.iconPath .. "/launcher.svg"}), "center", "center")
longpress.add(launcher_button,function()
s.tasklist:hide()
s.launcher:toggle()
end,
function()
awful.spawn(navbar.launcher)
end)
local rnavbar = awful.wibar({
position = landscape and "left" or "bottom",
height = (portrait and 96) or nil,
width = (landscape and 96) or nil,
ontop = true,
screen = s
})
rnavbar:setup({
layout = landscape and wibox.layout.ratio.vertical or wibox.layout.ratio.horizontal, launcher_button, switcher_button, kb_button
})
s.keyboard = awful.wibar({
height = s.geometry.height * 0.25,
opacity = 0.75,
position = "bottom",
visible = false,
ontop = true,
screen = s
})
vkbd.spacing = 1
vkbd.init("ansi")
s.keyboard:setup ({
layout = wibox.layout.ratio.horizontal,
vkbd
})
return rnavbar
end
return navbar