I recently tried installing dmenu from the repositories, however whenever I run dmenu_run, I get the following error:
/usr/bin/dmenu_run: lin 15: 1879 Segmentation fault dmenu "$@" < "$cache"
I'm running it on a 64-bit system with kernel version 3.5.3-1.
I have not been able to find any information regarding the problem, nor have I been able to solve it myself.
Would anybody else here happen to know what causes this segfault and possibly how to fix it?
Last edited by Jinmenju (2012-09-18 18:27:48)
Assuming that dmenu has created a cache file which should be located either in '~/.cache/dmenu_run' or '~/.dmenu_cache', please check what happens if you run
dmenu < ~/.cache/dmenu_run
a '~/.cache/dmenu_run' exists. When running the command it gives the following:
no locale support Segmentation fault
and then exits.
'locale -a' gives:
C en_DK en_DK.iso88591 en_DK.utf8 en_GB en_GB.iso88591 en_GB.utf8 POSIX
While 'locale' gives:
LANG=en_DK.utf8 LC_CTYPE="en_DK.utf8" LC_NUMERIC="en_DK.utf8" LC_TIME="en_DK.utf8" LC_COLLATE="en_DK.utf8" LC_MONETARY="en_DK.utf8" LC_MESSAGES="en_DK.utf8" LC_PAPER="en_DK.utf8" LC_NAME="en_DK.utf8" LC_ADDRESS="en_DK.utf8" LC_TELEPHONE="en_DK.utf8" LC_MEASUREMENT="en_DK.utf8" LC_IDENTIFICATION="en_DK.utf8" LC_ALL=
I'm not sure if this is going to have any effect at all, but try adding
en_US.UTF-8 UTF-8 en_US ISO-8859-1
to your /etc/locale.gen, regenerate locale and check dmenu again.
Well adding them did nothing in itself... but I tried doing a:
and apparently that fixed it :}... I find it very strange for the program to segfault because of the locale.
However since a solution has been found I'm marking this as solved. Thank you very much for your assistance
This happened to me because I had a bogus $LANG in /etc/locale.conf.
Evidently dmenu assumes you have a valid locale.
(apologies for the one day bump, I just wanted to say what the problem was for the sake of google searchers)
Last edited by UncleNinja (2012-09-19 13:06:39)
I had the same error, and It appears that dmenu dislikes my locale:
Even though locale -a knows about en_DK:
C da_DK.utf8 en_DK.utf8 en_US.utf8 POSIX
And locale says this:
LANG=en_DK.UTF-8 LC_CTYPE="en_DK.UTF-8" LC_NUMERIC="en_DK.UTF-8" LC_TIME="en_DK.UTF-8" LC_COLLATE="en_DK.UTF-8" LC_MONETARY="en_DK.UTF-8" LC_MESSAGES="en_DK.UTF-8" LC_PAPER="en_DK.UTF-8" LC_NAME="en_DK.UTF-8" LC_ADDRESS="en_DK.UTF-8" LC_TELEPHONE="en_DK.UTF-8" LC_MEASUREMENT="en_DK.UTF-8" LC_IDENTIFICATION="en_DK.UTF-8" LC_ALL=
Any clues how to fix that? I greatly prefer en_DK, because of what's lost in translation, and to keep danish date/time formats.
Last edited by Biowaste (2012-10-08 21:16:51)