Skip to content
Permalink
Browse files

ENH: Add AC power detection for *BSD systems

  • Loading branch information...
kernc committed Feb 17, 2019
1 parent 7d45933 commit 4e4497042c65a0127d83b3d9b324cf61a67d70cd
Showing with 16 additions and 1 deletion.
  1. +16 −1 src/events.c
@@ -1,8 +1,9 @@
#include "events.h" #include "events.h"


#include <glib.h> #include <glib.h>

#include <libwnck/libwnck.h> #include <libwnck/libwnck.h>

#include <sys/param.h>
#include <time.h> #include <time.h>


#include "entry.h" #include "entry.h"
@@ -234,6 +235,20 @@ is_on_ac_power ()
return TRUE; return TRUE;
} }
return FALSE; return FALSE;

#elif defined(__unix__) && defined(BSD) && !defined(__APPLE__)
// On *BSD, run `apm -a` which returns '1' when AC is online
g_autoptr (GError) err = NULL;
g_autofree char *standard_output = NULL;
char *argv[] = {"apm", "-a", NULL};

g_spawn_sync (NULL, argv, NULL, G_SPAWN_SEARCH_PATH | G_SPAWN_STDERR_TO_DEV_NULL,
NULL, NULL, &standard_output, NULL, NULL, &err);
if (err)
g_warning ("Unexpected `apm -a` execution error: %s", err->message);

return standard_output && 0 == g_strcmp0 (g_strstrip (standard_output), "1");

#else #else
#warning "No battery / AC status support for your platform." #warning "No battery / AC status support for your platform."
#warning "Defaulting to as if 'always on battery' behavior. Patches welcome!" #warning "Defaulting to as if 'always on battery' behavior. Patches welcome!"

0 comments on commit 4e44970

Please sign in to comment.
You can’t perform that action at this time.