탭 GUI 터미널의 현재 탭 이름을 쿼리하는 방법(모든)

탭 GUI 터미널의 현재 탭 이름을 쿼리하는 방법(모든)

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

질문을 제출하기 전에 다시 확인한 결과 다음과 같은 사실을 발견했습니다.

  1. xfce4-terminal에서는 현재 탭이 창 이름이 됩니다.
  2. $WINDOWID 환경 변수에는 현재 창의 창 ID가 포함되어 있습니다.
  3. xwininfo -id $WINDOWID쉽게 추출할 수 있는 창 이름을 포함하여 창에 대한 정보를 제공합니다.

따라서 위의 내용에 필요한 모든 정보가 있다고 생각합니다.

관련 정보