moved to personal fennel config for awesome and added qutebrowser
This commit is contained in:
parent
403cb92b7d
commit
688748f8a6
502 changed files with 8576 additions and 9597 deletions
122
awes2/widget/package-updater/init.lua
Normal file
122
awes2/widget/package-updater/init.lua
Normal file
|
@ -0,0 +1,122 @@
|
|||
-------------------------------------------------
|
||||
-- Package Updater Widget for Awesome Window Manager
|
||||
-- Shows the package updates information in Arch Linux
|
||||
-- Will only show if there is/are updates available
|
||||
-------------------------------------------------
|
||||
|
||||
local awful = require('awful')
|
||||
local naughty = require('naughty')
|
||||
local wibox = require('wibox')
|
||||
local gears = require('gears')
|
||||
|
||||
local watch = awful.widget.watch
|
||||
|
||||
local apps = require('configuration.apps')
|
||||
|
||||
local clickable_container = require('widget.clickable-container')
|
||||
local dpi = require('beautiful').xresources.apply_dpi
|
||||
|
||||
local config_dir = gears.filesystem.get_configuration_dir()
|
||||
|
||||
local widget_icon_dir = config_dir .. 'widget/package-updater/icons/'
|
||||
|
||||
|
||||
local update_available = false
|
||||
local number_of_updates_available = nil
|
||||
local update_package = nil
|
||||
|
||||
local return_button = function()
|
||||
|
||||
local widget = wibox.widget {
|
||||
{
|
||||
id = 'icon',
|
||||
widget = wibox.widget.imagebox,
|
||||
image = widget_icon_dir .. 'package' .. '.svg',
|
||||
resize = true
|
||||
},
|
||||
layout = wibox.layout.align.horizontal
|
||||
}
|
||||
|
||||
local widget_button = wibox.widget {
|
||||
{
|
||||
widget,
|
||||
margins = dpi(2),
|
||||
widget = wibox.container.margin
|
||||
},
|
||||
widget = clickable_container
|
||||
}
|
||||
|
||||
widget_button:buttons(
|
||||
gears.table.join(
|
||||
awful.button(
|
||||
{},
|
||||
1,
|
||||
nil,
|
||||
function()
|
||||
|
||||
if update_available then
|
||||
awful.spawn(apps.default.package_manager .. ' --updates', false)
|
||||
|
||||
else
|
||||
awful.spawn(apps.default.package_manager, false)
|
||||
|
||||
end
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
-- Tooltip
|
||||
awful.tooltip(
|
||||
{
|
||||
objects = {widget_button},
|
||||
mode = 'outside',
|
||||
align = 'right',
|
||||
margin_leftright = dpi(8),
|
||||
margin_topbottom = dpi(8),
|
||||
timer_function = function()
|
||||
|
||||
if update_available then
|
||||
return update_package:gsub('\n$', '')
|
||||
else
|
||||
return 'We are up-to-date!'
|
||||
end
|
||||
|
||||
end,
|
||||
preferred_positions = {'right', 'left', 'top', 'bottom'}
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
watch('pamac checkupdates', 60, function(_, stdout)
|
||||
|
||||
number_of_updates_available = tonumber(stdout:match('.-\n'):match('%d*'))
|
||||
update_package = stdout
|
||||
|
||||
local icon_name
|
||||
|
||||
if number_of_updates_available ~= nil then
|
||||
|
||||
update_available = true
|
||||
icon_name = 'package-up'
|
||||
|
||||
else
|
||||
|
||||
update_available = false
|
||||
icon_name = 'package'
|
||||
|
||||
end
|
||||
|
||||
widget.icon:set_image(widget_icon_dir .. icon_name .. '.svg')
|
||||
|
||||
collectgarbage('collect')
|
||||
|
||||
|
||||
end)
|
||||
|
||||
return widget_button
|
||||
|
||||
end
|
||||
|
||||
return return_button
|
Loading…
Add table
Add a link
Reference in a new issue