mirror of
https://github.com/elenapan/dotfiles.git
synced 2026-05-11 17:35:57 +08:00
Add KDE Connect daemon
This commit is contained in:
parent
83a2828b8c
commit
a3ea038a3d
1 changed files with 51 additions and 0 deletions
51
config/awesome/evil/kdeconnect.lua
Normal file
51
config/awesome/evil/kdeconnect.lua
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
-- Provides:
|
||||
-- evil::kdeconnect
|
||||
-- reachable (boolean)
|
||||
-- battery (integer from 0 to 100)
|
||||
local awful = require("awful")
|
||||
|
||||
local update_interval = 20
|
||||
|
||||
local kdeconnect_devices_script = [[
|
||||
sh -c "
|
||||
for device in \$(qdbus --literal org.kde.kdeconnect /modules/kdeconnect org.kde.kdeconnect.daemon.devices); do
|
||||
# Print the second field split by double quotes using awk
|
||||
echo \"\$device\" | awk -F'\"' '{print \$2}'
|
||||
# TODO: Remove break when/if I decide to support multiple devices
|
||||
break
|
||||
done
|
||||
"
|
||||
]]
|
||||
|
||||
-- First get device ID
|
||||
awful.spawn.easy_async_with_shell(kdeconnect_devices_script, function(stdout, _, __, exit_code)
|
||||
device_id = string.gsub(stdout, '^%s*(.-)%s*$', '%1')
|
||||
|
||||
-- Use device ID to create the script
|
||||
local kdeconnect_script = [[
|
||||
sh -c '
|
||||
deviceid="]]..device_id..[["
|
||||
reachable=$(qdbus org.kde.kdeconnect "/modules/kdeconnect/devices/$deviceid" org.kde.kdeconnect.device.isReachable)
|
||||
if [ "$reachable" = "true" ]; then
|
||||
battery=$(qdbus org.kde.kdeconnect /modules/kdeconnect/devices/${deviceid}/battery org.kde.kdeconnect.device.battery.charge | tr -d 'n')
|
||||
echo $battery
|
||||
else
|
||||
echo -1
|
||||
fi
|
||||
'
|
||||
]]
|
||||
|
||||
-- Periodically get device info
|
||||
awful.widget.watch(kdeconnect_script, update_interval, function(widget, stdout)
|
||||
local value = tonumber(stdout)
|
||||
local battery, reachable
|
||||
if value < 0 then
|
||||
battery = nil
|
||||
reachable = false
|
||||
else
|
||||
battery = value
|
||||
reachable = true
|
||||
end
|
||||
awesome.emit_signal("evil::kdeconnect", reachable, battery)
|
||||
end)
|
||||
end)
|
||||
Loading…
Add table
Add a link
Reference in a new issue