コード例 #1
0
int main(void) {
	char *status;
	float cpu0, cpu1;
	char *datetime;
	int bat0;


	if (!(dpy = XOpenDisplay(NULL))) {
		fprintf(stderr, "Cannot open display.\n");
		return 1;
	}

	if((status = malloc(200)) == NULL)
		exit(1);
	

	for (;;sleep(1)) {
		cpu0 = getfreq("/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq");
		cpu1 = getfreq("/sys/devices/system/cpu/cpu1/cpufreq/scaling_cur_freq");
		datetime = getdatetime();
		bat0 = getbattery();
		snprintf(status, 200, "%0.2f, %0.2f | %d%% | %s", cpu0, cpu1, bat0, datetime);

		free(datetime);
		setstatus(status);
	}

	free(status);
	XCloseDisplay(dpy);

	return 0;
}
コード例 #2
0
ファイル: status.c プロジェクト: Cornu/dwmstatus
int main(void) {
    char status[100];
    int l = 0;

    if (!(dpy = XOpenDisplay(NULL))) {
        fprintf(stderr, "Cannot open display.\n");
        return 1;
    }

    for (;;sleep(2)) {

        l = getcpu(status, sizeof(status));
        l += gettemp(status + l, sizeof(status) - l);
        l += getmem(status + l, sizeof(status) - l);
        l += getnetwork(status + l, sizeof(status) - l);
        l += getbattery(status + l, sizeof(status) - l);
        l += getvol(status + l, sizeof(status) - l);
        l += getdatetime(status + l, sizeof(status) - l);

        setstatus(status);
    }

    free(status);
    XCloseDisplay(dpy);

    return 0;
}
コード例 #3
0
ファイル: dwmstatus.c プロジェクト: Donearm/dwmstatus
/* 
 * setup the status bar here
 */
int
status(int tostatusbar)
{
    char *status = NULL;
    char *avgs = NULL;
    char *time = NULL;
    char *batt = NULL;
    char *net = NULL;
    char *temp = NULL;
    char *ipaddr = NULL;
    char *net_device_up = NET_DEVICE_PRIMARY;
    time_t count60 = 0;
    time_t count10 = 0;

    if (!(dpy = XOpenDisplay(NULL)) && tostatusbar == 0) {
        fprintf(stderr, "dwmstatus: cannot open display.\n");
        return 1;
    }

    for (;;sleep(0)) {
        /* Update every minute */
        if (runevery(&count60, 60)) {
            free(time);

            time  = mktimes("%Y/%m/%d %H:%M", TIMEZONE);
        }
        /* Update every 10 seconds */
        if (runevery(&count10, 10)) {
            free(avgs);
            free(temp);
            free(batt);

            avgs   = loadavg();
            temp   = gettemperature(TEMP_SENSOR_PATH, TEMP_SENSOR_UNIT);
            batt   = getbattery(BATT_PATH);
            if(!temp) free(temp);
        }
        /* Update every second */
        net    = get_netusage(net_device_up);
        ipaddr = get_ip_addr(net_device_up);

        /* Format of display */
        status = smprintf("%s (%s) | %s [%s] T %s | %s",
                net, ipaddr, batt, avgs, temp, time);
        if(!ipaddr) free(ipaddr);
        free(net);

        if(tostatusbar == 0)
            setstatus(status);
        else
            puts(status);

        free(status);
    }
    return 0;
}
コード例 #4
0
int main(int argc, char* argv[]) {
	char *status;
    char volume[20];
	char *datetime;
	char bat[20] = "";
    int laptop = 0;
    char hostname[30];
    gethostname(hostname, 30); 
    printf("%s\n", hostname);
    
    if (strcmp(hostname, "johan-laptop") == 0){
        laptop = 1;
        printf("This is a laptop\n");
    }
    else {
        printf("This is not a laptop\n");
    }

    snd_mixer_t *handle;
	snd_mixer_open(&handle, 0);
	snd_mixer_attach(handle, "default");
	const char* vol_ch = "Master";
	snd_mixer_selem_register(handle, NULL, NULL);
	snd_mixer_load(handle);

	if (!(dpy = XOpenDisplay(NULL))) {
		fprintf(stderr, "Cannot open display.\n");
		return 1;
	}

	if((status = malloc(200)) == NULL)
		exit(1);
	

	for (;;usleep(1000000)) {
	    datetime = getdatetime();
        //volume = getcmd("$HOME/Scripts/volume\\ get.sh");
        sprintf(volume, "%.0f%", getvolume(handle, vol_ch));
		if (laptop){
            sprintf(bat, " Bat: %.0f% |", getbattery());
        }

        snprintf(status, 200, "Vol: %s% |%s %s ", volume, bat, datetime );

		free(datetime);
		setstatus(status);
	}

	free(status);
	XCloseDisplay(dpy);

	return 0;
}
コード例 #5
0
ファイル: sucktus.c プロジェクト: poljar/sucktus
int main(void) {
    char *status;
    float mem;
    int bat0;
    char *datetime;
    char *address;
    char battext[6];
    char *volume;

    if (!(dpy = XOpenDisplay(NULL))) {
        fprintf(stderr, "Cannot open display.\n");
        return 1;
    }

    status = xmalloc(200);

    for (;;sleep(1)) {
        datetime = getdatetime();
        mem = getmeminfo();
        bat0 = getbattery();
        address = getaddress();
        volume = getvolume();

        if (ischarging())
            strcpy(battext, "ac:");
        else {
            if (bat0 > 50)
                strcpy(battext, "bat:");
            else if (bat0 < 20)
                strcpy(battext, "bat:");
            else
                strcpy(battext, "bat:");
        }

        snprintf(status, 200,
                "|%s|mem:%0.0f%%|%s%d%%|vol:%s|%s|",
                address, mem, battext, bat0, volume, datetime);

        free(datetime);
        free(address);
        free(volume);
        setstatus(status);
    }

    free(status);
    XCloseDisplay(dpy);

    return 0;
}
コード例 #6
0
ファイル: dwmstatus.c プロジェクト: Kinokoio/dwmstatus
int
main(void)
{
	char *status;
	/*char *avgs;*/
	char *tmcentral;
        char *cpu;
	char *battery;
	char *ifaddr;
	char *temp;
        int i = 0;

	if (!(dpy = XOpenDisplay(NULL))) {
		fprintf(stderr, "dwmstatus: cannot open display.\n");
		return 1;
	}

        /* Clear old_stats for cpu usage*/
        for(i = 0; i < 10; ++i)
            old_stats[i] = 0;

	for (;;sleep(1)) {
		/*avgs = loadavg();*/
                cpu = cpu_usage();
		tmcentral = mktimes("%Y-%m-%d %H:%M:%S", tzcentral);
		battery = getbattery();
		ifaddr = getifaddr();
		temp = gettemp();

		status = smprintf("%s | %s BAT %s | CPU %s | %s",
				temp, ifaddr, battery, cpu, tmcentral);
		setstatus(status);
		/*free(avgs);*/
		free(tmcentral);
		free(status);
		free(ifaddr);
	}

	XCloseDisplay(dpy);

	return 0;
}
コード例 #7
0
ファイル: pidstatus.c プロジェクト: pid1/pidstatus
int
main(void) {
	char status [200];
	int bat;

	if (!(dpy = XOpenDisplay(NULL))) {
		fputs("Cannot open display.\n", stderr);
		return EXIT_FAILURE;
	}

	for ( FILE * in; ; sleep(30)) {
		bat = getbattery();
		snprintf(status, 200, "%i", bat);
		setstatus(status);
	}

	XCloseDisplay(dpy);
	return EXIT_SUCCESS;

}
コード例 #8
0
int main(void) {
    Display *dpy;
    char *temp;
    char *status;
    char *tmny;
    char *batt;
    char *wifi;
    char *volume;

    if (!(dpy = XOpenDisplay(NULL))) {
        fprintf(stderr, "dwmstatus: cannot open display.\n");
        return 1;
    }

    for (;;sleep(1)) {
        wifi = getsignalstrength();
        batt = getbattery();
        volume = getvolume();
        temp = gettemperature("/sys/class/hwmon/hwmon0/temp1_input");
        tmny = mktimes("%a %d %b %H:%M:%S", tzny);

        /* status = smprintf("\x8D   | \x8F | \x90 | \x9D | \x81 | %s", tmny); */
        /*                    charge | batt | vol  | mute | wifi | time        */
        status = smprintf("%s | %s%s%s %s", temp, volume, batt, wifi, tmny);

        XStoreName(dpy, DefaultRootWindow(dpy), status);
        XSync(dpy, False);

        free(tmny);
        free(batt);
        free(wifi);
        free(volume);
        free(status);
    }

    XCloseDisplay(dpy);

    return 0;
}
コード例 #9
0
ファイル: dwmstatus.c プロジェクト: mavant/dwmstatus
int
main(void)
{
	char *status;
	char *avgs;
	char *tmnyc;
	char *tmsf;
	char *batt;

	if (!(dpy = XOpenDisplay(NULL))) {
		fprintf(stderr, "dwmstatus: cannot open display.\n");
		return 1;
	}

	for (;;sleep(1)) {
		batt = getbattery();
		avgs = loadavg();
		tmnyc = mktimes("%a %b %d %Y %H:%M:%S %Z", tznyc);
		tmsf = mktimes("%a %b %d %Y %H:%M:%S %Z", tzsf);
		//tmutc = mktimes("%H:%M", tzutc);
		//tmbln = mktimes("KW %W %a %d %b %H:%M %Z %Y", tzberlin);

		status = smprintf("B:%s L:%s %s         ",
				batt, avgs, tmsf);
		setstatus(status);
		free(avgs);
		free(tmnyc);
		free(tmsf);
		free(status);
		free(batt);
	}

	XCloseDisplay(dpy);

	return 0;
}
コード例 #10
0
int
main(void)
{
	char *status = NULL;
	char *avgs = NULL;
	char *tmprs = NULL;
    char *bat = NULL;
    char *netstats = NULL;
    char *mail_laposte = NULL;
    char *mail_fac = NULL;
    char *mail_lavabit = NULL;
    char *mail_tl = NULL;
    char *rootfs = NULL;
    char *homefs = NULL;
    time_t count5min = 0;
    time_t count60 = 0;
    
	if (!(dpy = XOpenDisplay(NULL))) {
		fprintf(stderr, "dwmstatus: cannot open display.\n");
		return 1;
	}

	for (;;sleep(1)) {
	    /* checks every minutes */
	    if ( runevery(&count60, 60) )
        {
            free(tmprs);
            free(bat);
            free(rootfs);
            free(homefs);
            tmprs = mktimes("%d/%m/%y %H:%M", tzparis);
            bat = getbattery("/sys/class/power_supply/BAT0/");
            homefs = get_freespace("/home");
            rootfs = get_freespace("/");
        }
        /* checks mail every 5 minutes */
        if (runevery(&count5min, 300) )
        {
            free(mail_laposte);
            free(mail_fac);
            free(mail_lavabit);
            free(mail_tl);
            mail_laposte = get_nmail("/home/xavier/Maildir/fac/new", " Fac:");
            mail_fac = get_nmail("/home/xavier/Maildir/lavabit/new", " Lavabit:");
            mail_lavabit = get_nmail("/home/xavier/Maildir/toilelibre/new", " TL:");
            mail_tl = get_nmail("/home/xavier/Maildir/laposte/new", " Laposte:");
        }
        /* checks every second */
		avgs = loadavg();
        netstats = get_netusage();

		status = smprintf("%s%s%s%s | %s | /:%s% /home:%s% | B:%s% | %s | %s",
				 mail_tl, mail_fac, mail_lavabit, mail_laposte,
				 netstats, rootfs, homefs, bat, avgs, tmprs);
		setstatus(status);
		free(avgs);
        free(netstats);
		free(status);
	}

	XCloseDisplay(dpy);

	return 0;
}
コード例 #11
0
ファイル: dwmstatusbar.c プロジェクト: AndGates92/statusbar
int main(void) {
	char *status;
	if((status = malloc(STATUS_LENGTH*sizeof(char))) == NULL){
		printf("Cannot allocate memory for status");
		return 0;
	}

	char *datetime = NULL;
	char state_bat[12];
	int bat1, energy_full; // bat2;

	int rem_hours = 0, rem_min = 0, rem_sec = 0;
	long rem_usec = 0;

	char *net_intf, *ip = NULL;

	if((net_intf = malloc(5*sizeof(char))) == NULL){
		printf("Cannot allocate memory for net_intf");
		return 0;
	}

	if((ip = malloc(100*sizeof(char))) == NULL){
		printf("Cannot allocate memory for ip");
		return 0;
	}

	char net_displ[50];

	long left_volume;
	long right_volume;

	int mem_used;
	int mem_available;

	float cpu_avg_freq;

	long usec1, usec2 = 0;
	struct timeval time1, time2;

	int connected = 0;

	int energy1, energy2, dummy = 0;

	int count = 0;

	char *mpc_vol, *mpc_state, *mpc_song = NULL;

	if((mpc_vol = malloc(3*sizeof(char))) == NULL){
		printf("Cannot allocate memory for mpc_vol");
		return 0;
	}

	if((mpc_state = malloc(5*sizeof(char))) == NULL){
		printf("Cannot allocate memory for mpc_state");
		return 0;
	}

	if((mpc_song = malloc(100*sizeof(char))) == NULL){
		printf("Cannot allocate memory for mpc_song");
		return 0;
	}

	if (!(dpy = XOpenDisplay(NULL))) {
		fprintf(stderr, "Cannot open display.\n");
		return 0;
	}

	strcpy(state_bat, "unknown");

	for (;;sleep(1)) {

		bat1 = getbattery(&dummy, &energy_full);

		connected = net(&net_intf, &ip);

		datetime = getdatetime();
		getvolume(&left_volume, &right_volume);

		getmemoryusage(&mem_available, &mem_used);
		getcpuusage(&cpu_avg_freq);

		if (connected == 1) sprintf(net_displ, "%s: %s", net_intf, ip);
		else sprintf(net_displ, "not connected");

		//mpc_stat(&mpc_vol, &mpc_state, &mpc_song);

		if (count == 0) {
			usec1 = time_usec(&time1);
			getbattery(&energy1, &energy_full);
			count++;
		} else if (count >= 5) {

			count = 0;

			usec2 = time_usec(&time2);
			getbattery(&energy2, &energy_full);

			if ((energy2 - energy1) < 0){
				rem_usec = ((float)(usec2-usec1))*(((float)(energy1+energy2))/((float)(2*(energy1-energy2))));
				strcpy(state_bat, "discharging");
			} else if ((energy2 - energy1) > 0) {
				rem_usec = (((float)(usec2-usec1))*((float)energy_full)/((float)(energy2-energy1)))*(1-(((float)(energy2+energy1))/((float)(2*energy_full))));
				strcpy(state_bat, "charging");
			} else if ( (energy2 == energy1) && bat1 >= 100) {
				rem_usec = 0;
				strcpy(state_bat, "charged");
			} else {
				rem_usec = 0;
				strcpy(state_bat, "unknown");
			}

			rem_hours = (int)(rem_usec/(1e6*60*60));
			rem_min = (int)((rem_usec/(1e6*60)) - rem_hours*60);
			rem_sec = (int)((rem_usec/(1e6)) - rem_hours*60*60 - rem_min*60);


			if ((bat1 < 15) && (strcmp(state_bat, "discharging") == 0)) {
				system("mplayer /home/andrea/.local/statusbar/sound/siren.mp3");
			}

		} else {
			count++;
		}

//		snprintf(status, STATUS_LENGTH,  "MPC: status: %s - song: %s | %s | volume left %i - right %i | Battery %d%% (%s %d h %d min %d s) | %s", mpc_state, mpc_song, net_displ, (int)left_volume, (int)right_volume, bat1, state_bat, rem_hours, rem_min, rem_sec, datetime);
		snprintf(status, STATUS_LENGTH,  "CPU (avg) %4.3f MHz | RAM used %d%% available %d%% | %s | volume left %i - right %i | Battery %d%% (%s %d h %d min %d s) | %s", cpu_avg_freq, mem_used, mem_available, net_displ, (int)left_volume, (int)right_volume, bat1, state_bat, rem_hours, rem_min, rem_sec, datetime);

		setstatus(status);
	}

	free(mpc_song);
	free(mpc_state);
	free(mpc_vol);
	free(net_intf);
	free(ip);
	free(datetime);
	free(status);
	XCloseDisplay(dpy);

	return 0;
}
コード例 #12
0
ファイル: dwmstatus.c プロジェクト: KaiSforza/dwmstatus
/*
 * setup the status bar here
 */
int
status(int tostatusbar)
{
    char *status = NULL;
    char *avgs = NULL;
    char *time = NULL;
    char *batt = NULL;
    char *net = NULL;
    char *net_sec = NULL;
    char *temp = NULL;
    char *ipaddr = NULL;
    char *ipaddr_sec = NULL;

#ifdef NET_DEVICE_PRIMARY
    char *net_device_up = NET_DEVICE_PRIMARY;
#endif
#ifdef NET_DEVICE_SECONDARY
    char *net_device_sec = NET_DEVICE_SECONDARY;
#endif

    time_t count60 = 0;
    time_t count10 = 0;

    if (!(dpy = XOpenDisplay(NULL)) && tostatusbar == 0) {
        fprintf(stderr, "dwmstatus: cannot open display.\n");
        return 1;
    }

    for (;;sleep(0)) {
        /* Update every minute */
        if (runevery(&count60, 60)) {
            free(time);

            time  = mktimes("%Y/%m/%d %H:%M", TIMEZONE);
        }
        /* Update every 10 seconds */
        if (runevery(&count10, 10)) {
#ifdef BATT_PATH
            free(batt);
            batt = getbattery(BATT_PATH);
#endif
#ifdef TEMP_SENSOR_PATH
#ifdef TEMP_SENSOR_UNIT
            free(avgs);
            free(temp);

            avgs   = loadavg();
            temp   = gettemperature(TEMP_SENSOR_PATH, TEMP_SENSOR_UNIT);
            SFREE(temp);
#endif
#endif
        }
        /* Update every second */
#ifdef NET_DEVICE_PRIMARY
        net    = get_netusage(net_device_up);
        ipaddr = get_ip_addr(net_device_up);
#endif
#ifdef NET_DEVICE_SECONDARY
        net_sec = get_netusage(net_device_sec);
        ipaddr_sec = get_ip_addr(net_device_sec);
#endif

        /* Format of display */
        status = smprintf("%s%s%s%s%s%s",
            ipaddr      == NULL ? "" : smprintf(" %s (%s) |", net, ipaddr),
            ipaddr_sec  == NULL ? "" : smprintf(" %s (%s) |", net_sec, ipaddr_sec),
            batt        == NULL ? "" : smprintf(" %s", batt),
            avgs        == NULL ? "" : smprintf(" [%s]", avgs),
            time        == NULL ? "" : smprintf(" %s", temp),
            time        == NULL ? "" : smprintf(" | %s", time)
            );
        SFREE(ipaddr)
        free(net);
        SFREE(ipaddr_sec)
        free(net_sec);

        if(tostatusbar == 0)
            setstatus(status);
        else
            puts(status);

        free(status);
    }
    return 0;
}