Начнём с начала.
Вот если запустить имакс, открыть файлик hello-world, написать туда фразу «Привет мир!», сохранить и закрыть. То это даёт нам большую почву для зармышлений на тему: «Почему в терминале запущенном из dmenu он отображается некоректно, а из другого bash всё работает?»
Вызываем команду из dmenu:
sakura -x '/bin/zsh'
% cat hello-world
������������ ������!
Вызываем команду из другого bash:
$ sakura -x '/bin/zsh'
% cat hello-world
Привет мир!
Далее имеется непонятная ересь с переменной $PATH приложений запускаемых из dmenu. Пути добавленные в .bashrc и .bash_profile не работают из него. В том же имаксе 'exec-path ничего не видет кроме системных. Пофиксилось добавление путей внутри .xsession. Ниже конфиги для полноты.
.xsession
#!/bin/sh
export PATH=$PATH:$HOME/bin
xsetroot -cursor_name left_ptr
setxkbmap -layout 'us,ru(winkeys)' -model pc105 -option grp:caps_toggle,grp_led:caps
while xsetroot -name "`date`"
do
sleep 1
done &
feh --bg-scale wallpaper.jpg &
/home/proofit404/bin/dwm
.Xdefaults
*font: -*-terminus-medium-r-*-*-16-*-*-*-*-*-*-*
*boldFont: -*-terminus-medium-r-*-*-16-*-*-*-*-*-*-*
URxvt*foreground: #000000
URxvt*background: #EEE9E9
URxvt*scrollBar: false
.bash_profile
[[ -f ~/.bashrc ]] && . ~/.bashrc
.bashrc
if [[ $- != *i* ]] ; then
return
fi
export LANG="en_US.UTF-8"
export LC_COLLATE="C"
### Nyan-cat prompt.
PS1="\`if [ \$? = 0 ]; then echo \[\e[35m\]^_^\[\e[0m\]; else echo \[\e[31m\]O_O\[\e[0m\]; fi\` \$ "