Giter Site home page Giter Site logo

i3status's Introduction

i3status's People

Contributors

afh avatar airblader avatar bapt avatar bebehei avatar bsdjhb avatar chrko avatar czarkoff avatar d912e3 avatar deiz avatar elsbrock avatar emikulic avatar eplanet avatar fernandotcl avatar flammi avatar gportay avatar ixjlyons avatar jasperla avatar merovius avatar myterminal avatar nafur avatar ogayot avatar orestisfl avatar rnagy avatar stapelberg avatar stettberger avatar stunkymonkey avatar timonalex avatar tommie avatar watcom avatar xtaran avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

i3status's Issues

Use format_not_mounted for missing mount points

I'd like to set up a disk module entry for a particular thumb drive I occasionally use. The underlying OS (mint 17.1) dynamically mounts this drive to /media/uid/volname, and only the directory /media exists before drive is mounted.

If I set up a disk module entry for the mount point of this drive, i3status does not do nice things when the drive is not mounted because the mount directory doesn't exist. The display output is "SPEC VIOLATION: full_text is NULL!". Looking at i3status output, full_text is indeed missing.
In the code it appears that a failed stat on the mount point causes an early exit even when format_not_mounted is defined.

It would be better if i3status interpreted a missing directory as a non-mounted drive instead and used the format_not_mounted format instead of erroring out.

iwconfig needed for to see wireless information

This is a migrated issue from i3/i3. See i3/i3#1082 for the discussion there. Original post:

[Originally reported by james@…]
(I recently rebuilt my kernel to 3.10.9 from the stock slackware-current generic kernel. If I guild the kernel without wext flags, i3status shows "W: down" even though it is connected.

iwconfig fails:

/sbin/iwconfig
eth0      no wireless extensions.
lo        no wireless extensions.
wlan0     no wireless extensions.

iw works:

 /usr/sbin/iw dev wlan0 link
Connected to 00:19:07:58:7b:70 (on wlan0)
    SSID: UCInet Mobile Access
    freq: 2412
    RX: 1798455 bytes (7610 packets)
    TX: 218591 bytes (1698 packets)
    signal: -64 dBm
    tx bitrate: 48.0 MBit/s

    bss flags:  short-preamble short-slot-time
    dtim period:    0
    beacon int: 100

I know I can build the kernel with the wext compatibility, but I gather it is deprecated and so going away eventually, so I'm filing this bug.

"Error: status_command process exited unexpectedly (exit 0)"

I'm getting this error on i3. The bar simply does not work. I have i3status and i3-wm installed. When I type i3status in the terminal and hit enter, there is no output.

What is the solution to this issue? I've used i3 before and the bar worked perfectly. I'm using the same i3 config as before.

Wireless bitrate and quality are not updated

When starting i3 the wireless %bitrate and %quality are fetched once but will not be updated afterwards.

iw shows the constant changes in bitrate and signal quality that i3status is missing.

Running i3status 2.10, Linux 4.3.3 and iwlwifi.

wireless %essid and %quality displaying as question marks

As of version 2.10 my status line no longer telling me the SSID or the signal quality of my wireless connection, instead two question marks are displayed. My IP address is still displaying correctly. The line from my i3status config file:
wireless wlan0 {
format_up = "Wifi: (%quality at %essid) %ip"
format_down = "Wifi: down"
}
is showing up as:
Wifi: (? at ?) 192.168.1.13

Feature Request -- Support format_down in path_exists

Using the module path_exists... It will update the module with either red or green to indicate its status. I would like for that module to disappear when it is not available. This is possible in few other modules by issuing format_down = "" and path_exists does not have one.

i3status says 40% battery when acpitool says 57%

$ acpi
Battery 0: Discharging, 57%, 02:45:08 remaining

i3status says 40,18%, 2:55 h remaining.

10 minutes is not much, I don't care about this, but why is there a difference in the percentage?

relevant config:

battery 0 {
    format = " %status %percentage <> %remaining -> %emptytime "
    format_down = "No battery"
    path = "/sys/class/power_supply/BAT%d/uevent"
    low_threshold = 10
}

Pango markup setting

I see that Pango markup support was added to i3bar and quickly made non-default. When it was default, it was possible to use markup in the i3status config -- for example:

disk "/" {
    format = "<span size='large' color='#ffffff'>disk:</span> %avail
}

I'm wondering if there would be any interest in adding a markup option to i3status general config. This would allow users who know about the markup (and consequently know of the need to escape ampersands, angle brackets, etc.) to use it, but those who don't care about additional formatting would be unaffected.

I realize, however, that features which are achievable some way other than changing the i3status source are generally not added, and this falls into that category. I wrote a simple wrapper script to inject "markup": "pango" into the JSON before passing it along to i3bar, and it seems to work fine. I also took my first look at the source and hacked together a solution there. It was fairly straightforward to add, so I wanted to see what others thought about it.

Make PulseAudio support optional

I noticed that 2.10 added PulseAudio support, which is great for those systems that run it, but an unneccesary dependency for those that don't have audio or that are running a minimal distribution.

I3 is a great gui for many types of uses and it would be nice if i3status would not inadvertently force a given audio subsystem; it would therefore be great if PulseAudio support could be optional.

Pulseaudio is a hard dependency.

When compiling i3status without pulseaudio installed I arrived upon this horrible reality.

 CC src/print_cpu_temperature.c
 CC src/auto_detect_format.c
 CC src/print_path_exists.c
 CC src/print_disk_info.c
 CC src/print_eth_info.c
 CC src/print_cpu_usage.c
 CC src/print_battery_info.c
src/pulse.c:5:30: fatal error: pulse/pulseaudio.h: No such file or directory
compilation terminated

Here is a patch that fixes this misstep which I can confirm works with i3status 2.10.
http://pastebin.com/i2VnRmcK

Please do not force users to choose between using pulse and finding a replacement for i3status and/or i3 itself. The latter option will certainly win in my case.

Lastly I know this is a repeat issue, however the issue still persists so I feel I am unfortunately left no choice other than to make a new issue... Please do not close it without resolving the issue by either making pulseaudio an optional dependency or by not using it at all.

xmobar fmt for volume (muted) is wrong

Hi - I need to have an explicit </fc> added to my config when writing out xmobar output... and the volume is muted. The following works:

volume master {
        format = "Vol: %volume"
        format_muted = "Vol: muted</fc>" # bugfix
        device = "default"
        mixer = "Master"
        mixer_idx = 0
}

Quickly scanning the code, it appears to be an issue with missing an END_COLOR step in src/print_volume.c:

if (muted) {
    START_COLOR("color_degraded");
    pbval = 0;
}
...

out:
    *outwalk = '\0';
    if (!pbval)
        END_COLOR;
    OUTPUT_FULL_TEXT(buffer);
}

Potential covert bug in the "with" macro

Looking through some of the source of this project, I stumbled on a potential bug in i3status.h. The macro "with" (line 58) that is used to define a variable without a new scope has a potential hidden bug.

The code is as follows:
#define with(type, var, init) \
for (type var = (type)-1; (var == (type)-1) && ((var = (init)) || 1);)

This little "hack" would end up in an infinite loop if called like so: with(int, i, -1);
Although unlikely, it is still a hidden bug.

The following is a recommendation to what that like should be changed to, of course not unless there is some vulnerability or other bug that sprouts from it that I am unaware of. After the first pass, var will be assigned a value that will be guaranteed to fail the first predicate in the condition area of the for loop.
#define with(type, var, init) \
for (type var = (type)-1; (var == (type)-1) && ((var = (init)) || 1); var = (type)1)

Looking even deeper again 😄, there is a bug that may arise if used irresponsibly. With the call with(int, *i, <some address>), it is clear that a segmentation fault will occur during execution after being a pointer variable initialized to -1 and then have its value peeked in the condition var == (type)-1 as var will expand to the dereference form which will explode in a segmentation fault. Though that is only if used irresponsibly, which should be avoided.

Add lower threshold for battery charging wattage

For some reason the ACPI on my laptop (Sony Vaio Duo 11) often reports 0.01W of charge rate even when it's fully charged (or rather, 80% charged because of the "battery health" function). It would be great if one could define a threshold under which the battery charge/discharge rate would be considered 0. For now, whenever my battery thinks it is charging with 0.01W, the time obviously also goes awry, i.e. showing 3570:00 as remaining time.

Fix multiple issues with the wireless information reported on FreeBSD

Again, sorry I do not have a pull request already done. However, here is a link to the commit to a patch in the FreeBSD ports tree along with a description of the fixes:

https://svnweb.freebsd.org/ports?view=revision&revision=395523

Fix multiple issues with the wireless information reported by i3status for
an interface:

  • Instead of hoping that the currently associated AP will show up as
    the first AP in the list of scan results, fetch the BSSID of the
    currently associated AP and use that to fetch station info for the
    AP. This provides more frequently updated signal strength
    information than scan results and reliably provides information when
    multiple APs are in range.
  • Do not treat the RSSI value as a raw signal value in dBm. Instead, use
    the same formula as ifconfig(8) to compute a signal value.
  • Do not report the beacon interval value as a signal quality level.

i3status---input in flex scanner failed

I have got problem with i3status. when I input i3status in terminal. it show that input in flex scanner failed.
[yanboyang@archlinux config]$ i3status
input in flex scanner failed
when I use
gdb to debug it
it show
Starting program: /usr/bin/i3status
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
input in flex scanner failed
[Inferior 1 (process 5506) exited with code 02]
do you know how to solve this problem

PulseAudio plugin: volume percentage is not rounded

Because of this line, the volume percentage shown by i3status is almost always off by 1% compared to other tools. What is wrong with doing float division and rounding to the nearest int value?

int vol_perc = roundf( (float)avg_vol * 100 / PA_VOLUME_NORM );

Build from release archive cannot determine release version

The Makefile uses git to determine the current release number, this does not work when building from a release archive, since the release archive does not contain the git history.

Steps to reproduce:

% curl -Ls https://github.com/i3/i3status/archive/2.9.tar.gz | tar zxvf -
% make -C i3status-2.9
fatal: Not a git repository (or any parent up to mount point /Volumes/Users)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).

What other ways could be used to put the release version information into the release archive?

Commit 668bf207 (nl80211 wireless) partially misattributes code origins

Commit 668bf20 appears to lift code from the NetworkManager, without acknowledging that in the commit message. Function find_ssid appears to be copied verbatim: NM code vs i3status code, the preceding nl80211_xbm_to_percent function appears to be copied with a minor change.

Since the commit message only references my cr.i3wm.org submission, it may imply (to a reader that does not check the original) that the NetworkManager snippets already were in the patch that I submitted. That is not nice. I was actually careful to write original code suitable for use in BSD-licensed i3status rather than copying GPL'ed snippets.

Furthermore, I wonder how it is ok to use code originating from a GPLv2 project in i3status in the first place.

Add separator and separator_block_width as universal module options

It would be great if i3status allowed separator and separator_block_width as universal module options. There already are two such options, namely min_width and align. I think the separator options would be a great addition.

My use case is that I have two volume modules for two different pulse devices and I would like to remove the separator between the two blocks and change the spacing between them.

The separator_block_width property was already discussed as a general directive here, but I think it would be a better fit for a per module option.

Left angle bracket in module format breaks the module's block

Log: http://logs.i3wm.org/logs/5649050225344512.bz2
Version: i3 version 4.9 (2015-02-28, branch "tags/4.9")

Putting a left angle bracket into the format of a block causes that block to not show up. Example (assuming volume is in the bar):

volume master {
    format = "<%volume>"
}

This used to show up as e.g. ...|<10%>|.... I'm finding that it shows up as ...||....

I wasn't able to escape the left angle bracket with a backslash, so I assume it's not a new syntax feature. Found nothing relating to it in the release notes. Only left angle brackets broke the block -- right angle brackets made no difference. I could place it anywhere in the format and the same thing would happen.

Tested this on a system which hadn't upgraded to i3 v4.9. Worked before, broke immediately after I upgraded & restarted i3 in-place.

volume: able to specify pulse device via "pulse[:N]" or "pulse[:Name]"

Shouldn't be terribly hard, but to be frank I lack the c chops to do it in a way that isn't ugly as hell.

Reason: The device index is variable, whereas the device name appears to be pretty constant even across reboots and unplug/replugs.

Proof: run pacmd list-sinks| grep -e 'card:' -e 'device.id' -e 'index:' -e 'alsa.card_name', unplug and replug a device and re-run it. Each time the device will increment its index.

PulseAudio: support muted volume

The PulseAudio code in print_volume lacks support for muted volume. Also, would it be possible to add the device alsa which completely ignores PulseAudio? I'd gladly write a patch for the latter.

Fix some issues with Ethernet status on FreeBSD

Sorry I don't have a pull request ready, but I committed a patch to FreeBSD's ports tree with various fixes for the Ethernet status on FreeBSD. Here are the details from the commit message and a reference to the commit which includes the patch file:

https://svnweb.freebsd.org/ports?view=revision&revision=393973

Fix some nits with displaying Ethernet media status exposed by the recent
extended Ethernet media states:

  • Don't apply IFM_SUBTYPE to the raw subtype in the description table.
    IFM_SUBTYPE() requires a fully populated word and was truncating values
    in the table when comparing resulting in false matches (notably
    "10GBase-KX4" for the no media case).
  • Explicitly check for IFM_ETHER.
  • Use SIOCGIFXMEDIA when present to obtain extended media states.
  • Explicitly handle "no carrier".

Error: status_command process exited unexpectedly (exit 1)

As of yesterday in freshly created live-ISOs for Manjaro Linux i3status fails with the above error. Strangely, the finished install with the same configs works fine. Using the custom .i3/config and freshly installing i3status-git with yaourt also does not fix it.
Please let me know what useful information I can provide.
Using i3-wm-4.10.4

Add a dummy marker module to simplify postprocessing by wrapper scripts

A simple marker module just indicating a marker string (for example, @email) will simplify collaboration between i3status and filter scripts that may want to insert extra information at some designated position of the output (for example, by using sed substitution).

I could open a PR if you like the idea.

i3status says "No battery"

i3status displays No battery, while acpi displays that there is a battery plugged in (and there actually is).

i3status --version displays i3status 2.9 (2015-03-22) © 2008-2012 Michael Stapelberg and contributors

i3status displays:

i3status: trying to auto-detect output_format setting
i3status: auto-detected "term"
no IPv6 | 144.3 GiB | DHCP: yes | VPN: no | W: (046% at Burchtridder) 192.168.178.21 | E: down | No battery | 0.04 | 2015-10-27 09:09:55

acpi displays Battery 0: Charging, 8%, 00:39:05 until charged

i3status not responding to SIGUSR1 as expected

Hello,

I do all updates of i3status manually with killall -USR1 i3status, every full minute with systemd, and whenever volume and network changes occur.

I use arch linux; after a full system upgrade (where i3status was updated) I noticed that i3status was only updating when I changed the volume (up, down or mute toggle).

killall -USR1 i3status has no effect (regardless of the executing user), while other signals terminate i3status as expected. The only way I can update it is by controlling pulseaudio: pactl set-sink-mute 0 toggle and pactl set-sink-volume ... trigger an update; pactl list short does not.

After downgrading from version 2.10-1 to 2.9-1, SIGUSR1 works as expected again.

hide_seconds not working for battery

Hi,

Whenever I have hide_seconds = true in my battery config my config refuses to load (Error: status command process exited unexpectedly (exit 1).

My version is:
i3 version 4.8 (2014-06-15, branch "4.8") © 2009-2014 Michael Stapelberg and contributors

My whole config:

general {
        colors = true
        interval = 5
}

#order += "ipv6"
order += "disk /"
order += "run_watch DHCP"
order += "run_watch VPN"
order += "wireless wlan0"
order += "ethernet eth0"
order += "battery 0"
#order += "load"
order += "tztime local"

wireless wlan0 {
        format_up = "%ip @ %essid (%quality)"
        format_down = ""
}

ethernet eth0 {
        # if you use %speed, i3status requires root privileges
        format_up = "%ip (%speed)"
        format_down = ""
}

battery 0 {
        path = "/sys/class/power_supply/BAT1/uevent"
        format = "%status %percentage %remaining"
        integer_battery_capacity = true
        last_full_capacity = false
        hide_seconds = true
}

run_watch DHCP {
        pidfile = "/var/run/dhclient*.pid"
}

run_watch VPN {
        pidfile = "/var/run/vpnc/pid"
        format = "test"
}

tztime local {
        format = "%Y-%m-%d %H:%M:%S"
}

load {
        format = "%1min"
}

disk "/" {
        format = "%avail"
}

%bitrate reports wrong bitrate

At least in some common configurations (with modern Intel wifi adapters) the reported %bitrate is wrong. It is the same bitrate reported by the deprecated iwconfig, while iw reports the correct figure. Perhaps i3status should use some newer libraries.

Volume module is very slow on systems with PulseAudio

The use of asoundlib in print_volume.h results in very poor performance on Linux systems with PulseAudio as the default sound server. I've done a profiling test to support my claims, the results are here (viewable with e.g. kcachegrind). In summary, during 20 iterations there are 20 calls to print_volume, 20 calls to pa_mainloop_run, subsequently 3680 calls to pa_mainloop_iterate, 120302 calls to pa_xmalloc etc.

This may be either a bug in print_volume.c, in asoundlib itself or merely a fact showing the need for a native PulseAudio module for i3status -- I don't really know.

For the record, here is my /etc/asound.conf file:

# Use PulseAudio by default
pcm.!default {
  type pulse
  fallback "sysdefault"
  hint {
    show on
    description "Default ALSA Output (currently PulseAudio Sound Server)"
  }
}

ctl.!default {
  type pulse
  fallback "sysdefault"
}

Path for cpu temperature does not support wildcards

It seems every time my machine boots up, it either puts the temperature info in

/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp1_input
or
/sys/devices/platform/coretemp.0/hwmon/hwmon1/temp1_input

With either hwmon0 or hwmon1 existing and the other folder doesn't exist at all. This seems to be random which one upon boot. It would be nice to be able to set the path to just include hwmon? or hwmon[01] but the path variable does not seem to support wildcards in the middle of the path.

i3status dosen't compile on musl

i3status currently doesn't compile on a musl libc system. The problem is that some functions use GLOB_TILDE which is a GNUism and (probably) only available in glibc.

This is the output of make on the master branch:

 CC src/pulse.c
 CC src/print_wireless_info.c
 CC src/print_cpu_usage.c
 CC src/print_eth_info.c
 CC src/print_disk_info.c
 CC src/print_ip_addr.c
 CC src/print_path_exists.c
 CC src/auto_detect_format.c
 CC src/print_cpu_temperature.c
 CC src/print_run_watch.c
In file included from /usr/include/alsa/asoundlib.h:38:0,
                 from src/print_volume.c:11:
/usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Wcpp]
 #warning redirecting incorrect #include <sys/poll.h> to <poll.h>
  ^
 CC src/print_volume.c
src/process_runs.c: In function 'process_runs':
src/process_runs.c:27:35: error: 'GLOB_TILDE' undeclared (first use in this function)
     if (glob(path, GLOB_NOCHECK | GLOB_TILDE, NULL, &globbuf) < 0)
                                   ^
src/process_runs.c:27:35: note: each undeclared identifier is reported only once for each function it appears in
Makefile:71: recipe for target 'src/process_runs.o' failed
make: *** [src/process_runs.o] Error 1

See also: i3/i3#1859

link quality allways @100%

My Wifi Quality was stuck at 100% signal strength.
I found a signed with unsigned integer division which seems to be the culprit.
(introduced in 668bf20)

couldn't attach patch, so here's the plaintext:

diff --git a/src/print_wireless_info.c b/src/print_wireless_info.c
index cd95562..f70d47d 100644
--- a/src/print_wireless_info.c
+++ b/src/print_wireless_info.c
@@ -100,7 +100,7 @@ static void print_bitrate(char *buffer, int buflen, int bitrate) {
snprintf(buffer, buflen, "%g %cb/s", rate / divisor, scale);
}

-static uint32_t nl80211_xbm_to_percent(int32_t xbm, uint32_t divisor) {
+static uint32_t nl80211_xbm_to_percent(int32_t xbm, int32_t divisor) {
#define NOISE_FLOOR_DBM -90
#define SIGNAL_MAX_DBM -20

pass instance key on tztime click events

Hi,

Currently, when i3status passes a click event on a tztime module to an external program, it does not include its instance name (which is mendatory for tztime).

{'y': 9, 'x': 2256, 'button': 1, 'name': 'tztime'}

Could you please make it so that i3status passes an instance key with the name of the tztime module being clicked ?

Please also make sure it does so on time modules with instance names.

i3satus not displaying wifi

Hello Everyone,

I am having an issue where i3status shows no wlan even though im connected online

ifconfig

enp0s25: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 00:21:cc:bd:a6:0a txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 20 memory 0xf2500000-f2520000

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 0 (Local Loopback)
RX packets 20 bytes 1760 (1.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 20 bytes 1760 (1.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1280
inet 10.0.0.119 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 2601:583:703:7684:f27b:cbff:fe73:32e9 prefixlen 64 scopeid 0x0
inet6 2601:583:703:7684::ba0d prefixlen 128 scopeid 0x0
inet6 fe80::f27b:cbff:fe73:32e9 prefixlen 64 scopeid 0x20
ether f0:7b:cb:73:32:e9 txqueuelen 1000 (Ethernet)
RX packets 52130 bytes 45391146 (43.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 62520
TX packets 40658 bytes 10056064 (9.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 17

i3status.conf

order += "wireless wlp3s0"

wireless wlp3s0 {

format_up = "W: (%quality at %essid) %ip"

format_up = "  %essid %quality "
format_down = " no wlan "
}

I have also tried first

Multiple mount point on the same disk entry

I wonder if that feature could have a chance of being merged: defining a set of mountpoint instead of only one, in order to factorize configuration definition.
For instance let's say I want to monitor available space on /, /home and /var, I'd do it that way:

disk "/ /home /var" {
        format = "%avail %path"
}

The output would then be:
2.5 GiB / | 90.2 GiB /home | 1.2 GiB /var

Allow placeholders in battery status (change order of evaluation)

Currently there's the format text which defines a message structure common to all three statuses except for the %status value. So a simple idea to define different message structures for different statuses is just to set format = "%status" and then set three different full messages, one for each status. The problem with that approach is that %status seems to be replaced after other placeholders were replaced. So I'm suggesting to replace it the first. I think this is a simple change that address problems nowadays handled in a more ad hoc fashion (for example, hide %remaining when charge is 100%). One use case is to completely hide the battery indicator when the battery is full and the computer is plugged in.

I could open a PR if you like the idea.

Latest commit (3e14e6e) breaks build on FreeBSD

To compile src/first_network_device.c on FreeBSD the following patch is required:

--- a/src/first_network_device.c
+++ b/src/first_network_device.c
@@ -1,4 +1,5 @@
 // vim:ts=4:sw=4:expandtab
+#include <sys/socket.h>
 #include <sys/stat.h>
 #include <stdlib.h>
 #include <ifaddrs.h>

Otherwise I get the below error:

src/first_network_device.c:30:28: error: incomplete definition of type 'struct sockaddr'
if (addrp->ifa_addr->sa_family != AF_INET &&
~~~~~~~~~~~~~~~^
/usr/include/ifaddrs.h:35:9: note: forward declaration of 'struct sockaddr'
struct sockaddr *ifa_addr;
^
src/first_network_device.c:30:43: error: use of undeclared identifier 'AF_INET'
if (addrp->ifa_addr->sa_family != AF_INET &&
^
src/first_network_device.c:31:28: error: incomplete definition of type 'struct sockaddr'
addrp->ifa_addr->sa_family != AF_INET6)
~~~~~~~~~~~~~~~^
/usr/include/ifaddrs.h:35:9: note: forward declaration of 'struct sockaddr'
struct sockaddr *ifa_addr;
^
src/first_network_device.c:31:43: error: use of undeclared identifier 'AF_INET6'
addrp->ifa_addr->sa_family != AF_INET6) ^
4 errors generated.
Makefile:79: recipe for target 'src/first_network_device.o' failed

i3status 2.10 doesn't refresh when sent SIGUSR1

As the title says, the refresh doesn't work anymore for me. I'm using the Ubuntu wily and the stable repo mentioned on i3wm.org. But I can also reproduce the bug with a version I built from source.

How can I go about debugging this?

Mobile Broadband

As far as I have seen is not possible to visualize mobile broadband connections as it's possible to do with wired and wireless ones. I think it would be a nice feature to have :)

can we get colors from i3/config ?

I think this would be a good idea since the i3 theme colors are already defined on i3/config thus we would not have yet another file to put color information, what do you think?

Wireless %quality has leading zero when quality ~=100

This is a very minor nitpick, but I'm not quite sure how to trim the leading zero from the %quality string when quality is ~=100. The reason I'm submitting this an issue and not simply assuming that it's intended behavior is because volume and battery life seem to correctly trim the zero.

Here is an illustration of what I'm referring to http://i.imgur.com/9qhKV1P.jpg

As an aside, thank you for i3 and all of its related software. I'm just beginning to use it and am already hooked.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.