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