LINUX.ORG.RU

xsetroot на dwm уже без патчей работает.

Инфу можно выводить коньками:

#!/bin/sh
conky | while read x; do xsetroot -name "$x"; done

out_to_x no
out_to_console yes
background no
update_interval 1
total_run_times 0
short_units no

TEXT
CPU: ${cpu 0}%  Mem: ${mem}/${memmax} (${memperc}%) Bat: ${battery_percent battery}%  wlan0: ${if_up wlan0}up${else}down${endif}  ${time %a %h %d, %H:%M}
Extraterrestrial ★★★★★
()
Ответ на: комментарий от Extraterrestrial

Ничего не понимаю. Куда это всё писать? Так есть конкретный файл, реализующий интересный мне функционал dwm.suckless.org/dwmstatus/batterystatus.c Так вот, куда это добавлять?

Pyzia ★★★★★
() автор топика
Ответ на: комментарий от talksonly

Сам по себе этот код не компилится, позволю себе привести его здесь:

#define BATT_NOW        "/sys/class/power_supply/BAT0/charge_now"
#define BATT_FULL       "/sys/class/power_supply/BAT0/charge_full"
#define BATT_STATUS       "/sys/class/power_supply/BAT0/status"

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>

char *
smprintf(char *fmt, ...)
{
	va_list fmtargs;
	char *buf = NULL;

	va_start(fmtargs, fmt);
	if (vasprintf(&buf, fmt, fmtargs) == -1){
		fprintf(stderr, "malloc vasprintf\n");
		exit(1);
    }
	va_end(fmtargs);

	return buf;
}

char *
getbattery(){
    long lnum1, lnum2 = 0;
    char *status = malloc(sizeof(char)*12);
    char s = '?';
    FILE *fp = NULL;
    if ((fp = fopen(BATT_NOW, "r"))) {
        fscanf(fp, "%ld\n", &lnum1);
        fclose(fp);
        fp = fopen(BATT_FULL, "r");
        fscanf(fp, "%ld\n", &lnum2);
        fclose(fp);
        fp = fopen(BATT_STATUS, "r");
        fscanf(fp, "%s\n", status);
        fclose(fp);
        if (strcmp(status,"Charging") == 0)
            s = '+';
        if (strcmp(status,"Discharging") == 0)
            s = '-';
        if (strcmp(status,"Full") == 0)
            s = '=';
        return smprintf("%c%ld%%", s,(lnum1/(lnum2/100)));
    }
    else return smprintf("");
}

Ругается на va_start и va_end, если засунуть в dwm.c и скомпилять заново, никаких ошибок не выдаёт, но и не работает. Я не могу понять, что именно прописать в .xinitrc

Pyzia ★★★★★
() автор топика
Ответ на: комментарий от Pyzia

Компилишь batterystatus.c и стартуешь это дело в своём .xinitrc перед dwm.

paran0id ★★★★★
()
Ответ на: комментарий от Pyzia

При малейших знаниях С вместе это дело собираешь и результат компилишь и запускаешь через свой .xinitrc.

Что и описано на suckless.

Если нету знаний C - то ищи готовые варианты.

paran0id ★★★★★
()

Можешь глянуть на арчефоруме. Там есть треды с конфигами dwm.

paran0id ★★★★★
()

Дошло. Это функция для отдельного расширения dwmstatus. Вот в неё-то и нужно это дело вкручивать. Всем спасибо.

Pyzia ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.