brndnmtthws / conky

Light-weight system monitor for X, Wayland (sort of), and other things, too
https://conky.cc
GNU General Public License v3.0
7.27k stars 620 forks source link

unknown variable '$if_mixer_mute' and '$mixerbar' on Debian with 1.10.8 #468

Closed musger closed 6 years ago

musger commented 6 years ago

Hi I am getting conky: error: unknown variable '$if_mixer_mute' and conky: unknown variable '$mixerbar' followed by "conky: got an else without matching if" in version 1.10.8 from Debian testing package conky-all for the following line in .conkyrc ${if_mixer_mute}${color red}Muted: ${mixerbar}${color black}${else}Master: ${mixerbar}${endif} This might be related to #463 but that issue seemed BSD specific...

powerman commented 6 years ago

Same on Gentoo.

powerman commented 6 years ago

Workaround ${mixerbar} for alsa:

${execbar amixer sget Master | sed -n 's/\([0-9]\+\)\(%.*off\)/0\2/;s/.*\[\([0-9]\+\)%.*/\1/;$p'}
lasers commented 6 years ago

Hi. Is this still a problem? Can you try again? Perhaps you need to enable some flags first?

powerman commented 6 years ago

How it can disappears if latest version is still the same (1.10.8)? As for flags - maybe, but can you please be more specific about which configure flags should be enabled to make this feature work? Or just check flags used on Gentoo with my setup:

cmake -C /var/tmp/portage/app-admin/conky-1.10.8-r1/work/conky-1.10.8_build/gentoo_common_config.cmake -G Unix Makefiles \
-DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_X11=ON \
-DOWN_WINDOW=ON \
-DBUILD_XDAMAGE=ON \
-DBUILD_XINERAMA=ON \
-DBUILD_XDBE=ON \
-DBUILD_XFT=yes \
-DBUILD_IMLIB2=no \
-DBUILD_XSHAPE=ON \
-DBUILD_ARGB=ON \
-DBUILD_LUA_CAIRO=no \
-DBUILD_LUA_IMLIB2=no \
-DBUILD_LUA_RSVG=no \
-DBUILD_NVIDIA=yes \
-DBUILD_AUDACIOUS=no \
-DBUILD_XMMS2=no \
-DBUILD_WEATHER_XOAP=OFF \
-DBUILD_WEATHER_METAR=OFF \
-DBUILD_APCUPSD=no \
-DBUILD_CMUS=no \
-DBUILD_CURL=yes \
-DBUILD_EVE=no \
-DBUILD_HDDTEMP=yes \
-DBUILD_IOSTATS=no \
-DBUILD_ICAL=no \
-DBUILD_ICONV=yes \
-DBUILD_IPV6=no \
-DBUILD_IRC=no \
-DBUILD_MATH=no \
-DBUILD_MOC=no \
-DBUILD_MPD=no \
-DBUILD_MYSQL=no \
-DBUILD_NCURSES=yes \
-DBUILD_PORT_MONITORS=yes \
-DBUILD_PULSEAUDIO=no \
-DBUILD_RSS=no \
-DBUILD_JOURNAL=no \
-DBUILD_IBM=no \
-DBUILD_HTTP=no \
-DBUILD_WLAN=no \
-DBUILD_BUILTIN_CONFIG=ON \
-DBUILD_OLD_CONFIG=OFF \
-DBUILD_I18N=ON \
-DMAINTAINER_MODE=ON \
-DRELEASE=ON \
-DBUILD_BMPX=OFF \
-DDOC_PATH=/usr/share/doc/conky-1.10.8-r1 -DCMAKE_BUILD_TYPE=Gentoo -DCMAKE_USER_MAKE_RULES_OVERRIDE=/var/tmp/portage/app-admin/conky-1.10.8-r1/work/conky-1.10.8_build/gentoo_rules.cmake -DCMAKE_TOOLCHAIN_FILE=/var/tmp/portage/app-admin/conky-1.10.8-r1/work/conky-1.10.8_build/gentoo_toolchain.cmake  /var/tmp/portage/app-admin/conky-1.10.8-r1/work/conky-1.10.8
lasers commented 6 years ago

I was made Collaborator 42 hours ago and had closed more than 60 issues already. I'm hitting everybody up right now with invaliding issues, asking for updates, or to look for more information.

I don't know much about conky, but am aware that it contains flags such as BUILD_JOURNAL to use {journal}, otherwise I will get same conky: unknown variable '$journal' like the one in this issue. To test this issue, I added the variables in my config, but am able to get {mixerbar} and ${if_mixer_mute} okay here with default cmake flags.

My problem right now is that {mixerbar} and {if_mixer_mute} seems non-responsive.

conky.config = {out_to_x=false,out_to_console=true}
conky.text = [[${mixerbar}${if_mixer_mute} ${kernel} ${else} ${conky_version} ${endif}${mixerbar}]]

I get this in the console.

conky: can't open /dev/mixer: No such file or directory                             
conky: can't open /dev/mixer: No such file or directory
conky: can't open /dev/mixer: No such file or directory
conky: mixer ioctl: Bad file descriptor
__________ 4.17.11-arch1 __________
__________ 4.17.11-arch1 __________
__________ 4.17.11-arch1 __________
__________ 4.17.11-arch1 __________

Either way, we're progressing somewhere with something.

powerman commented 6 years ago

Well, I do have /dev/mixer:

crw-rw----+ 1 root audio 14, 0 Jul 27 19:08 /dev/mixer
powerman commented 6 years ago

One possible candidate for mixer-related flags is -DBUILD_PULSEAUDIO=no - I've it disabled because I use alsa and don't use pulseaudio. But conky previously worked with alsa just fine, so availability of $mixerbar shouldn't depend on pulseaudio.

lasers commented 6 years ago

IIRC pulseaudio provide abstraction for alsa so you should at least try it.

lasers commented 6 years ago

Just a head up. I tried it here with BUILD_PULSEAUDIO=NO and got same output above.

powerman commented 6 years ago

IIRC pulseaudio provide abstraction for alsa so you should at least try it.

I doubt in this, alsa is low level, pulseaudio is high level - at least in OS, not sure about conky implementation. I can't try it because if I enable it I'll have to install pulseaudio, but I dislike it and don't wanna have it installed (because then some apps will try to use it by default, which force me to setup it, etc.).

lasers commented 6 years ago

Indeed. I forget I'm on v1.10.9_pre. I checked out v1.10.8 and got the same thing.

conky: unknown variable '$mixerbar'
conky: unknown variable '$if_mixer_mute'
conky: got an else without matching if

I think it's safe to say your issue has been resolved already.

lasers commented 6 years ago

@musger, @powerman: New version went out. Can you test it now? Thank you.

lasers commented 6 years ago

Sorry about the New version went out comment above. I got confused. The owner bumped version for next release, but hadn't released anything. Confusing. It's better to do it at start or at end, not during.

Anyway, my comment above indicated that it has been resolved already on v1.10.9pre. Recently, I ran a bisect between 1.10.8 and current master to find the fix commit. This is the fix commit.

6b386589c0822bdaf5ed38d5f388cf902e0e749e is the first bad commit
commit 6b386589c0822bdaf5ed38d5f388cf902e0e749e
Author: cmanv <erendili@yahoo.ca>
Date:   Tue Feb 27 11:34:19 2018 -0500

    Fix to soundcard.h issue (#464)

    * Fix to issue #463

    Add platform check for the soundcard header

    * Update ConkyPlatformChecks.cmake

@musger This might be related to #463 but that issue seemed BSD specific...

You are correct. I'll go ahead and close this issue. Thanks for the report. Keep them coming. :slightly_smiling_face:


Closed via #464.