some work on the network manager
This commit is contained in:
@@ -102,7 +102,7 @@ function access_point:create_profile(ap, password, auto_connect)
|
||||
}
|
||||
end
|
||||
|
||||
function access_point:disconnect_ap()
|
||||
function access_point:disconnect()
|
||||
self.NetworkManager:DeactivateConnection(self.NetworkManagerDevice.ActiveConnection)
|
||||
end
|
||||
|
||||
@@ -137,16 +137,16 @@ function access_point:connect(ap, password, auto_connect)
|
||||
end
|
||||
end
|
||||
|
||||
function access_point:toggle_access_point(ap, password, auto_connect)
|
||||
function access_point:toggle_connection(ap, password, auto_connect)
|
||||
if self:is_ap_active(ap) then
|
||||
self:disconnect_ap()
|
||||
self:disconnect()
|
||||
else
|
||||
self:connect_ap(ap, password, auto_connect)
|
||||
self:connect(ap, password, auto_connect)
|
||||
end
|
||||
end
|
||||
|
||||
function access_point:is_ap_active(ap)
|
||||
return ap.path == self.NetworkManagerDeviceWireless.ActiveAccessPoint
|
||||
return ap.object_path == self.NetworkManagerDeviceWireless.ActiveAccessPoint
|
||||
end
|
||||
|
||||
function access_point.new(args)
|
||||
@@ -154,14 +154,6 @@ function access_point.new(args)
|
||||
|
||||
if not args.NetworkManagerAccessPoint then return end
|
||||
|
||||
local bg, fg, icon_color = Theme_config.network_manager.access_point.bg, Theme_config.network_manager.access_point.fg,
|
||||
Theme_config.network_manager.access_point.icon_color
|
||||
|
||||
--[[ if get_active_access_point() == args.NetworkManagerAccessPoint.access_point_path then
|
||||
bg, fg, icon_color = Theme_config.network_manager.access_point.fg, Theme_config.network_manager.access_point.bg,
|
||||
Theme_config.network_manager.access_point.icon_color2
|
||||
end ]]
|
||||
|
||||
local ssid_text = awidget.inputbox {
|
||||
text = NM.utils_ssid_to_utf8(args.NetworkManagerAccessPoint.Ssid) or
|
||||
args.NetworkManagerAccessPoint.hw_address or "Unknown",
|
||||
@@ -177,7 +169,7 @@ function access_point.new(args)
|
||||
{
|
||||
image = gcolor.recolor_image(
|
||||
icondir .. "wifi-strength-" .. math.floor(args.NetworkManagerAccessPoint.Strength / 25) + 1 .. ".svg",
|
||||
icon_color),
|
||||
Theme_config.network_manager.access_point.icon_color),
|
||||
id = "icon",
|
||||
resize = true,
|
||||
valign = "center",
|
||||
@@ -245,8 +237,8 @@ function access_point.new(args)
|
||||
margins = dpi(5),
|
||||
widget = wibox.container.margin
|
||||
},
|
||||
bg = bg,
|
||||
fg = fg,
|
||||
bg = Theme_config.network_manager.access_point.bg,
|
||||
fg = Theme_config.network_manager.access_point.fg,
|
||||
border_color = Theme_config.network_manager.access_point.border_color,
|
||||
border_width = Theme_config.network_manager.access_point.border_width,
|
||||
id = "background",
|
||||
@@ -262,6 +254,47 @@ function access_point.new(args)
|
||||
ret.NetworkManagerDevice = args.NetworkManagerDevice
|
||||
ret.NetworkManager = args.NetworkManager
|
||||
|
||||
ret.NetworkManagerAccessPointProperties = dbus_proxy.Proxy:new {
|
||||
bus = dbus_proxy.Bus.SYSTEM,
|
||||
name = "org.freedesktop.NetworkManager",
|
||||
interface = "org.freedesktop.DBus.Properties",
|
||||
path = ret.NetworkManagerAccessPoint.object_path,
|
||||
}
|
||||
|
||||
-- Update the access point strength
|
||||
ret.NetworkManagerAccessPointProperties:connect_signal(function(_, properties, data)
|
||||
if data.Strength then
|
||||
awesome.emit_signal("NM::AccessPointStrength", data.Strength)
|
||||
if ret.is_ap_active(ret.NetworkManagerAccessPoint.object_path) then
|
||||
ret:get_children_by_id("icon")[1].image = gcolor.recolor_image(
|
||||
icondir .. "wifi-strength-" .. math.floor(data.Strength / 25) + 1 .. ".svg",
|
||||
Theme_config.network_manager.access_point.icon_color2)
|
||||
else
|
||||
ret:get_children_by_id("icon")[1].image = gcolor.recolor_image(
|
||||
icondir .. "wifi-strength-" .. math.floor(data.Strength / 25) + 1 .. ".svg",
|
||||
Theme_config.network_manager.access_point.icon_color)
|
||||
end
|
||||
end
|
||||
end, "PropertiesChanged")
|
||||
|
||||
if ret:is_ap_active(ret.NetworkManagerAccessPoint) then
|
||||
ret.bg = Theme_config.network_manager.access_point.fg
|
||||
ret.fg = Theme_config.network_manager.access_point.bg
|
||||
ret:get_children_by_id("icon")[1].image = gcolor.recolor_image(
|
||||
icondir .. "wifi-strength-" .. math.floor(ret.NetworkManagerAccessPoint.Strength / 25) + 1 .. ".svg",
|
||||
Theme_config.network_manager.access_point.icon_color2)
|
||||
ret:get_children_by_id("con")[1].image = gcolor.recolor_image(
|
||||
icondir .. "link.svg", Theme_config.network_manager.access_point.icon_color2)
|
||||
else
|
||||
ret.bg = Theme_config.network_manager.access_point.bg
|
||||
ret.fg = Theme_config.network_manager.access_point.fg
|
||||
ret:get_children_by_id("icon")[1].image = gcolor.recolor_image(
|
||||
icondir .. "wifi-strength-" .. math.floor(ret.NetworkManagerAccessPoint.Strength / 25) + 1 .. ".svg",
|
||||
Theme_config.network_manager.access_point.icon_color)
|
||||
ret:get_children_by_id("con")[1].image = gcolor.recolor_image(
|
||||
icondir .. "link.svg", Theme_config.network_manager.access_point.icon_color)
|
||||
end
|
||||
|
||||
ret.ap_form = ap_form {
|
||||
screen = args.screen,
|
||||
NetworkManagerAccessPoint = args.NetworkManagerAccessPoint,
|
||||
@@ -305,27 +338,9 @@ function access_point.new(args)
|
||||
icondir .. "link.svg",
|
||||
Theme_config.network_manager.access_point.icon_color),
|
||||
callback = function()
|
||||
ret:toggle_access_point()
|
||||
ret:toggle_connection(ret.NetworkManagerAccessPoint)
|
||||
end,
|
||||
id = "connected"
|
||||
},
|
||||
{ -- Rename a device
|
||||
name = "Rename",
|
||||
icon = gcolor.recolor_image(icondir .. "edit.svg", Theme_config.network_manager.icon_color),
|
||||
callback = function()
|
||||
ssid_text:focus()
|
||||
ssid_text:connect_signal("submit", function(text)
|
||||
text = text:get_text()
|
||||
ssid_text.markup = ret:rename(text)
|
||||
end)
|
||||
end
|
||||
},
|
||||
{ -- Remove a device
|
||||
name = "Remove",
|
||||
icon = gcolor.recolor_image(icondir .. "delete.svg", Theme_config.network_manager.icon_color),
|
||||
callback = function()
|
||||
|
||||
end
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -333,8 +348,11 @@ function access_point.new(args)
|
||||
ret:buttons(gtable.join(
|
||||
abutton({}, 1, nil,
|
||||
function()
|
||||
--TODO:Check if there are any connection details, else open the popup
|
||||
ret.ap_form:popup_toggle()
|
||||
if ret:is_ap_active(ret.NetworkManagerAccessPoint) then
|
||||
ret:disconnect()
|
||||
else
|
||||
ret.ap_form:popup_toggle()
|
||||
end
|
||||
end
|
||||
),
|
||||
abutton({}, 3, nil,
|
||||
@@ -344,9 +362,6 @@ function access_point.new(args)
|
||||
)
|
||||
))
|
||||
|
||||
ret:get_children_by_id("con")[1].image = gcolor.recolor_image(
|
||||
icondir .. "link.svg", icon_color)
|
||||
|
||||
Hover_signal(ret)
|
||||
|
||||
return ret
|
||||
|
||||
Reference in New Issue
Block a user