tmux를 사용하여 tmux에서 생성된 각 "창"에 대해 가상 홈 디렉터리를 설정하는 작업 흐름을 구현했습니다. 를 사용하여 현재 창의 이름을 쿼리할 수 있습니다 tmux display-message -p '#W'
. 그래서 아래 코드와 같이 시스템을 구현하는 것이 쉬웠습니다. 당신은 이해했습니다.
질문
GUI 터미널에서 동일한 유형의 "탭별 홈"을 수행하고 싶습니다. 하지만 간단한 데이터베이스에서 홈 디렉터리를 검색하려면 현재 탭의 이름을 쿼리해야 합니다. 탭 이름을 쿼리하는 방법을 찾을 수 없습니다. 나는 xfce4-terminal을 선호하지만 다른 사람들에게도 개방적입니다. 저도 이용하고 싶습니다. 감사합니다! ——마이어스
alias cdh 'cd `~/bin/get_tmux_window_home_dir`'
% cat ~/bin/get_tmux_window_home_dir
#!/usr/bin/ruby
$VERBOSE = nil
window = `tmux display-message -p '#W'`.chomp
if ! $?.success?
STDERR.puts "Error: tmux display-message -p '#W' failed."
print 'XXXXX'
exit 1
end
db_file = "/home/#{ENV['USER']}/.config/tmux_window_home_dir/tmux_window_home_dir.csv"
db = {}
if File.exists?(db_file)
File.readlines(db_file).each do |l|
s = l.split(',')
db[s[0]] = s[1]
end
end
if db[window]
print db[window]
else
STDERR.puts "Error: There is no home directory set for tmux window name '#{window}'"
print 'XXXXX'
end
답변1
질문을 제출하기 전에 다시 확인한 결과 다음과 같은 사실을 발견했습니다.
- xfce4-terminal에서는 현재 탭이 창 이름이 됩니다.
- $WINDOWID 환경 변수에는 현재 창의 창 ID가 포함되어 있습니다.
xwininfo -id $WINDOWID
쉽게 추출할 수 있는 창 이름을 포함하여 창에 대한 정보를 제공합니다.
따라서 위의 내용에 필요한 모든 정보가 있다고 생각합니다.