[Unix/Linux] CDE dtterm 이나 KDE konsole 에서 타이틀바에 현재 디렉토리 표시하기

Unix/Linux 2008.03.28 14:42

주) 터미널 창의 제목을 바꿔서 표시해주면 편리하지 않을까 하고 생각하고 있던 참에 회사에 있을 때 임OO 책임이  CDE 의 터미널의 타이틀을 현재 directory path 로 바꾸는 방법을 알려주어서 사용했었죠. KDE 로 바뀌니까 konsole 창에서는 써먹을 수가 없더군요. 웹에서 검색해서 찾아보니 해결 방법이 있어서 두 가지를 공유합니다.

~/.tcshrc (혹은 ~/.cshrc) 에 다음과 같은 코드를 삽입한다. 입력 시 `' 구분에 주의하도록 한다.

^[   vi 상에서 ctrl+v 누르고 ctrl 키에서 손을 뗀 상태에서 ESC 키 누르기 ^G ctrl+v 누른 상태에서 ctrl 키 띠지 않고 G 키 누르기로 입력한다.

 

CDE dtterm

터미널의 타이틀 바에 문자열을 출력하는 명령은 echo -n "^[]0;문자열^G" 이다. 아래와 같이 응용한다.

  1.  if ($TERM == "dtterm") then
  2.   alias settitle 'set title=`hostname`:`pwd` ; echo -n "^[]0;$title^G" '
  3.   alias cd 'cd \!*;setpr;settitle'
  4.   settitle
  5. else
  6.   alias cd 'cd \!*;setpr'
  7. endif

KDE konsole

터미널의 타이틀 바 내용을 바꾸는 명령은  dcop $KONSOLE_DCOP_SESSION renameSession 문자열 이다. 아래와 같이 응용한다.

Konsole 의 경우 KONSOLE_DCOP_SESSION 이라는 환경 변수가 설정되어 있지 않으면 불가능하다. su 나 ssh 로 다른 유저 계정으로 옮기는 경우에는 사용할 수 없다. 이 경우 바뀐 계정에서  konsole & 명령으로 새 콘솔창을 띄우면 새로 띄운 콘솔창 부터는 적용이 가능하다. 새로 띄운 콘솔창에서 session 메뉴에서 새로 생성한 TAB  이나 window 는 계속 적용이 된다.

  1. if ($?KONSOLE_DCOP_SESSION) then
  2.   alias settitle 'set title=`hostname`:`pwd` ; dcop $KONSOLE_DCOP_SESSION renameSession $title'
  3.   alias cd 'cd \!*; setpr ; settitle'
  4.   settitle
  5. endif

CDE 와 KDE 에서 같이 사용하는 경우

  1. if ($?KONSOLE_DCOP_SESSION) then
  2.   alias settitle 'set title=`hostname`:`pwd` ; dcop $KONSOLE_DCOP_SESSION renameSession $title'
  3.   alias cd 'cd \!*; setpr ; settitle'
  4.   settitle
  5. else
  6.   if ($TERM == "dtterm") then
  7.     alias settitle 'set title=`hostname`:`pwd` ; echo -n "^[]0;$title^G" '
  8.     alias cd 'cd \!*;setpr;settitle'
  9.     settitle
  10.   else
  11.     alias cd 'cd \!*;setpr'
  12.   endif
  13. endif
신고
posted by youngjr