#include "battery.h"
#include "clock.h"
#include "timer.h"
+#include "common.h"
PangoFontDescription *bat1_font_desc;
PangoFontDescription *bat2_font_desc;
new_percentage = (energy_now*100)/energy_full;
if(battery_low_status > new_percentage && battery_state.state == BATTERY_DISCHARGING && !battery_low_cmd_send) {
- system(battery_low_cmd); // return value == -1, since we've set SIGCHLD to SIGIGN
- battery_low_cmd_send = 1;
+ tint_exec(battery_low_cmd);
+ battery_low_cmd_send = 1;
}
if(battery_low_status < new_percentage && battery_state.state == BATTERY_CHARGING && battery_low_cmd_send) {
battery_low_cmd_send = 0;
#include <cairo.h>
#include <cairo-xlib.h>
#include <pango/pangocairo.h>
-#include <unistd.h>
-#include <signal.h>
#include <stdlib.h>
#include "window.h"
#include "taskbar.h"
#include "clock.h"
#include "timer.h"
+#include "common.h"
char *time1_format;
command = clock_rclick_command;
break;
}
- if (command) {
- pid_t pid;
- pid = fork();
- if (pid == 0) {
- // change for the fork the signal mask
-// sigset_t sigset;
-// sigprocmask(SIG_SETMASK, &sigset, 0);
-// sigprocmask(SIG_UNBLOCK, &sigset, 0);
- execl("/bin/sh", "/bin/sh", "-c", command, NULL);
- _exit(0);
- }
- }
+ tint_exec(command);
}
sigaction(SIGINT, &sa, 0);
sigaction(SIGTERM, &sa, 0);
sigaction(SIGHUP, &sa, 0);
- signal(SIGCHLD, SIG_IGN); // don't have to wait() after fork()
+// signal(SIGCHLD, SIG_IGN); // don't have to wait() after fork()
// BSD is too stupid to support pselect(), therefore we have to use select and hope that we do not
// end up in a race condition there
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-
+#include <unistd.h>
#include "common.h"
#include "../server.h"
}
+void tint_exec(const char *command)
+{
+ if (command) {
+ pid_t pid;
+ pid = fork();
+ if (pid == 0) {
+ // change for the fork the signal mask
+// sigset_t sigset;
+// sigprocmask(SIG_SETMASK, &sigset, 0);
+// sigprocmask(SIG_UNBLOCK, &sigset, 0);
+ execl("/bin/sh", "/bin/sh", "-c", command, NULL);
+ _exit(0);
+ }
+ }
+}
+
+
int hex_char_to_int (char c)
{
int r;
// extract key = value
int parse_line (const char *line, char **key, char **value);
+// execute a command by calling fork
+void tint_exec(const char* command);
+
+
// conversion
int hex_char_to_int (char c);
int hex_to_rgb (char *hex, int *r, int *g, int *b);