Emacs 창 없음 모드에서는 배경이 자동으로 터미널(gnome-terminal)과 동일합니다. 내가 봤을 때 (frame-parameters)
나는 그것을 보았다 (background-color . "unspecified-bg")
. 글쎄, 나에게는 배경이 검은 색으로 보입니다. Emacs 세션의 실제 배경색을 알아내는 방법이 있습니까?
답변1
터미널에서 찾는 방법을 알고 있다면 동일한 명령을 사용하여 Emacs에서 찾을 수 있습니다.
내 경우에는 다음과 같은 스크립트를 작성하겠습니다.
#!/bin/zsh
cat .Xresources | grep 'URxvt\*background\:' | cut -d" " -f2
(참고: -d
필드 구분 기호를 설정하는 것이며 -f
표시할 필드를 설정하는 것입니다. 첫 번째 필드는 1
가 아니라 입니다 0
.)
.Xresources
명령은 파일이 작동하는 것처럼 보입니다.세트배경색은 다음과 같습니다.
# ...
URxvt*background: black
# ...
스크립트를 실행 가능하게 만들고( ) 이를 ( ) chmod +x
에 넣습니다 .PATH
echo $PATH
스크립트가 what_bg
Emacs에서 호출 되면 M-x shell-command RET what_bg
.
편집하다(댓글에 대한 응답):
이것이 작동하는지 확인하십시오. Emacs, urxvt, xterm 및 rxvt에서 테스트했습니다. 첫 번째 스크립트보다 이식성이 더 뛰어나지만 구성이 필요합니다 .Xresources
(드문 것은 아니지만 분명히 어디에나 존재하는 것은 아닙니다).
그런데 왜 이것이 필요한지 궁금해지기 시작했습니다.
그리고 정말 필요하다면 그렇게 할 수 있나요?바라보다창문의 색상을 결정하시겠습니까?
어쨌든 스크립트는 다음과 같습니다.
#!/bin/zsh
terminal_emulator_parents=`pstree -As $$`
tep_list=`echo $terminal_emulator_parents | tr -s "-" | tr "-" " " \
| tac -s' ' | tr '\n' ' '`
found="false"
for process in `echo $tep_list`; do
if [[ $process =~ ("urxvt"|"xterm"|"rxvt") ]]; then # here: add all
found="true" # terminal emulators
break # configurable
fi # (and *configured*)
done # in ~/.Xresources
if [[ $found == "true" ]]; then
echo -n "$process: "
cat ~/.Xresources | grep -ie ^$process'\*background\:' \
| tr -s " " | cut -d" " -f2
else
echo "Couldn't determine the terminal emulator."
fi